Python机器学习笔记——无监督学习
来源:互联网 发布:2017单片机前景 编辑:程序博客网 时间:2024/05/22 10:52
K-means聚类算法(家庭消费水平)
importnumpyasnp
fromsklearn.clusterimportKMeans
k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。
处理过程:
1.随机选择k个点作为初始的聚类中心;
2.对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇
3.对每个簇,计算所有点的均值作为新的聚类中心
4.重复2、3直到聚类中心不再发生改变
Label= KMeans(n_clusters=4).fit_predict(Data)
DBSCAN密度聚类(上网时间分布)
importnumpyasnp
importsklearn.clusterasskc
fromsklearnimportmetrics
importmatplotlib.pyplotasplt
DBSCAN算法是一种基于密度的聚类算法:聚类时无需预先指定簇的个数,且最终的簇的个数不定。
数据点分类:
- 核心点:在半径Eps内含有超过MinPts数目的点
- 边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
- 噪音点:既不是核心点也不是边界点的点
DBSCAN算法流程:
1.将所有点标记为核心点、边界点或噪声点;
2.删除噪声点;
3.为距离在Eps之内的所有核心点之间赋予一条边;
4.每组连通的核心点形成一个簇;
5.将每个边界点指派到一个与之关联的核心点的簇中(哪一个核心点的半
径范围之内)。
db=skc.DBSCAN(eps=0.01,min_samples=20).fit(Data)# 调用DBSCAN方法进行训练
labels=db.labels_# labels为每个数据的簇标签,<class'numpy.ndarray'>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
主成分分析(PCA)(鸢尾花)
importmatplotlib.pyplotasplt
fromsklearn.decompositionimportPCA
fromsklearn.datasetsimportload_iris
PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。主成分能够尽可能保留原始数据的信息。
相关术语:
- 方差:各个样本和样本均值的差的平方和的均值,用来度量一组数据的分散程度。
- 协方差:用于度量两个变量间线性相关程度,若协方差为0,可认为线性无关。
- 协方差矩阵:由变量的协方差值构成的矩阵(对称阵)。
- 特征向量:矩阵的特征向量是描述数据集结构的非零向量。
原理:
矩阵的主成分就是其协方差矩阵对应的特征向量,按照对应的特征值大小进行排序,最大的特征值就是第一主成分,其次是第二主成分,以此类推 。
pca=PCA(n_components=2)# 加载PCA算法,设置降维后主成分数目为2
reduced_X=pca.fit_transform(X)#对原始数据进行降维,保存在reduced_X中
非负矩阵分解(NMF)(人脸数据特征)
fromnumpy.randomimportRandomState
importmatplotlib.pyplotasplt
fromsklearn.datasetsimportfetch_olivetti_faces
fromsklearnimportdecomposition
给定一个非负矩阵V,NMF能够找到一个非负矩阵W和一个非负矩阵H,使得矩阵W和H的乘积近似等于矩阵V中的值。NMF能广泛应用于图像分析、文本挖掘和语音处理等领域。
数学基础:
- W矩阵:基础图像矩阵,相当于从原矩阵V中抽取出来的特征
- H矩阵:系数矩阵
优化目标:最小化W矩阵H矩阵的乘积和原始矩阵之间的差别。
目标函数:
小小的总结
建立工程,导入相关包
fromsklearn.cluster import Kmeans
fromsklearn.cluster importDBSCAN
fromsklearn.decompositionimportPCA
fromsklearn.decompositionimport PCA
fromsklearn.datasetsimportload_iris
fromsklearn.datasets import fetch_olivetti_faces
加载数据,创建算法实例,进行训练,获得标签
- Python机器学习笔记——无监督学习
- 机器学习笔记——无监督学习
- 机器学习笔记—-监督学习与无监督学习的异同
- Python机器学习应用 | 无监督学习
- Python机器学习笔记——监督学习
- 斯坦福大学机器学习笔记——机器学习基础以及有监督学习和无监督学习举例说明
- 机器学习——监督学习,半监督学习,无监督学习,主动学习
- 机器学习笔记之无监督学习
- 机器学习笔记1---监督学习和无监督学习
- 机器学习笔记 (一) 监督学习、无监督学习
- 机器学习入门—无监督学习、监督学习、强化学习概念及算法介绍
- 《机器学习实战》——无监督学习
- 机器学习--无监督学习
- 机器学习笔记11——无监督学习之k-means聚类算法
- 数据挖掘——学习笔记(机器学习--监督,非监督,半监督学习
- 数据挖掘——学习笔记(机器学习--监督,非监督,半监督学习)
- 数据挖掘——学习笔记(机器学习--监督,非监督,半监督学习)
- 机器学习两种方法——监督学习和无监督学习(通俗理解)
- Python学习之高级函数详解
- Web21.Math数组Date
- 关于php 中spl_autoload_register的一些补充
- hdoj 1029 Ignatius and the Princess IV
- CREATE TABLE 语句
- Python机器学习笔记——无监督学习
- ILRuntime第三课Delegate
- 普元 EOS Platform 7.5 将逻辑流封装为webservice,wsdl文件上右键,生成客户端代码,提示:选择的wsdl文件中没有服务信息
- Android NDK: From Elementary to Expert Episode 22
- dynamic_cast的一些疑问
- Java中void、return、返回值的详解
- hibernate中多对一、一对一、一对多、多对多的配置方法
- 你有没有特别喜欢一个人
- 万向节死锁