无监督模型K- means重要参数介绍

class sklearn.cluster.KMeans (n_clusters=8, init=’k-means++’, n_init=10, max_iter=300, tol=0.0001, precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=None, algorithm=’auto’)

1.K- Means的重要参数

- 重要参数:
    - n_clusters
        - n_clusters是KMeans中的k,表示着我们告诉模型我们要分几类。这是KMeans当中唯一一个必填的参数,默认为8 类,但通常我们的聚类结果会是一个小于8的结果。通常,在开始聚类之前,我们并不知道n_clusters是多少,要去探索。
    - random_state
        - 用于初始化质心的生成器。
    - max_iter:模型最大迭代次数

2.KMeans的首次探索

- 当我们拿到一个数据集,如果可能的话,我们希望能够通过绘图先观察一下这个数据集的数据分布,以此来为我们聚类时输入的n_clusters做一个参考。 首先,我们来自己创建一个数据集使用make_blobs。这样的数据集是我们自己创建,所以是有标签的。

#伪造测试样本
from sklearn.datasets import make_blobs
#参数解释:
#n_samples:样本总量
#n_features:特征维度
#centers:样本类别
X,y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=2020)
#X试题,y答案

#观察500个样本根据不同的类别对应分布形式
import matplotlib.pyplot as plt
#将不同类别的特征使用不同的颜色表示
color = ['red','pink','orange','gray']
for i in range(4):
    plt.scatter(X[y==i,0],X[y==i,1],c=color[I])


#基于测试样本将其聚成4个簇
model = KMeans(n_clusters=4)
model.fit(X)

model.labels_ #对500个样本的聚类结果

基于分布结果,我们用Kmeans进行聚类

 - labels_:表示样本聚类的结果
 - cluster_centers_:返回质心坐标
 - inertia_:整体平方和

model.cluster_centers_
model.inertia_

#观察下不同簇下对应的样本分布形态
labels = model.labels_
color = ['red','pink','orange','gray']
for i in range(4):
    plt.scatter(X[labels==i,0],X[labels==i,1],c=color[i])

3.K- Means对结果的预测???

KMeans算法通常情况是不需要预测结果的,因为该算法本质上是在对未知分类数据的探索。但是在某些情况下我们也可以使用predict进行预测操作。
    - 我们什么时候需要predict呢?
        - 当数据量太大的时候!
            - 其实我们不必使用所有的数据来寻找质心,少量的数据就可以帮助我们确定质心了。
            - 当我们数据量非常大的时候,我们可以使用部分数据来帮助我们确认质心
            - 剩下的数据的聚类结果,使用predict来调用。

#获取了原先样本的一半样本量
X_n = X[0:250]
y_n = y[0:250]

model = KMeans(n_clusters=4)
model.fit(X_n)

#使用训练好的模型对另一半样本进行分类
model.predict(X[250:])

4.评估效果

#查看k值的不同对整体平方和的影响
model = KMeans(n_clusters=2)
model.fit(X)
model.inertia_

#查看k值的不同对整体平方和的影响
model = KMeans(n_clusters=4)
model.fit(X)
model.inertia_
#查看k值的不同对整体平方和的影响
model = KMeans(n_clusters=3)
model.fit(X)
model.inertia_
#查看k值的不同对整体平方和的影响
model = KMeans(n_clusters=6)
model.fit(X)
model.inertia_

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bigdata产品狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值