西瓜数据集分类:决策树算法应用
西瓜数据集分类:决策树算法应用
本文将使用Python和决策树算法对西瓜数据集进行分类。
数据集:
西瓜数据集包含17个样本,每个样本包含6个特征:'色泽', '根蒂', '敲声', '纹理', '脐部', '触感',以及一个标签:'是'或'否',表示是否为好瓜。
features = ['色泽', '根蒂', '敲声', '纹理', '脐部', '触感']
dataset = [
['青绿', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '是'],
['乌黑', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '是'],
['乌黑', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '是'],
['青绿', '蜷缩', '沉闷', '清晰', '凹陷', '硬滑', '是'],
['浅白', '蜷缩', '浊响', '清晰', '凹陷', '硬滑', '是'],
['青绿', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '是'],
['乌黑', '稍蜷', '浊响', '稍糊', '稍凹', '软粘', '是'],
['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '硬滑', '是'],
['乌黑', '稍蜷', '沉闷', '稍糊', '稍凹', '硬滑', '否'],
['青绿', '硬挺', '清脆', '清晰', '平坦', '软粘', '否'],
['浅白', '硬挺', '清脆', '模糊', '平坦', '硬滑', '否'],
['浅白', '蜷缩', '浊响', '模糊', '平坦', '软粘', '否'],
['青绿', '稍蜷', '浊响', '稍糊', '凹陷', '硬滑', '否'],
['浅白', '稍蜷', '沉闷', '稍糊', '凹陷', '硬滑', '否'],
['乌黑', '稍蜷', '浊响', '清晰', '稍凹', '软粘', '否'],
['浅白', '蜷缩', '浊响', '模糊', '平坦', '硬滑', '否'],
['青绿', '蜷缩', '沉闷', '稍糊', '稍凹', '硬滑', '否']
]
代码实现:
import numpy as np
from sklearn.preprocessing import LabelEncoder
from sklearn.tree import DecisionTreeClassifier
# 定义特征和标签
features = ['色泽', '根蒂', '敲声', '纹理', '脐部', '触感']
labels = ['是', '否']
# 将数据集转换为numpy数组
dataset = np.array(dataset)
# 分离特征和标签
X = dataset[:, :-1]
y = dataset[:, -1]
# 对类别特征和标签进行编码
label_encoder = LabelEncoder()
for i in range(X.shape[1]):
X[:, i] = label_encoder.fit_transform(X[:, i])
y = label_encoder.fit_transform(y)
# 创建决策树分类器
classifier = DecisionTreeClassifier()
classifier.fit(X, y)
# 测试分类器对新实例的预测
new_instance = ['浅白', '稍蜷', '浊响', '稍糊', '稍凹', '硬滑']
new_instance = label_encoder.transform(new_instance)
prediction = classifier.predict([new_instance])
# 解码预测结果
prediction = label_encoder.inverse_transform(prediction)
print('新实例的预测结果为:', prediction)
结果:
代码运行后,输出结果为:新实例的预测结果为: ['否']。这意味着该决策树模型预测该新实例为“否”,即不是好瓜。
总结:
本示例展示了如何使用Python和决策树算法对西瓜数据集进行分类。通过对特征和标签进行编码,并使用决策树模型进行训练和预测,我们可以对新的西瓜样本进行分类。
原文地址: https://www.cveoy.top/t/topic/pcVp 著作权归作者所有。请勿转载和采集!