通过Python编程语言实现“机器学习”小项目教程案例

发布于:2025-02-27 ⋅ 阅读:(11) ⋅ 点赞:(0)

以下为你提供一个使用Python实现简单机器学习项目的教程案例,此案例将使用鸢尾花数据集进行分类任务,运用经典的支持向量机(SVM)算法。

步骤 1:环境准备

首先,你要确保已经安装了必要的Python库,像scikit - learnpandasmatplotlibseaborn。可以使用以下命令进行安装:

pip install scikit-learn pandas matplotlib seaborn

步骤 2:导入所需库

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix

步骤 3:加载数据集

我们使用scikit - learn库自带的鸢尾花数据集。

# 加载鸢尾花数据集
iris = datasets.load_iris()
# 将数据转换为DataFrame格式,方便后续处理
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
# 添加目标列
iris_df['target'] = iris.target
# 将目标值转换为对应的类别名称
iris_df['species'] = iris_df['target'].map({0: iris.target_names[0], 1: iris.target_names[1], 2: iris.target_names[2]})

print(iris_df.head())

步骤 4:数据探索性分析

# 查看数据集的基本信息
print(iris_df.info())

# 查看数据集的统计信息
print(iris_df.describe())

# 绘制散点图矩阵,观察特征之间的关系
sns.pairplot(iris_df, hue='species')
plt.show()

步骤 5:数据划分

把数据集划分为训练集和测试集,比例为80:20。

# 提取特征和目标变量
X = iris_df.drop(['target', 'species'], axis=1)
y = iris_df['target']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

步骤 6:模型训练

使用支持向量机(SVM)算法训练模型。

# 创建SVM分类器
svm_model = SVC()

# 训练模型
svm_model.fit(X_train, y_train)

步骤 7:模型预测与评估

# 在测试集上进行预测
y_pred = svm_model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")

# 打印分类报告
print("分类报告:")
print(classification_report(y_test, y_pred))

# 绘制混淆矩阵
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues', 
            xticklabels=iris.target_names, yticklabels=iris.target_names)
plt.xlabel('预测类别')
plt.ylabel('真实类别')
plt.title('混淆矩阵')
plt.show()

代码解释

  1. 数据加载:借助scikit - learn库的datasets.load_iris()函数加载鸢尾花数据集,并且将其转换为pandasDataFrame格式,便于后续处理。
  2. 数据探索性分析:运用pandasseaborn库对数据集的基本信息、统计信息进行查看,同时绘制散点图矩阵,以观察特征之间的关系。
  3. 数据划分:使用train_test_split函数把数据集划分为训练集和测试集,其中测试集占比20%。
  4. 模型训练:创建一个支持向量机(SVM)分类器,并使用训练集对其进行训练。
  5. 模型预测与评估:在测试集上进行预测,计算准确率,打印分类报告,并且绘制混淆矩阵,以此评估模型的性能。

通过以上步骤,你就能完成一个简单的机器学习分类项目。