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

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.kler.cn/a/391438.html

相关文章:

  • 从玩具到工业控制--51单片机的跨界传奇【2】
  • STM32 FreeRTOS 的任务挂起与恢复以及查看任务状态
  • Android SystemUI——使用Dagger2加载组件(四)
  • FLASK 上传文件
  • ArkTS 组件事件、状态管理与资源管理
  • 一个使用 Golang 编写的新一代网络爬虫框架,支持JS动态内容爬取
  • 【Vue3】知识汇总,附详细定义和源码详解,后续出微信小程序项目(4)
  • Python爬虫:国家代码(ISO 3166-1)国家货币代码(ISO 4217)
  • 前端学习八股资料CSS(二)
  • requests库如何处理 - POST请求常见的两种请求体格式:表单格式JSON格式
  • 【H3C华三 】VRRP与BFD、Track联动配置案例
  • WebRTC视频 01 - 视频采集整体架构
  • 【C++课程学习】:string的模拟实现
  • 两化融合评估流程
  • GPT模型发展放缓?《The Information》称是,OpenAI专家Noam Brown称否!
  • TDesign了解及使用
  • MySQL系列:一句SQL,MySQL是怎么工作的?
  • Linux SSH私钥认证结合cpolar内网穿透安全高效远程登录指南
  • 网站小程序app怎么查有没有备案?
  • uniapp上拉刷新下拉加载
  • Codeforces Round 984 (Div. 3) (A~E)
  • Python | Leetcode Python题解之第553题最优除法
  • Java poi 模板导出Word 带图片
  • React中右击出现自定弹窗
  • 了解外呼系统线路分类,提升业务效率
  • Django框架:Form组件及参数