机器学习实验3.1——肿瘤预测(决策树)
实验3 决策树 实操项目1:肿瘤预测(决策树)
【实验内容】
基于威斯康辛乳腺癌数据集,采用决策树的方法进行肿瘤预测。
【实验要求】
1.加载sklearn自带的威斯康星乳腺癌数据集,探索数据。
2.进行数据集分割。
3.配置决策树模型。
4.训练决策树模型。
5.模型预测。
6.模型评估。
7.参数调优。可以根据评估结果,对模型设置或调整为更优的参数,使评估结果更准确。
In [3]
#1.加载sklearn自带的威斯康星乳腺癌数据集,探索数据。
from sklearn.datasets import load_breast_cancer
breast_cancer=load_breast_cancer()
print('breast_cancer数据集特征')
print(breast_cancer.data[:5])
print('breast_cancer数据集标签')
print(breast_cancer.target[:5])
#2.进行数据集分割。
from sklearn.model_selection import train_test_split
data_train,data_test,target_train,target_test=train_test_split(breast_cancer.data,breast_cancer.target,test_size=0.2)
#3.配置决策树模型。
from sklearn import tree # 导入决策树包
clf = tree.DecisionTreeClassifier() #加载决策树模型
#4.训练决策树模型。
clf.fit(data_train, target_train)
#5.模型预测。
predictions = clf.predict(data_test) # 模型测试
predictions[:10]
#6.模型评估。
from sklearn.metrics import accuracy_score # 导入准确率评价指标
print('Accuracy:%s'% accuracy_score(target_test, predictions))
#7.参数调优。可以根据评估结果,对模型设置或调整为更优的参数,使评估结果更准确。
#信息增益--entropy
clf2 = tree.DecisionTreeClassifier(criterion = 'entropy')
clf2.fit(data_train, target_train)
predictions2 = clf2.predict(data_test) # 模型测试
print('第一种:采用信息增益后的Accuracy:%s'% accuracy_score(target_test, predictions2))
#最大深度--max_depth
import numpy as np
max_depths = np.linspace(1, 32, 32, endpoint=True)
scores=[]
for i in max_depths:
clf3 = tree.DecisionTreeClassifier(max_depth=i)
clf3.fit(data_train, target_train)
predictions3 = clf3.predict(data_test) # 模型测试
scores.append(accuracy_score(target_test,predictions3))
import matplotlib.pyplot as plt
plt.figure()
plt.plot(scores)
plt.title('max_depth-accuracy_score')
plt.xlabel('max_depth')
plt.ylabel('accuracy_score')
plt.show()
max_score_index=np.argmax(scores)+1
print('第一种:可见当max-depth=',max_score_index,'时为最优其准确率为:',scores[max_score_index-1])
breast_cancer数据集特征 [[1.799e+01 1.038e+01 1.228e+02 1.001e+03 1.184e-01 2.776e-01 3.001e-01 1.471e-01 2.419e-01 7.871e-02 1.095e+00 9.053e-01 8.589e+00 1.534e+02 6.399e-03 4.904e-02 5.373e-02 1.587e-02 3.003e-02 6.193e-03 2.538e+01 1.733e+01 1.846e+02 2.019e+03 1.622e-01 6.656e-01 7.119e-01 2.654e-01 4.601e-01 1.189e-01] [2.057e+01 1.777e+01 1.329e+02 1.326e+03 8.474e-02 7.864e-02 8.690e-02 7.017e-02 1.812e-01 5.667e-02 5.435e-01 7.339e-01 3.398e+00 7.408e+01 5.225e-03 1.308e-02 1.860e-02 1.340e-02 1.389e-02 3.532e-03 2.499e+01 2.341e+01 1.588e+02 1.956e+03 1.238e-01 1.866e-01 2.416e-01 1.860e-01 2.750e-01 8.902e-02] [1.969e+01 2.125e+01 1.300e+02 1.203e+03 1.096e-01 1.599e-01 1.974e-01 1.279e-01 2.069e-01 5.999e-02 7.456e-01 7.869e-01 4.585e+00 9.403e+01 6.150e-03 4.006e-02 3.832e-02 2.058e-02 2.250e-02 4.571e-03 2.357e+01 2.553e+01 1.525e+02 1.709e+03 1.444e-01 4.245e-01 4.504e-01 2.430e-01 3.613e-01 8.758e-02] [1.142e+01 2.038e+01 7.758e+01 3.861e+02 1.425e-01 2.839e-01 2.414e-01 1.052e-01 2.597e-01 9.744e-02 4.956e-01 1.156e+00 3.445e+00 2.723e+01 9.110e-03 7.458e-02 5.661e-02 1.867e-02 5.963e-02 9.208e-03 1.491e+01 2.650e+01 9.887e+01 5.677e+02 2.098e-01 8.663e-01 6.869e-01 2.575e-01 6.638e-01 1.730e-01] [2.029e+01 1.434e+01 1.351e+02 1.297e+03 1.003e-01 1.328e-01 1.980e-01 1.043e-01 1.809e-01 5.883e-02 7.572e-01 7.813e-01 5.438e+00 9.444e+01 1.149e-02 2.461e-02 5.688e-02 1.885e-02 1.756e-02 5.115e-03 2.254e+01 1.667e+01 1.522e+02 1.575e+03 1.374e-01 2.050e-01 4.000e-01 1.625e-01 2.364e-01 7.678e-02]] breast_cancer数据集标签 [0 0 0 0 0] Accuracy:0.9035087719298246 第一种:采用信息增益后的Accuracy:0.9385964912280702 第一种:可见当max-depth= 6 时为最优其准确率为: 0.9385964912280702
<Figure size 432x288 with 1 Axes>

浙公网安备 33010602011771号