鸢尾花数据集(Iris Dataset)攻略
鸢尾花数据集是机器学习领域中最常用的数据集之一,由英国统计学家Ronald Fisher于6年收集整理。该数据集包含了150个样本,每个样本包含了鸢尾的4个特征:花萼长度(pal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width),以及它们属的3个品种:山鸢尾(setosa)、变色鸢尾(versicolor)和维吉尼亚鸢尾(virginica)。本攻略将详细介绍如何使用鸢尾花数据集进行机器学习任务。
数据集的获取
鸢尾花数据集可以从UCI机器学习库中获取,也可以使用Python中的sklearn库直接获取。以下使用sklearn库获取鸢尾花数据集的示例代码:
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target
在上面的代码中,我们使用load_iris()函数从sklearn库中获取鸢尾花数据集,并将其分别存储在X和y变量中。其中,X变量包含了150个样本的4个特征,y变量包含了150个本所属的品种。
数据集的探索
在使用鸢尾花数据集进行机器学习任务之前我们需要对数据集进行探索和分析,以了解数据集的特征和分布情况。以下是一些常用的数据集探索方法:
方法1:使用pandas库进行数据集探索
我们可以使用Python中的pandas库对鸢尾花数据集进行探索和分析。以下是示例代码:
import pandas as pd
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['target'] = iris.target
print(iris_df.head())
print(iris_df.describe())
在上面的代码中,我们将鸢尾花数据集转换为pandas数据框,并使用head()和describe()函数分别查看前5行数据和数据集的统计信息。
方法2:使用matplotlib库进行数据可视化
我们可以使用Python中的matplotlib库对鸢尾花数据集进行可视化,以了解数据集的分布情况和特征之间的关系。以下是示例代码:
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.xlabel('Sepal length')
plt.ylabel('Sepal width')
plt.show()
在上面的代码中,我们使用scatter()函数绘制了花萼长度和花萼宽度之间的散点图,并使用c参数将不同品种的样本用不同的色表示。
机器习任务的实现
对鸢尾花数据集进行探索和分析之后,我们可以使用机器学习算法对数据集进行分类或回任务。以下是两关于鸢尾花数据集的机器学习任务示例:
示例1:使用KNN算法进行分类任务
假设我们要使用KNN算法对鸢尾花数据集进行分类任务,以下是详细步骤:
- 将数据集分为训练集和测试集。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
- 使用KNN算法对训练集进行训练,并对测试集预测。
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
- 使用评估指标评估模型能。
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
在上面的代码中,我们使用KNN算法对鸢尾花数据进行分类任务,并使用准确率作为估指标。
示例2:使用线性回归算法进行回归任务
假设我们要使用线性回归算法对鸢尾花数据集进行回归任务,是详细步骤:
- 将数据集分为训练集和测试集。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
- 使用线性回归算法对训练集进行训练,并对测试集进行预测。
from sklearn_model import LinearRegression
lr = LinearRegression()
lr.fit(X_train, y_train)
y_pred = lr.predict(X_test)
- 使用评估指标评估模型的性能。
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print('MSE:', mse)
在上面的代码中,我们使用线性回归算法对鸢尾花数据集进行回归任务,并使用均误差作为评估指标。
以上是关于鸢尾花数据集的完整攻略,包括数据集的获取、探索和机器学习任务的实现。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:鸢尾花(iris)数据集 - Python技术站