一、问题描述
小麦种子数据集(Wheat Seeds Dataset)是一个经典的机器学习数据集,用于分类任务。该数据集由英国农业研究委员会植物育种研究所在20世纪80年代收集,并由K. D. Hill和J. Skerritt在1986年发表。数据集包含了7个特征,用于区分三种不同的小麦品种。该数据集包含属于三种不同小麦品种的种子信息:Kama、Rosa 和 Canadian。它是一个均衡的数据集,每个类别有 70 个实例。种子内部内核结构的测量值是使用软 X 射线技术检测的。
二、数据集内容
为了构建数据,测量了小麦籽粒的七个几何参数:
面积(Area):种子横截面的面积(单位:平方像素)。
周长(Perimeter):种子横截面的周长(单位:像素)。
紧凑度(Compactness):面积与周长的比值。
长度(Kernel Length):种子核心的长度(单位:像素)。
宽度(Kernel Width):种子核心的宽度(单位:像素)。
不对称系数(Asymmetry Coefficient):种子核心的不对称性。
沟槽长度(Groove Length):种子核心的沟槽长度(单位:像素)。
对小麦籽粒的分类:
Type: 分类1-Kama、2-Rosa 和 3-Canadian
数据样例:
Area | Perimeter | Compactness | Kernel.Length | Kernel.Width | Asymmetry.Coeff | Kernel.Groove | Type |
---|---|---|---|---|---|---|---|
15.26 | 14.84 | 0.871 | 5.763 | 3.312 | 2.221 | 5.22 | 1 |
14.88 | 14.57 | 0.8811 | 5.554 | 3.333 | 1.018 | 4.956 | 1 |
14.29 | 14.09 | 0.905 | 5.291 | 3.337 | 2.699 | 4.825 | 1 |
13.84 | 13.94 | 0.8955 | 5.324 | 3.379 | 2.259 | 4.805 | 1 |
16.14 | 14.99 | 0.9034 | 5.658 | 3.562 | 1.355 | 5.175 | 1 |
14.38 | 14.21 | 0.8951 | 5.386 | 3.312 | 2.462 | 4.956 | 1 |
14.69 | 14.49 | 0.8799 | 5.563 | 3.259 | 3.586 | 5.219 | 1 |
16.63 | 15.46 | 0.8747 | 6.053 | 3.465 | 2.04 | 5.877 | 1 |
16.44 | 15.25 | 0.888 | 5.884 | 3.505 | 1.969 | 5.533 | 1 |
15.26 | 14.85 | 0.8696 | 5.714 | 3.242 | 4.543 | 5.314 | 1 |
14.03 | 14.16 | 0.8796 | 5.438 | 3.201 | 1.717 | 5.001 | 1 |
三、分类样例
以下是一个简单的Python示例,展示如何使用Pandas和Scikit-learn库加载数据集并进行分类:
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
url = './seeds.csv'
data = pd.read_csv(url)
# 分离特征和标签
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练决策树分类器
classifier = DecisionTreeClassifier()
classifier.fit(X_train, y_train)
# 预测测试集
y_pred = classifier.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy * 100:.2f}%')
通过这个示例,您可以了解如何使用小麦种子数据集进行分类任务,并评估模型的性能。