Machine Learning | (12) 非监督学习-k-means

简介: Machine Learning | (12) 非监督学习-k-means

Machine Learning | 机器学习简介


Machine Learning | (1) Scikit-learn与特征工程


Machine Learning | (2) sklearn数据集与机器学习组成


Machine Learning | (3) Scikit-learn的分类器算法-k-近邻


Machine Learning | (4) Scikit-learn的分类器算法-逻辑回归


Machine Learning | (5) Scikit-learn的分类器算法-朴素贝叶斯


Machine Learning | (6) Scikit-learn的分类器算法-性能评估


Machine Learning | (7) Scikit-learn的分类器算法-决策树(Decision Tree)


Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)


Machine Learning | (9) 回归算法-线性回归


Machine Learning | (10) 回归算法-岭回归


Machine Learning | (11) 回归性能评估与欠拟合、过拟合


非监督学习之k-means

K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。算法执行的过程分为4个阶段。


1.首先,随机设K个特征空间内的点作为初始的聚类中心。

2.然后,对于根据每个数据的特征向量,从K个聚类中心中寻找距离最近的一个,并且把该数据标记为这个聚类中心。

3.接着,在所有的数据都被标记过聚类中心之后,根据这些数据新分配的类簇,通过取分配给每个先前质心的所有样本的平均值来创建新的质心重,新对K个聚类中心做计算。

4.最后,计算旧和新质心之间的差异,如果所有的数据点从属的聚类中心与上一次的分配的类簇没有变化,那么迭代就可以停止,否则回到步骤2继续循环。

K均值等于具有小的全对称协方差矩阵的期望最大化算法


sklearn.cluster.KMeans

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=1, algorithm='auto')
  """
  :param n_clusters:要形成的聚类数以及生成的质心数
  :param init:初始化方法,默认为'k-means ++',以智能方式选择k-均值聚类的初始聚类中心,以加速收敛;random,从初始质心数据中随机选择k个观察值(行
  :param n_init:int,默认值:10使用不同质心种子运行k-means算法的时间。最终结果将是n_init连续运行在惯性方面的最佳输出。
  :param n_jobs:int用于计算的作业数量。这可以通过并行计算每个运行的n_init。如果-1使用所有CPU。如果给出1,则不使用任何并行计算代码,这对调试很有用。对于-1以下的n_jobs,使用(n_cpus + 1 + n_jobs)。因此,对于n_jobs = -2,所有CPU都使用一个。
  :param random_state:随机数种子,默认为全局numpy随机数生成器
  """
from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]])
kmeans = KMeans(n_clusters=2, random_state=0)

方法

fit(X,y=None)

使用X作为训练数据拟合模型

kmeans.fit(X)

predict(X)

预测新的数据所在的类别

kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)

属性

clustercenters

集群中心的点坐标

kmeans.cluster_centers_
array([[ 1.,  2.],
       [ 4.,  2.]])

labels_

每个点的类别

kmeans.labels_

k-means ++

 

k-means案例分析

手写数字数据上K-Means聚类的演示

from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans
def kmeans():
    """
    手写数字聚类过程
    :return: None
    """
    # 加载数据
    ld = load_digits()
    print(ld.target[:20])
    # 聚类
    km = KMeans(n_clusters=810)
    km.fit_transform(ld.data)
    print(km.labels_[:20])
    print(silhouette_score(ld.data,km.labels_))
    return None
if __name__=="__main__":
    kmeans()


目录
相关文章
|
机器学习/深度学习 人工智能 算法
重磅 | 吴恩达新书《Machine Learning Yearning》最新版分享
重磅 | 吴恩达新书《Machine Learning Yearning》最新版分享
568 0
重磅 | 吴恩达新书《Machine Learning Yearning》最新版分享
machine learning 线性回归实战
matlab 线性回归实战 统一 输入时列向量 输出也是列向量 中间的过程可以出现行向量或者列向量,但是不能影响输入和输出为列向量 参数运算的输入都不会只是一个实数,要么是列向量,要么是一个矩阵 对于矩阵,取数据也是一列一列的去,也就是\(X(:1)\),\(X(:2)\)等 命令的时候为向量和矩...
763 0
|
机器学习/深度学习 运维 资源调度
吴恩达《Machine Learning》精炼笔记 10:异常检测
吴恩达《Machine Learning》精炼笔记 10:异常检测
197 0
吴恩达《Machine Learning》精炼笔记 10:异常检测
Using Machine Learning to Name Malware
http://lqdc.github.io/using-machine-learning-to-name-malware.
687 0
|
机器学习/深度学习 算法 数据挖掘
Machine Learning | (10) 回归算法-岭回归
Machine Learning | (10) 回归算法-岭回归
167 0
|
机器学习/深度学习 算法
Machine Learning | (11) 回归性能评估与欠拟合、过拟合
Machine Learning | (11) 回归性能评估与欠拟合、过拟合
122 0
Machine Learning | (11) 回归性能评估与欠拟合、过拟合
|
机器学习/深度学习 数据采集 人工智能
Machine Learning | 机器学习简介
Machine Learning | 机器学习简介
147 0
Machine Learning | 机器学习简介
撒花!吴恩达《Machine Learning Yearning》完结!
撒花!吴恩达《Machine Learning Yearning》完结!
123 0
撒花!吴恩达《Machine Learning Yearning》完结!
|
机器学习/深度学习 数据挖掘
Learning Machine Learning, Part 2: Algorithms and Techniques
In most Machine Learning courses, regression algorithms are the first to be introduced for two reasons: Regression algorithms are relatively simple,
1915 0
|
3月前
|
自然语言处理 安全 项目管理
提高工作效率的关键:2024年10款最实用日程管理软件推荐
随着工作节奏加快,日程管理成为职场和个人生活中的重要部分。2024年,市场上出现了众多高效日程管理软件,既包括适合企业团队协作的强大工具,也涵盖了帮助个人优化日程的轻量级应用。本文推荐10款最受欢迎的日程管理软件,覆盖国内外多个工具,帮助用户挑选最适合自己的那一款,从而提高工作效率和生活质量。
提高工作效率的关键:2024年10款最实用日程管理软件推荐

热门文章

最新文章