python实现决策树实例

      今天用python实现了一个决策树模型,python做机器学习有大量的库支持,简洁高效,没有深厚数学与算法基础的人也可以调用库来实现机器学习模型。当然大家想做好机器学习还是要好好积淀深厚的知识,只当调包侠能做的东西非常有限啊。

       本文是对经典的鸢尾花数据集做分类,大家需要下载sklearn、pandas、matplotlib、seaborn库,可以直接在pycharm中下载,另外鸢尾花数据集已经包含在seaborn库中,接下来是代码实现,python3可以运行。

       说明:

       注释的部分是对鸢尾花数据集的数据分析,大家可以去掉注释来运行观察

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection  import train_test_split  #用于划分训练集与测试集
import seaborn as sns
iris_data = pd.read_csv('iris.csv')

#以下代码展示的是散点图
#print(iris_data.head())
#print(iris_data.describe())
#sns.pairplot(iris_data.dropna(), hue='species')
#plt.show()

#以下代码展示的是小提琴图
# plt.figure(figsize = (10, 10))
# for column_index, column in enumerate(iris_data.columns):
#     if column == 'species':
#         continue
#     plt.subplot(2, 2, column_index +1 )
#     sns.violinplot(x='species', y=column, data=iris_data)
# plt.show()

#决策树, 训练
all_inputs = iris_data[['sepal_length', 'sepal_width', 'petal_length', 'petal_width']].values
all_classes = iris_data['species'].values
#划分训练集与测试集
(training_inputs, testing_inputs, training_classes, testing_classes) =train_test_split(all_inputs, all_classes,test_size=0.2, random_state=1)
#建立决策树  在此全部为默认参数了  主要参数criterion可选‘gini'或'entropy'作为生成树依据,max_deoth可以决定树的深度,max_leaf_nodes限制最大叶子树
decision_tree_classifier = DecisionTreeClassifier()
decision_tree_classifier.fit(training_inputs, training_classes)
#decision_score = decision_tree_classifier.score(testing_inputs, testing_classes)
#print(decision_score)
decision_tree_output = decision_tree_classifier.predict(testing_inputs)
print('真实值是:')
print(testing_classes)

print('预测值是:')
print(decision_tree_output)

结果显示如下:

python实现决策树实例_第1张图片

你可能感兴趣的:(python机器学习)