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

 

加载数据,创建算法实例,进行训练,获得标签

 

阅读全文
0 0
原创粉丝点击