机器学习————决策树(三)

本文介绍了使用sklearn库构建决策树模型的过程,以天气影响运动的数据集为例,探讨了criterion(信息增益与基尼指数)、min_samples_split等关键参数的影响,并通过可视化分析展示了不同参数设置下的决策树结构差异。

前两篇决策树的blog介绍了有关决策树的理论知识,这篇文章我们编码实践一下,采用了网上较为简单的一个有关天气影响运动的数据集,决策树建模部分是利用sklearn.tree.DecisionTreeClassifier()训练构建决策树模型,利用pydotplus+graphviz进行模型可视化展示。

数据集

由于数据量较少,就不再划分训练集测试集,将以上数据全部用于训练。

编码

import pandas as pd
from pandas import Series
import pydotplus
from sklearn import tree
from sklearn.externals.six import StringIO

# load data
datadic = '决策树.xlsx'
mydata = pd.read_excel(datadic)

# prepare
whetherlist = []
windlist =[]
resultlist = []
for i in range(len(mydata)):
    if mydata.ix[i][u'天气'] == u'晴':
        whetherlist.append(0)
    elif mydata.ix[i][u'天气'] == u'多云':
        whetherlist.append(1)
    elif mydata.ix[i][u'天气'] == u'有雨':
        whetherlist.append(2)
    if mydata.ix[i][u'风况'] == u'有':
        windlist.append(1)
    elif mydata.ix[i][u'风况'
### 决策树的介绍 决策树(Decision Tree)是一种有监督、非参数、简单、高效的机器学习算法,也是一种基本的分类与回归方法 [^1][^2][^3]。它以其直观易懂和易于实现的特点,成为许多初学者的首选,在数据挖掘和数据分析中是常用工具 [^1][^2]。决策树就像一个树结构,存在根节点及其子节点,子节点表示数据集的特征,可使用叶节点或终端节点进行预测,适用于分类数据集和连续数据集,在对对象进行分类或标记时非常有用 [^4]。 ### 决策树的原理 决策树通过树状结构对数据进行建模,以解决分类和回归问题 [^2]。它充分利用响应变量的信息,能够很好地克服噪声问题,其决策边界为矩形,对于真实决策也为矩形的样本数据集有着很好的预测效果 [^3]。决策树算法的构建通常采用递归贪婪算法,逐步选择最优的特征进行节点划分,以达到对数据的最佳分类或回归效果 [^4]。 ### 决策树的应用 决策树在分类和回归问题中表现出色,能提供易于解释的模型,帮助理解数据中的模式 [^1]。在实际应用中,决策树广泛用于医疗诊断、金融风险评估、市场营销等领域,通过对数据的分析和分类,为决策提供支持 [^1][^2][^3]。 ### 决策树的实现 在Python中可以使用`scikit-learn`库来实现决策树算法,以下是一个简单的示例代码: ```python from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 iris = load_iris() X = iris.data y = iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 创建决策树分类器 clf = DecisionTreeClassifier() # 训练模型 clf.fit(X_train, y_train) # 进行预测 y_pred = clf.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print(f"模型准确率: {accuracy}") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值