机器学习-kmeans的使用
- import numpy as np
- import pandas as pd
- import matplotlib
- from matplotlib import pyplot as plt
- %matplotlib inline
- matplotlib.rcParams['font.sans-serif'] = ['SimHei']
- data = pd.read_csv('./010-data_multivar.csv',header=None)
- #拆分数据
- dataset_X,dataset_y = data.iloc[:,:-],data.iloc[:,-]
- # print(dataset_X.head())
- dataset_X = dataset_X.values
- dataset_y = dataset_y.values
无标签数据集可视化,将第一列feature作为X,第二列feature作为y
- def visual_2D_dataset_dist(dataset):
- '''将二维数据集dataset显示在散点图中'''
- assert dataset.shape[]==,'only support dataset with 2 features'
- plt.figure()
- X=dataset[:,]
- Y=dataset[:,]
- plt.scatter(X,Y,marker='v',c='g',label='dataset')
- X_min,X_max=np.min(X)-,np.max(X)+
- Y_min,Y_max=np.min(Y)-,np.max(Y)+
- plt.title('dataset distribution')
- plt.xlim(X_min,X_max)
- plt.ylim(Y_min,Y_max)
- plt.xlabel('feature_0')
- plt.ylabel('feature_1')
- plt.legend()
- visual_2D_dataset_dist(dataset_X)
构造 kmeans
- from sklearn.cluster import KMeans
- #init
- kmeans = KMeans(init='k-means++',n_clusters=4,n_init=5)
- kmeans.fit(dataset_X)
将dataset_X聚类效果可视化
- def visual_kmeans_effect(k_means,dataset):
- assert dataset.shape[1]==2,'only support dataset with 2 features'
- X=dataset[:,0]
- Y=dataset[:,1]
- X_min,X_max=np.min(X)-1,np.max(X)+1
- Y_min,Y_max=np.min(Y)-1,np.max(Y)+1
- # meshgrid 生成网格点坐标矩阵
- X_values,Y_values=np.meshgrid(np.arange(X_min,X_max,0.01),
- np.arange(Y_min,Y_max,0.01))
- # 预测网格点的标记
- predict_labels=k_means.predict(np.c_[X_values.ravel(),Y_values.ravel()])
- predict_labels=predict_labels.reshape(X_values.shape)
- plt.figure()
- plt.imshow(predict_labels,interpolation='nearest',
- extent=(X_values.min(),X_values.max(),
- Y_values.min(),Y_values.max()),
- cmap=plt.cm.Paired,
- aspect='auto',
- origin='lower')
- # 将数据集绘制到图表中
- plt.scatter(X,Y,marker='v',facecolors='none',edgecolors='k',s=30)
- # 将中心点绘制到图中
- centroids=k_means.cluster_centers_
- plt.scatter(centroids[:,0],centroids[:,1],marker='o',
- s=100,linewidths=2,color='k',zorder=5,facecolors='b')
- plt.title('K-Means effect graph')
- plt.xlim(X_min,X_max)
- plt.ylim(Y_min,Y_max)
- plt.xlabel('feature_0')
- plt.ylabel('feature_1')
- plt.show()
- visual_kmeans_effect(kmeans,dataset_X)
# 鸢尾花聚类
- from sklearn.datasets import load_iris
- datairis = load_iris()
- dataset = datairis.data
- from sklearn.cluster import KMeans
- #init
- kmeans = KMeans(init='k-means++',n_clusters=,n_init=)
- kmeans.fit(dataset)
- print(kmeans.labels_) #去除标签
- print(datairis)
机器学习-kmeans的使用的更多相关文章
- 视觉机器学习------K-means算法
K-means(K均值)是基于数据划分的无监督聚类算法. 一.基本原理 聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类.聚 ...
- 机器学习——KMeans聚类,KMeans原理,参数详解
0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...
- 机器学习——KMeans
导入类库 from sklearn.cluster import KMeans from sklearn.datasets import make_blobs import numpy as np i ...
- 机器学习--k-means聚类原理
“物以类聚,人以群分”, 所谓聚类就是将相似的元素分到一"类"(有时也被称为"簇"或"集合"), 簇内元素相似程度高, 簇间元素相似程度低. ...
- Python之机器学习K-means算法实现
一.前言: 今天在宿舍弄了一个下午的代码,总算还好,把这个东西算是熟悉了,还不算是力竭,只算是知道了怎么回事.今天就给大家分享一下我的代码.代码可以运行,运行的Python环境是Python3.6以上 ...
- 机器学习K-Means
1.K-Means聚类算法属于无监督学习算法. 2.原理:先随机选择K个质心,根据样本到质心的距离将样本分配到最近的簇中,然后根据簇中的样本更新质心,再次计算距离重新分配簇,直到质心不再发生变化,迭代 ...
- 09-赵志勇机器学习-k-means
(草稿) k-means: 1. 随机选取n个中心 2. 计算每个点到各个中心的距离 3. 距离小于阈值的归成一类. 4. 计算新类的质心,作为下一次循环的n个中心 5. 直到新类的质心和对应本次循环 ...
- 机器学习-K-means聚类及算法实现(基于R语言)
K-means聚类 将n个观测点,按一定标准(数据点的相似度),划归到k个聚类(用户划分.产品类别划分等)中. 重要概念:质心 K-means聚类要求的变量是数值变量,方便计算距离. 算法实现 R语言 ...
- 机器学习 - k-means聚类
k-means简介 k-means是无监督学习下的一种聚类算法,简单说就是不需要数据标签,仅靠特征值就可以将数据分为指定的几类.k-means算法的核心就是通过计算每个数据点与k个质心(或重心)之间的 ...
随机推荐
- Robust PCA via Outlier Pursuit
目录 引 主要结果 定理1 定理2 理论证明 构造Oracle Problem 算法 Xu H, Caramanis C, Sanghavi S, et al. Robust PCA via Outl ...
- git bash 连接github并提交项目工程
借鉴博客:https://www.cnblogs.com/flora5/p/7152556.html https://blog.csdn.net/heng_yan/article/details/79 ...
- mysql一个非常实用解决sql查询优化的函数explain
前言: 项目中有个表有几万条数据,然后还要关联其他表,查询条件也有点多,再没有其他查询条件下,默认时间查询条件如果是查一年的数据的话,查询时间那是慢得可怕. 找总监去优化sql,看他用了一个sql函数 ...
- SpringBoot+Redis整合
SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...
- 在vue 里使用腾讯ditu
https://www.cnblogs.com/mrer/p/7144705.html
- 1.openshift
openshit是红帽开源的容器云平台.
- sql 查询字段如果为null 则返回0的写法
oracle select nvl(字段名,0) from 表名; ----------------------------------- sqlserver select isnull(字段名,0) ...
- [CF 1043F] Make It One
Description 给定 \(n\) 个正整数 \(a_i\),最少选出多少个 \(a_i\) 使得他们 \(gcd\) 为 \(1\)?\(n,a_i\le 3\times 10^5\). So ...
- 题解:luoguP1861 星之器
为什么全世界都说这是个物理题,不应该是一个数学题吗,神犇的势能完全看不懂 我们直接来看题,对于一个点,在计算时候横坐标和纵坐标互不影响,所以我们分开考虑. 我们记两个点假如横坐标相同,分别记纵坐标为a ...
- Python--基础二
Python基础:字符串str & 列表list & 元组tuple & 字典dict & 集合set Python 基础 2 字符串 str 字符串是以单引号或双引号 ...