以下为你提供一个使用Python实现简单机器学习项目的教程案例,此案例将使用鸢尾花数据集进行分类任务,运用经典的支持向量机(SVM)算法。
步骤 1:环境准备
首先,你要确保已经安装了必要的Python库,像scikit - learn
、pandas
、matplotlib
和seaborn
。可以使用以下命令进行安装:
pip install scikit-learn pandas matplotlib seaborn
步骤 2:导入所需库
python">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
库自带的鸢尾花数据集。
python"># 加载鸢尾花数据集
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:数据探索性分析
python"># 查看数据集的基本信息
print(iris_df.info())
# 查看数据集的统计信息
print(iris_df.describe())
# 绘制散点图矩阵,观察特征之间的关系
sns.pairplot(iris_df, hue='species')
plt.show()
步骤 5:数据划分
把数据集划分为训练集和测试集,比例为80:20。
python"># 提取特征和目标变量
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)算法训练模型。
python"># 创建SVM分类器
svm_model = SVC()
# 训练模型
svm_model.fit(X_train, y_train)
步骤 7:模型预测与评估
python"># 在测试集上进行预测
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()
代码解释
- 数据加载:借助
scikit - learn
库的datasets.load_iris()
函数加载鸢尾花数据集,并且将其转换为pandas
的DataFrame
格式,便于后续处理。 - 数据探索性分析:运用
pandas
和seaborn
库对数据集的基本信息、统计信息进行查看,同时绘制散点图矩阵,以观察特征之间的关系。 - 数据划分:使用
train_test_split
函数把数据集划分为训练集和测试集,其中测试集占比20%。 - 模型训练:创建一个支持向量机(SVM)分类器,并使用训练集对其进行训练。
- 模型预测与评估:在测试集上进行预测,计算准确率,打印分类报告,并且绘制混淆矩阵,以此评估模型的性能。
通过以上步骤,你就能完成一个简单的机器学习分类项目。