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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赛卡

逐梦而行即辉煌

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值