当前位置: 首页 > news >正文

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3

sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。

编写 test_sklearn_3.py  如下

# -*- coding: utf-8 -*-
""" 使用 sklearn 构建 K-Means 聚类模型 """
#import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import preprocessing
from sklearn import cluster# 1.加载 鸢尾花 数据集
iris = datasets.load_iris()
# 数据集的数据
data = iris['data']
print('iris_data:','\n', data)
# 数据集的标签
target = iris['target']
print('iris_target:','\n', target)
# 数据集的特征名称
feature_names = iris['feature_names']
print('iris_feature_names:','\n', feature_names)
# 数据集的描述信息
Descr = iris['DESCR']
print('iris_DESCR:','\n', Descr)
print('-----------------------')# 离差标准化:生成规则
scaler = preprocessing.MinMaxScaler().fit(data)
# 将规则应用于数据集
data_scaler = scaler.transform(data)
# 构建 KMeans 模型,并训练模型
kmeans = cluster.KMeans(n_clusters=3,n_init=10, random_state=123).fit(data_scaler)
print('KMeans:','\n', kmeans)
# 某一鸢尾花预测类别
result = kmeans.predict([[1.5,1.5,1.5,1.5]])
print('花瓣花萼长度宽度全为1.5的鸢尾花预测类别为:', result[0])# 聚类结果可视化 manifold 复印本
from sklearn import manifold
# 使用 TSNE 进行数据降维,降成2维
tsne = manifold.TSNE(n_components=2,init='random',random_state=177).fit(data)
# 将原始数据转换为 DataFrame
df = pd.DataFrame(tsne.embedding_)
# 将聚类结果存入 df数据表
df['labels'] = kmeans.labels_
# 提取不同标签的数据
df1 = df[df['labels']==0]
df2 = df[df['labels']==1]
df3 = df[df['labels']==2]
# 绘制图形
fig = plt.figure(figsize=(9,6))
# 用不同的颜色表示不同的数据
plt.plot(df1[0],df1[1],'bo', df2[0],df2[1],'r*', df3[0],df3[1],'gD')
plt.show()

运行 python test_sklearn_3.py 

参考书:【Python 数据分析与应用】第6章 使用 scikit-learn 构建模型

http://www.lryc.cn/news/482594.html

相关文章:

  • elementUI中2个日期组件实现开始时间、结束时间(禁用日期面板、控制开始时间不能超过结束时间的时分秒)实现方案
  • Oracle 聚集因子factor clustering
  • 【大数据学习 | kafka高级部分】kafka的快速读写
  • 云技术基础
  • 字节序(Byte Order)
  • 融云:社交泛娱乐出海机会尚存,跨境电商异军突起
  • django博客项目实现站内搜索功能
  • 蓝桥杯c++算法学习【1】之枚举与模拟(卡片、回文日期、赢球票、既约分数:::非常典型的比刷例题!!!)
  • Android 延时操作的常用方法
  • AI驱动的轻量级笔记应用Blinko
  • 一文搞懂 UML 类图
  • Zabbix 7 最新版本安装 Rocky Linux 8
  • 使用HTML、CSS和JavaScript创建动态雪人和雪花效果
  • redis bind 127.0.0.1和bind 10.34.56.78的区别
  • 基于点云的 3D 目标检测模型 PointPillars 部署 tensorRT
  • centos查看硬盘资源使用情况命令大全
  • Solon MVC 的 @Mapping 用法说明
  • uni-app表单⑪
  • PyQt5 加载UI界面与资源文件
  • 【MySQL】数据库知识突破:数据类型全解析与详解
  • 使用Golang实现开发中常用的【实例设计模式】
  • 【Java学习】电脑基础操作和编程环境配置
  • AVL树解析
  • 栈和队列(Java)
  • C#设计原则
  • easyfs 简易文件系统
  • 【架构论文-1】面向服务架构(SOA)
  • 刚刚!更新宁德时代社招Verify测评语言理解数字推理SHL题库、网盘资料、高分答案
  • C++笔记---智能指针
  • CentOS 7系统中更改YUM源为阿里云的镜像源