解锁式学习
749人加入学习
(0人评价)
机器学习-Sklearn(第三版)
价格 免费
承诺服务
该课程属于 2243-咸鱼-算法方向-数据挖掘-就业:否 请加入后再学习

一、概述

1、无监督学习:训练时只需要一个特征矩阵x,不需要标签y,例如PCA

2、聚类(无监督分类)VS 分类

1)在已经知晓的类别上,给未知的样本标上标签(分类);在完全不知道标签的情况下,探索分布上的分类(聚类)

2)分类结果确定,聚类结果不确定

3、sklearn中的聚类算法(类和函数两种表现形式)输入数据可以是标准特征矩阵,也可以是相似性矩阵(行和列都是n_samples),可以使用sklearn.metric.pairwise模块中函数获取相似性矩阵

4、簇中所有数据坐标均值为这个簇的质心坐标,簇k是一个超参数,kmeans追求的是能让簇内平方和inertia最小的质心(最优化问题,逻辑回归也是最优化问题)

5、KMeans算法时间复杂度为O(k*n*T),k为簇数,n为样本数,T为迭代次数,但这种算法很慢,但是最快的聚类算法,

二、sklearn.cluster.KMeans

1、重要参数

1)n_clusters:分几个簇,可以通过画图确定分几个

2、重要属性

1)labels_,查看聚好的类别,每个样本对应的类

2)cluster_centers_。查看质心

3)inertia_,查看总距离平方和。分的簇越多,inertia越低,可以降低至0。k值一定的情况下,inertia越低,聚类效果越好。

3、接口fit_predict(x):fit后使用,将x分到已经聚好的类中

1)cluster=KMeans(n_clusters=3,random_state=0).fit(x)

cluster.labels_

cluster=KMeans(n_clusters=3,random_state=0).fit(x)

cluster.fit_predict(x)

结果相同

2)为什么需要fit_predict(x)?数据量太大时,可以先切出一点数据训练,找质心,其它数据用这个接口预测,减少计算量,结果不一样但可以接近。

cluster_smallsub=KMeans(n_clusters=3,random_state=0).fit(x[:200])
y_pred_=cluster_smallsub.predict(x[200:])

有一些算法天生没有损失函数(衡量拟合效果)

聚类算法不需要调用接口transform(),.fit(x)后求出质心,聚类已经完成,但之后可以用

RFM模型,漏斗分析,AARRR模型

[展开全文]