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

news/2024/11/16 18:31:18 标签: python, sklearn, kmeans, 机器学习

pip install scikit-learn 或者 直接用 Anaconda3

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

编写 test_sklearn_3.py  如下

python"># -*- 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.niftyadmin.cn/n/5754505.html

相关文章

【提高篇】3.3 GPIO(三,工作模式详解 上)

目录 一,工作模式介绍 二,输入浮空 2.1 输入浮空简介 2.2 输入浮空特点 2.3 按键检测示例 2.4 高阻态 三,输入上拉 3.1 输入上拉简介 3.2 输入上拉的特点 3.3 按键检测示例 四,输入下拉 4.1 输入下拉简介 4.2 输入下拉特点 4.3 按键检测示例 一,工作模式介绍…

用redis的zset实现日榜,周榜,月榜

思路&#xff1a; 1.初始化一个月的数据&#xff1a; /*** 初始化一个月数据*/Testpublic void initMonthData(){//计算当前时间小时的keylong hourSystem.currentTimeMillis()/(1000*60*60);for(int i1;i<24*30;i){String key"W_hour"(hour-i);Random random new…

LabVIEW大数据处理

在物联网、工业4.0和科学实验中&#xff0c;大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言&#xff0c;凭借其强大的数据采集和分析能力&#xff0c;广泛应用于实时数据处理和控制系统中。然而&#xff0c;在面对大数据处理时&#xff0c;LabVIEW也存在一些注意事项。…

博睿数据登顶中国应用性能管理及可观测性APMO市场份额第一!

近日&#xff0c;全球领先的IT市场研究和咨询公司IDC发布《中国IT智能运维软件产品市场跟踪报告&#xff0c;2024H1》&#xff0c;此次IDC将原有IT统一运维软件报告即ITUO报告升级为IT智能运维软件报告即ITAO报告&#xff0c;以反映越来越多的运维软件在不断加持AI能力&#xf…

LeetCode74. 搜索二维矩阵(2024冬季每日一题 6)

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…

UEFI Shell命令(二)

一、Shell 命令行选项 ​-b, -break 每页输出后暂停一会&#xff0c;即分页输出 -q, -quiet 抑制所有的输出 -sfo 标准格式输出 -t, -terse 简洁的输出 -v, -verbose 详细的输出 -&#xff1f; 帮助 二、特殊Shell命令 1、attrib 显示或更改文件或目录的属性 [a | -a] 设置…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-24

文件下载与邀请翻译者 学习英特尔开发手册&#xff0c;最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册&#xff0c;会是一件耗时费力的工作。如果有愿意和我一起来做这件事的&#xff0c;那么&#xff…

vue3 + vite 进行axios请求封装及接口API的统一管理

前言 在Vue 3项目中使用Vite进行开发时&#xff0c;对axios进行请求封装以及统一管理接口API是非常常见的做法。这不仅可以提高代码的复用性和可维护性&#xff0c;还能统一处理请求和响应&#xff0c;管理错误处理逻辑等。下面是一个详细的步骤和示例代码&#xff0c;来说明如…