K-means 聚类学习

没有监督标签,只有x特征值,没有y,没有办法去预测,没有办法证明你做的对错,这样的数据集,我们能做的是什么呢?就是非监督机器学习。常见的算法就是聚类或者降维。聚类做的是什么?就是挖掘数据集中的规律的存在,通过把相似的数据归类,帮助我们探索数据集里的样本如何划分,比如可以将用户分群,不同的营销策略。聚类里包含的算法也是非常多。

聚类的基本思路是:物以类聚,人以群分。通过特征,计算样本之间的相似度。

K-means 聚类学习:

第一步:确定一个超参数k,k就是打算把样本聚集为几类。

第二步:在所有的样本中,随机的选择三个点,作为聚类的初始中心。

第三步:依次计算除这三个中心点以外的每一个点,和三个中心点的距离。然后找出样本点离哪个中心点最近。

第四歩:将所有点划分到离它最近的那个中心点所代表的簇中去。

第五步:所有样本会被划分k个类别,有了k堆数据,分别计算这k个簇的质心。例如:

第六步:生成k个新的聚类中心点,以这k个新的重点重新重复3-5歩。

第七歩:终止条件(一):在重复的聚类过程中,所有样本点的分类结果都不再发生变化;(二)或者达到你设定的算法最大迭代次数,例如max_iter = 200 .

原理-算法实现:

https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans

KMeans(
    n_clusters=8, # int, optional  聚类的数量
    init=‘k-means++‘, # 一种选择初始质心的方法
    n_init=10,# 使用不同质心种子运行k-means算法的次数。 在inertia,最终结果将是n_init连续运行的最佳输出。
    max_iter=300, # 最大迭代次数,如果超过此次数将不会继续迭代
    tol=0.0001, # MSE 下降到什么数值大小的时候停止迭代
    precompute_distances=‘auto‘,
    verbose=0,
    random_state=None, # 随机数种子
    copy_x=True,
    n_jobs=None, # 使用cpu核心数量
    algorithm=‘auto‘,
)

模型评估

下面来说说Kmeans算法的模型效果评估,模型算法的评估主要是从以下几个方面来进行度量

1、样本离最近聚类中心的总和(inertias)

# inertias:其是K均值模型对象的属性,表示样本距离最近的聚类中心的总和,它是作为在没有真实分类标签下的非监督式评估指标,该值越小越好,值越小证明样本在类间的分布越集中,即类内的距离越小。

 2、轮廓系数

# 轮廓系数:它用来计算所有样本的平均轮廓系数,使用平均群内距离和每个样本的平均最近簇距离来计算,它是一种非监督式评估指标。其最高值为1,最差值为-1,0附近的值表示重叠的聚类,负值通常表示样本已被分配到错误的集群。

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html#sklearn.metrics.silhouette_score

通过轮廓系数找到最好的k值,其实就是调参。常用的方法是:2轮廓系数。

3、CH指标

CH指标通过计算类中各点与类中心的距离平方和来度量类内的紧密度,通过计算各类中心点与数据集中心点距离平方和来度量数据集的分离度,CH指标由分离度与紧密度的比值得到。从而,CH越大代表着类自身越紧密,类与类之间越分散,即更优的聚类结果。

原文地址:https://www.cnblogs.com/BC10/p/11791334.html

时间: 2024-10-13 13:12:48

K-means 聚类学习的相关文章

k means聚类过程

k-means是一种非监督 (从下图0 当中我们可以看到训练数据并没有标签标注类别)的聚类算法 0.initial 1.select centroids randomly 2.assign points 3.update centroids 4.reassign points 5.update centroids 6.reassign points 7.iteration reference: https://www.naftaliharris.com/blog/visualizing-k-me

k-means聚类学习

4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在处理海量数据的时候,如果通过预处理使得数据满足分类算法的要求,则代价非常大,这时候可以考虑使用聚类算法.聚类属于无监督学习,相比于分类,聚类不依赖预定义的类和类标号的训练实例.本文首先介绍聚类的基础——距离与相异度,然后介绍一种常见的聚类算法——k均值和k中心点聚类,最后会举一个实例:应用聚类方法试

k-均值聚类算法;二分k均值聚类算法

根据<机器学习实战>一书第十章学习k均值聚类算法和二分k均值聚类算法,自己把代码边敲边理解了一下,修正了一些原书中代码的细微差错.目前代码有时会出现如下4种报错信息,这有待继续探究和完善. 报错信息: Warning (from warnings module): File "F:\Python2.7.6\lib\site-packages\numpy\core\_methods.py", line 55 warnings.warn("Mean of empty

机器学习--k均值聚类(k-means)算法

一.基本原理 分类是指分类器根据已标注类别的训练集,通过训练可以对未知类别的样本进行分类.分类被称为监督学习.如果训练集的样本没有标注类别,那么就需要用到聚类.聚类是把相似的样本聚成一类,这种相似性通常以距离来度量.聚类被称为无监督学习. 聚类是指根据"物以类聚"的原理,将本身没有类别的样本聚集成不同的组,这样的一组数据对象的集合叫做簇,并且对每一个这样的簇进行描述的过程.它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似.与分类规则不同,进行聚类前并不知道

机器学习实战笔记-利用K均值聚类算法对未标注数据分组

聚类是一种无监督的学习,它将相似的对象归到同一个簇中.它有点像全自动分类.聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好 簇识别给出聚类结果的含义.假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么.聚类与分类的最大不同在于,分类的目标事先巳知,而聚类则不一样.因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督分类(unsupervised classification ). 聚类分析试图将相似对象归人同一簇,将不相似对象归到不

机器学习之路:python k均值聚类 KMeans 手写数字

python3 学习使用api 使用了网上的数据集,我把他下载到了本地 可以到我的git中下载数据集: https://github.com/linyi0604/MachineLearning 代码: 1 import numpy as np 2 import pandas as pd 3 from sklearn.cluster import KMeans 4 from sklearn import metrics 5 6 ''' 7 k均值算法: 8 1 随机选择k个样本作为k个类别的中心

k均值聚类

目录 一.k均值简介 二.应用简介 三.算法 四.选择合适的K 五.具体实例 一.k均值简介 K均值聚类是一种无监督学习,对未标记的数据(即没有定义类别或组的数据)进行分类. 该算法的目标是在数据中找到由变量K标记的组.该算法迭代地工作基于所提供的特征,将每个数据点分配给K个组中的一个. 基于特征相似性对数据点进行聚类. K均值聚类算法的结果是: 1.K簇的质心,可用于标记新数据 2.训练数据的标签(每个数据点分配给一个集群) 二.应用简介 K均值聚类算法用于查找未在数据中明确标记的组.这可用于

第十篇:K均值聚类(KMeans)

前言 本文讲解如何使用R语言进行 KMeans 均值聚类分析,并以一个关于人口出生率死亡率的实例演示具体分析步骤. 聚类分析总体流程 1. 载入并了解数据集:2. 调用聚类函数进行聚类:3. 查看聚类结果描述:4. 将聚类结果图形化展示:5. 选择最优center并最终确定聚类方案:6. 图形化展示不同方案效果并提交分析报表. 人口出生/死亡率聚类分析 - K均值聚类 1. 载入并了解数据集 1.1 从网上下载一份txt格式的关于人口出生率统计的数据(countries.txt).其内容大致如下

机器学习实战5:k-means聚类:二分k均值聚类+地理位置聚簇实例

k-均值聚类是非监督学习的一种,输入必须指定聚簇中心个数k.k均值是基于相似度的聚类,为没有标签的一簇实例分为一类. 一 经典的k-均值聚类 思路: 1 随机创建k个质心(k必须指定,二维的很容易确定,可视化数据分布,直观确定即可): 2 遍历数据集的每个实例,计算其到每个质心的相似度,这里也就是欧氏距离:把每个实例都分配到距离最近的质心的那一类,用一个二维数组数据结构保存,第一列是最近质心序号,第二列是距离: 3 根据二维数组保存的数据,重新计算每个聚簇新的质心: 4 迭代2 和 3,直到收敛