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

Python scikit-learn 机器学习算法实践

Scikit-learn 机器学习算法实践

继上一篇Python 快速入门:基础语法与数据处理实战, 我们接下来介绍人工智能常用的机器学习库。在数据分析和预测建模领域,Scikit-learn 是一个功能强大且易于使用的 Python 机器学习库。本文将通过几个示例,介绍如何使用 Scikit-learn 进行监督学习(分类和回归)以及无监督学习(聚类和降维)。

在这里插入图片描述

1. 监督学习 - 分类

1.1 K-近邻算法进行鸢尾花分类

代码
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data  # 特征数据
y = iris.target  # 标签数据# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建 K-近邻分类器模型
knn = KNeighborsClassifier(n_neighbors=3)# 使用训练集训练模型
knn.fit(X_train, y_train)# 使用测试集进行预测
y_pred = knn.predict(X_test)# 计算预测的准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型的准确率为:{accuracy * 100:.2f}%")
流程图
加载数据集
划分训练集和测试集
创建K-近邻模型
训练模型
进行预测
计算准确率

1.2 支持向量机进行乳腺癌分类

代码
# 导入所需的库
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 加载乳腺癌数据集
cancer = datasets.load_breast_cancer()
X = cancer.data  # 特征数据
y = cancer.target  # 标签数据# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建支持向量机分类器模型
svm = SVC(kernel='linear')# 使用训练集训练模型
svm.fit(X_train, y_train)# 使用测试集进行预测
y_pred = svm.predict(X_test)# 计算预测的准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型的准确率为:{accuracy * 100:.2f}%")
流程图
加载数据集
划分训练集和测试集
创建支持向量机模型
训练模型
进行预测
计算准确率

2. 监督学习 - 回归

2.1 线性回归预测加州房价

代码
# 导入所需的库
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error# 加载加州房价数据集
housing = fetch_california_housing()
X = housing.data  # 特征数据
y = housing.target  # 标签数据# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 创建线性回归模型
lr = LinearRegression()# 使用训练集训练模型
lr.fit(X_train, y_train)# 使用测试集进行预测
y_pred = lr.predict(X_test)# 计算预测的均方误差
mse = mean_squared_error(y_test, y_pred)
print(f"模型的均方误差为:{mse:.2f}")
流程图
加载数据集
划分训练集和测试集
创建线性回归模型
训练模型
进行预测
计算均方误差

3. 无监督学习 - 聚类

3.1 K-均值聚类分析鸢尾花数据

代码
# 导入所需的库
from sklearn import datasets
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data  # 特征数据# 创建 K-均值聚类模型
kmeans = KMeans(n_clusters=3)# 使用数据训练模型
kmeans.fit(X)# 获取聚类结果
labels = kmeans.labels_# 可视化聚类结果
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.xlabel('花萼长度')
plt.ylabel('花萼宽度')
plt.title('K-均值聚类结果')
plt.show()
流程图
加载数据集
创建K-均值聚类模型
训练模型
获取聚类结果
可视化聚类结果

4. 无监督学习 - 降维

4.1 主成分分析降维

代码
# 导入所需的库
from sklearn import datasets
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data  # 特征数据# 创建主成分分析模型
pca = PCA(n_components=2)# 使用数据训练模型并降维
X_pca = pca.fit_transform(X)# 可视化降维后的结果
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=iris.target, cmap='viridis')
plt.xlabel('主成分 1')
plt.ylabel('主成分 2')
plt.title('主成分分析降维结果')
plt.show()
流程图
加载数据集
创建主成分分析模型
训练模型并降维
可视化降维结果

通过以上示例,我们可以看到 Scikit-learn 提供了简单而强大的工具,用于处理各种机器学习任务。无论是监督学习还是无监督学习,都可以通过几行代码快速实现。希望这些示例能够帮助你更好地理解和应用机器学习算法。

相关文章:

  • 2025年KBS SCI1区TOP:增强天鹰算法EBAO,深度解析+性能实测
  • 指针函数和函数指针
  • C++游戏服务器开发之⑦redis的使用
  • MAUI项目iOS应用以进 App Store 分发
  • 免费将AI生成图像放大4倍的方法
  • 图像预处理-绘制图像轮廓与凸包
  • PyTorch `flatten()` 和 `squeeze()` 区别
  • c++ 类的语法1
  • 大学英语四级选词填空练习题解析
  • asp.net core webapi+efcore
  • 实现AWS Step Function安全地请求企业内部API返回数据
  • Windows Server .NET Core 应用程序部署到 IIS 解决首次访问加载慢的问题
  • 谷歌称LLMs.txt类似于关键词元标签:SEO影响与应对策略
  • 【轻松学会使用Redis基础命令】
  • 数据结构实验7.2:二叉树的基本运算
  • 直线轴承的正确安装方式是什么?
  • 服务治理-服务发现和负载均衡
  • Windows使用SonarQube时启动脚本自动关闭
  • 详解与HTTP服务器相关操作
  • (9)VTK C++开发示例 --- 计算两点之间的距离
  • “杭州六小龙”爆火出圈后,浙江高规格部署人工智能发展
  • 2025扬州“烟花三月”国际经贸旅游节开幕,37个重大项目现场签约
  • 九部门:将符合条件的家政从业人员纳入公租房等保障范围
  • 人民日报钟声:经济霸凌损害美国国家信誉
  • 何立峰会见美国英伟达公司总裁黄仁勋:欢迎美资企业深耕中国市场
  • 睿远基金傅鹏博、赵枫股票仓位再提升,寒武纪、分众传媒分别首进持仓前十