Iris鸢尾花与Python:一种机器学习的经典示例
在数据科学领域,Iris鸢尾花数据集是一个经典而常用的机器学习示例。这个数据集由生物学家阿尔弗雷德·维尔逊于1936年提出,记录了三种不同品种的鸢尾花(Setosa, Versicolor, Virginica)的四个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。
本文将带你一步步通过Python实现对鸢尾花数据集进行可视化和分类。我们将使用scikit-learn
库中的决策树分类器来构建模型,并使用matplotlib
库来绘制可视化图。接下来,我们将具体介绍这个流程。
flowchart TD
A[读取数据] --> B[数据可视化]
B --> C[数据准备]
C --> D[建立分类模型]
D --> E[模型评估]
E --> F[预测新数据]
步骤一:读取数据
首先,我们需要安装必要的库并加载鸢尾花数据集。
# 安装所需库
!pip install scikit-learn matplotlib seaborn
# 导入库
import pandas as pd
from sklearn import datasets
# 加载鸢尾花数据集
iris = datasets.load_iris()
data = pd.DataFrame(data=iris.data, columns=iris.feature_names)
data['target'] = iris.target
print(data.head())
步骤二:数据可视化
使用seaborn
库进行数据的可视化,以观察不同品种之间的差异。
import seaborn as sns
import matplotlib.pyplot as plt
# 画出对角线图
sns.pairplot(data, hue='target', markers=["o", "s", "D"])
plt.show()
这将生成一组散点图,帮助我们观察四个特征之间的分布及其与不同鸢尾花品种的关系。
步骤三:数据准备
分割数据集为训练集和测试集,以便于模型评估。
from sklearn.model_selection import train_test_split
X = data.iloc[:, :-1] # 特征
y = data['target'] # 标签
# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
步骤四:建立分类模型
在这一步,我们将建立一个决策树分类器。
from sklearn.tree import DecisionTreeClassifier
# 创建决策树分类器
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)
步骤五:模型评估
使用测试集对模型进行评估。
from sklearn.metrics import classification_report, confusion_matrix
y_pred = classifier.predict(X_test)
# 打印评估结果
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
步骤六:预测新数据
最后,我们可以使用训练好的模型对新数据进行预测。
# 新样本进行预测
new_data = [[5.1, 3.5, 1.4, 0.2]]
pred = classifier.predict(new_data)
print(f"预测的鸢尾花品种为: {iris.target_names[pred][0]}")
journey
title 机器学习之旅
section 数据准备
读取鸢尾花数据集: 5: 自然
数据可视化: 4: 顺利
section 模型建立
建立决策树: 3: 挑战
训练模型: 5: 成功
section 模型评估
测试模型: 4: 收获
预测新数据: 5: 高兴
结尾
通过以上步骤,我们已经成功掌握了使用Python对鸢尾花数据集进行分类的基本流程。这不仅能够帮助我们了解机器学习的基本原理,还为我们将来的数据分析奠定了基础。无论是数据可视化、模型构建,还是评估和预测,每一步都至关重要。通过实践,我们能够更深刻地理解数据科学领域的魅力和应用,希望你能够继续探索更多有趣的数据集和机器学习算法!