【深耕 Python】Data Science with Python 数据科学(18)Scikit-learn机器学习(三)

写在前面

关于数据科学环境的建立,可以参考我的博客:

【深耕 Python】Data Science with Python 数据科学(1)环境搭建

往期数据科学博文一览:

【深耕 Python】Data Science with Python 数据科学(2)jupyter-lab和numpy数组

【深耕 Python】Data Science with Python 数据科学(3)Numpy 常量、函数和线性空间

【深耕 Python】Data Science with Python 数据科学(4)(书337页)练习题及解答

【深耕 Python】Data Science with Python 数据科学(5)Matplotlib可视化(1)

【深耕 Python】Data Science with Python 数据科学(6)Matplotlib可视化(2)

【深耕 Python】Data Science with Python 数据科学(7)书352页练习题

【深耕 Python】Data Science with Python 数据科学(8)pandas数据结构:Series和DataFrame

【深耕 Python】Data Science with Python 数据科学(9)书361页练习题

【深耕 Python】Data Science with Python 数据科学(10)pandas 数据处理(一)

【深耕 Python】Data Science with Python 数据科学(11)pandas 数据处理(二)

【深耕 Python】Data Science with Python 数据科学(12)pandas 数据处理(三)

【深耕 Python】Data Science with Python 数据科学(13)pandas 数据处理(四):书377页练习题

【深耕 Python】Data Science with Python 数据科学(14)pandas 数据处理(五):泰坦尼克号亡魂 Perished Souls on "RMS Titanic"

【深耕 Python】Data Science with Python 数据科学(15)pandas 数据处理(六):书385页练习题

【深耕 Python】Data Science with Python 数据科学(16)Scikit-learn机器学习(一)

【深耕 Python】Data Science with Python 数据科学(17)Scikit-learn机器学习(二)

代码说明: 由于实机运行的原因,可能省略了某些导入(import)语句。

本期,简单地使用scikit-learn库完成K-Means聚类算法。

一、生成随机数据簇

python 复制代码
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

X, _ = make_blobs(n_samples=300, centers=4, random_state=42)
fig, ax = plt.subplots()
ax.scatter(X[:, 0], X[:, 1])
plt.title("Blob Clusters")
plt.xlabel("X")
plt.ylabel("Y")
plt.grid()
plt.show()

程序输出:

二、在数据集上调用KMeans聚类算法

python 复制代码
from sklearn.cluster import KMeans

kmeans = KMeans(n_clusters=4)
kmeans.fit(X)
centers = kmeans.cluster_centers_
print(centers)

程序输出:

python 复制代码
[[-2.70981136  8.97143336]   # center 1
 [-6.83235205 -6.83045748]   # center 2
 [ 4.7182049   2.04179676]   # center 3
 [-8.87357218  7.17458342]]  # center 4

四、聚类结果可视化

使用matplotlib库将上述的聚类结果可视化:

python 复制代码
fig, ax = plt.subplots()
ax.scatter(X[:, 0], X[:, 1])
ax.scatter(centers[:, 0], centers[:, 1], s=200, alpha=0.9, color="orange")
plt.title("Cluster Result Illustration")
plt.xlabel("X")
plt.ylabel("Y")
plt.grid()
plt.show()

程序输出:

参考文献 Reference

《Learn Enough Python to be Dangerous------Software Development, Flask Web Apps, and Beginning Data Science with Python》, Michael Hartl, Boston, Pearson, 2023.

相关推荐
Swizard8 小时前
别再让你的 Python 傻等了:三分钟带你通过 asyncio 实现性能起飞
python
代码or搬砖8 小时前
String字符串
android·java·开发语言
leo__5209 小时前
基于两步成像算法的聚束模式SAR MATLAB实现
开发语言·算法·matlab
Darkershadow9 小时前
python学习之串口通信
python·学习
Macbethad10 小时前
自动化测试技术报告
开发语言·lua
38242782710 小时前
python:输出JSON
前端·python·json
不会画画的画师10 小时前
Go开发指南:io/ioutil包应用和迁移指南
开发语言·后端·golang
2503_9284115610 小时前
12.22 wxml语法
开发语言·前端·javascript
学废了wuwu10 小时前
机器学习模型评估指标完全解析:准确率、召回率、F1分数等
人工智能·机器学习
59803541510 小时前
【java工具类】小数、整数转中文大写
android·java·开发语言