西电数据挖掘实验一 分类技术——鸢尾花分类


实验一 分类技术——鸢尾花分类

采用所学分类算法,对鸢尾花数据进行分类,具体要求如下:
1.填补鸢尾花数据集中的缺失数据,并划分训练集、测试集
2.采用决策树、KNN、朴素贝叶斯对数据分类,比较其在测试集上的预测准确率;
3.可视化决策树模型,打印出特征属性的重要性。


一、分析及设计

1. 决策树

  导入数据,将数据集分为70%训练集,30%测试集,调用tree库,将训练集放入clf这个原始模型中进行学习训练,随后得到一个具有特定参数的模型。最后,将测试集放入已经训练好的模型中进行预测。可视化决策树模型,更加直观的理解决策树的分类过程。

2. KNN

  导入数据,将数据集分为70%训练集,30%测试集,调用K近邻算法库,将训练集放入knn这个原始模型中进行学习训练,随后得到一个具有特定参数的模型。最后,将测试集放入已经训练好的模型中进行预测。

3. 朴素贝叶斯

  导入数据,将数据集分为70%训练集,30%测试集,调用GaussianNB库,随机划分训练集和测试集,将训练集放入clf这个原始模型中进行学习训练,随后得到一个具有特定参数的模型。最后,将测试集放入已经训练好的模型中进行预测。

二、详细实现

1. 决策树

(1) 导入数据

iris = datasets.load_iris() 

(2) 将数据集分为70%训练集和30%测试集

X_train, X_test, y_train, y_test = train_test_split(
    iris_X, iris_y, test_size=0.3)

(3) 训练决策树模型并打印预测结果

clf = tree.DecisionTreeClassifier()
clf = clf.fit(X_train,  y_train)
print(clf.predict(X_test))

(4) 预测准确率

accuracy = accuracy_score(y_test,clf.predict(X_test))

(5) 可视化决策树模型

tree.export_graphviz(clf)
feature_names = ['Calyx length',
  'Calyx width',
  'Petal length',
  'petal width']
target_names = ['0','1','2']
dot_data = tree.export_graphviz(clf, out_file=None, feature_names = feature_names, 
            class_names=target_names,filled = True,rounded=True,special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_png('iris.png')

2. KNN

(1) 导入数据

iris = datasets.load_iris()

(2) 将数据集分为70%训练集和30%测试集

X_train, X_test, y_train, y_test = train_test_split(
    iris_X, iris_y, test_size=0.3)

(3) 训练KNN模型并打印预测结果

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print(knn.predict(X_test))

(4) 预测准确率

accuracy = accuracy_score(y_test,knn.predict(X_test)) 

3. 朴素贝叶斯

(1) 导入数据

iris = datasets.load_iris() 

(2) 将数据集分为70%训练集和30%测试集

X_train, X_test, y_train, y_test = train_test_split(
    iris_X, iris_y, test_size=0.3)

(3) 训练KNN模型并打印预测结果

clf = GaussianNB()
clf = clf.fit(X_train, y_train)
print(clf.predict(X_test))

(4) 预测准确率

accuracy = accuracy_score(y_test,clf.predict(X_test))

三、实验结果

1. 决策树

(1)预测结果及准确率:
在这里插入图片描述
(2)可视化决策树
在这里插入图片描述

2. KNN

预测结果及准确率:
在这里插入图片描述

3. 朴素贝叶斯

预测结果及准确率:
在这里插入图片描述
由上述结果可以得到,KNN模型预测的准确率最高,约为98%

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值