1. import numpy as np
  2. import pandas as pd
  3. import matplotlib
  4. from matplotlib import pyplot as plt
  5. %matplotlib inline
  6. matplotlib.rcParams['font.sans-serif'] = ['SimHei']
  7. data = pd.read_csv('./010-data_multivar.csv',header=None)
  8. #拆分数据
  9. dataset_X,dataset_y = data.iloc[:,:-],data.iloc[:,-]
  10. # print(dataset_X.head())
  11. dataset_X = dataset_X.values
  12. dataset_y = dataset_y.values

无标签数据集可视化,将第一列feature作为X,第二列feature作为y

  1. def visual_2D_dataset_dist(dataset):
  2. '''将二维数据集dataset显示在散点图中'''
  3. assert dataset.shape[]==,'only support dataset with 2 features'
  4. plt.figure()
  5. X=dataset[:,]
  6. Y=dataset[:,]
  7. plt.scatter(X,Y,marker='v',c='g',label='dataset')
  8.  
  9. X_min,X_max=np.min(X)-,np.max(X)+
  10. Y_min,Y_max=np.min(Y)-,np.max(Y)+
  11. plt.title('dataset distribution')
  12. plt.xlim(X_min,X_max)
  13. plt.ylim(Y_min,Y_max)
  14. plt.xlabel('feature_0')
  15. plt.ylabel('feature_1')
  16. plt.legend()
  17.  
  18. visual_2D_dataset_dist(dataset_X)

构造 kmeans

  1. from sklearn.cluster import KMeans
  2. #init
  3. kmeans = KMeans(init='k-means++',n_clusters=4,n_init=5)
  4. kmeans.fit(dataset_X)

  1.  

将dataset_X聚类效果可视化

  1. def visual_kmeans_effect(k_means,dataset):
  2. assert dataset.shape[1]==2,'only support dataset with 2 features'
  3. X=dataset[:,0]
  4. Y=dataset[:,1]
  5. X_min,X_max=np.min(X)-1,np.max(X)+1
  6. Y_min,Y_max=np.min(Y)-1,np.max(Y)+1
  7. # meshgrid 生成网格点坐标矩阵
  8. X_values,Y_values=np.meshgrid(np.arange(X_min,X_max,0.01),
  9. np.arange(Y_min,Y_max,0.01))
  10. # 预测网格点的标记
  11. predict_labels=k_means.predict(np.c_[X_values.ravel(),Y_values.ravel()])
  12. predict_labels=predict_labels.reshape(X_values.shape)
  13. plt.figure()
  14. plt.imshow(predict_labels,interpolation='nearest',
  15. extent=(X_values.min(),X_values.max(),
  16. Y_values.min(),Y_values.max()),
  17. cmap=plt.cm.Paired,
  18. aspect='auto',
  19. origin='lower')
  20.  
  21. # 将数据集绘制到图表中
  22. plt.scatter(X,Y,marker='v',facecolors='none',edgecolors='k',s=30)
  23.  
  24. # 将中心点绘制到图中
  25. centroids=k_means.cluster_centers_
  26. plt.scatter(centroids[:,0],centroids[:,1],marker='o',
  27. s=100,linewidths=2,color='k',zorder=5,facecolors='b')
  28. plt.title('K-Means effect graph')
  29. plt.xlim(X_min,X_max)
  30. plt.ylim(Y_min,Y_max)
  31. plt.xlabel('feature_0')
  32. plt.ylabel('feature_1')
  33. plt.show()
  34.  
  35. visual_kmeans_effect(kmeans,dataset_X)

 

# 鸢尾花聚类

  1. from sklearn.datasets import load_iris
  2. datairis = load_iris()
  3. dataset = datairis.data
  4. from sklearn.cluster import KMeans
  5. #init
  6. kmeans = KMeans(init='k-means++',n_clusters=,n_init=)
  7. kmeans.fit(dataset)
  8. print(kmeans.labels_) #去除标签
  9. print(datairis)
  1.  

机器学习-kmeans的使用的更多相关文章

  1. 视觉机器学习------K-means算法

    K-means(K均值)是基于数据划分的无监督聚类算法. 一.基本原理       聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类.聚 ...

  2. 机器学习——KMeans聚类,KMeans原理,参数详解

    0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...

  3. 机器学习——KMeans

    导入类库 from sklearn.cluster import KMeans from sklearn.datasets import make_blobs import numpy as np i ...

  4. 机器学习--k-means聚类原理

    “物以类聚,人以群分”, 所谓聚类就是将相似的元素分到一"类"(有时也被称为"簇"或"集合"), 簇内元素相似程度高, 簇间元素相似程度低. ...

  5. Python之机器学习K-means算法实现

    一.前言: 今天在宿舍弄了一个下午的代码,总算还好,把这个东西算是熟悉了,还不算是力竭,只算是知道了怎么回事.今天就给大家分享一下我的代码.代码可以运行,运行的Python环境是Python3.6以上 ...

  6. 机器学习K-Means

    1.K-Means聚类算法属于无监督学习算法. 2.原理:先随机选择K个质心,根据样本到质心的距离将样本分配到最近的簇中,然后根据簇中的样本更新质心,再次计算距离重新分配簇,直到质心不再发生变化,迭代 ...

  7. 09-赵志勇机器学习-k-means

    (草稿) k-means: 1. 随机选取n个中心 2. 计算每个点到各个中心的距离 3. 距离小于阈值的归成一类. 4. 计算新类的质心,作为下一次循环的n个中心 5. 直到新类的质心和对应本次循环 ...

  8. 机器学习-K-means聚类及算法实现(基于R语言)

    K-means聚类 将n个观测点,按一定标准(数据点的相似度),划归到k个聚类(用户划分.产品类别划分等)中. 重要概念:质心 K-means聚类要求的变量是数值变量,方便计算距离. 算法实现 R语言 ...

  9. 机器学习 - k-means聚类

    k-means简介 k-means是无监督学习下的一种聚类算法,简单说就是不需要数据标签,仅靠特征值就可以将数据分为指定的几类.k-means算法的核心就是通过计算每个数据点与k个质心(或重心)之间的 ...

随机推荐

  1. Robust PCA via Outlier Pursuit

    目录 引 主要结果 定理1 定理2 理论证明 构造Oracle Problem 算法 Xu H, Caramanis C, Sanghavi S, et al. Robust PCA via Outl ...

  2. git bash 连接github并提交项目工程

    借鉴博客:https://www.cnblogs.com/flora5/p/7152556.html https://blog.csdn.net/heng_yan/article/details/79 ...

  3. mysql一个非常实用解决sql查询优化的函数explain

    前言: 项目中有个表有几万条数据,然后还要关联其他表,查询条件也有点多,再没有其他查询条件下,默认时间查询条件如果是查一年的数据的话,查询时间那是慢得可怕. 找总监去优化sql,看他用了一个sql函数 ...

  4. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

  5. 在vue 里使用腾讯ditu

    https://www.cnblogs.com/mrer/p/7144705.html

  6. 1.openshift

    openshit是红帽开源的容器云平台.

  7. sql 查询字段如果为null 则返回0的写法

    oracle select nvl(字段名,0) from 表名; ----------------------------------- sqlserver select isnull(字段名,0) ...

  8. [CF 1043F] Make It One

    Description 给定 \(n\) 个正整数 \(a_i\),最少选出多少个 \(a_i\) 使得他们 \(gcd\) 为 \(1\)?\(n,a_i\le 3\times 10^5\). So ...

  9. 题解:luoguP1861 星之器

    为什么全世界都说这是个物理题,不应该是一个数学题吗,神犇的势能完全看不懂 我们直接来看题,对于一个点,在计算时候横坐标和纵坐标互不影响,所以我们分开考虑. 我们记两个点假如横坐标相同,分别记纵坐标为a ...

  10. Python--基础二

    Python基础:字符串str & 列表list & 元组tuple & 字典dict & 集合set Python 基础 2 字符串 str 字符串是以单引号或双引号 ...