python 中 机器学习算法 --决策树

admin 解读 2024-02-06 89 0

  在这里插入图片描述

  现在计算这些的实际值

主队和客队最后一场比赛赢了吗?

  决策树是一种有监督的机器学习算法,它看起来就像是由一系列节点组成的流程图,其中位

  于上层节点的值决定下一步走向哪个节点。

  <img src = ‘https://blog.csdn.net/jcjic/article/details/image/决策树1.png’,width=100,height=100>

  跟大多数分类算法一样,决策树也分为两大步骤。

   首先是训练阶段,用训练数据构造一棵树大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。上一章的近邻算法没有训练阶段,但是决策

  树需要。从这个意义上说,近邻算法是一种惰性算法,在用它进行分类时,它才开始干

  活。相反,决策树跟大多数机器学习方法类似,是一种积极学习的算法,在训练阶段完

  成模型的创建。

   其次是预测阶段,用训练好的决策树预测新数据的类别。以上图为例,[“is raining”,

  “very windy”]的预测结果为“Bad”(坏天气)。

  创建决策树的算法有多种,大都通过迭代生成一棵树大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。它们从根节点开始,选取最佳特征,

  用于第一个决策,到达下一个节点,选择下一个最佳特征,以此类推。当发现无法从增加树的层

  级中获得更多信息时,算法启动退出机制。

  scikit-learn库实现了分类回归树(Classification and Regression Trees,CART)算法并将

  其作为生成决策树的默认算法,它支持连续型特征和类别型特征。

  我们试试看哪个队在阶梯上更好。使用上一年的梯子

  5 rows × 24 columns

  #这里好像所有的特征都转变为只有几类,例如True和false ,不然那个信息增益要算很多

  #谁赢了最后一场比赛?我们忽略了家/访客这一点

  最后我们来看一下,决策树在训练数据量很大的情况下,能否得到有效的分类模型。我们将

  会为决策树添加球队,以检测它是否能整合新增的信息。

  虽然决策树能够处理特征值为类别型的数据,但scikit-learn库所实现的决策树算法要求

  先对这类特征进行处理。用LabelEncoder转换器就能把字符串类型的球队名转化为整型。代码

  如下

  决策树可以用这些特征值进行训练,但DecisionTreeClassifier仍把它们当作连续型特

  征。例如,编号从0到16的17支球队,算法会认为球队1和2相似,而球队4和10不同。但其实这没

  意义,对于两支球队而言,它们要么是同一支球队,要么不同,没有中间状态!

  为了消除这种和实际情况不一致的现象,我们可以使用OneHotEncoder转换器把这些整数转

  换为二进制数字。每个特征用一个二进制数字①来表示。例如,LabelEncoder为芝加哥公牛队分配

  的数值是7,那么OneHotEncoder为它分配的二进制数字的第七位就是1,其余队伍的第七位就是0大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。

  每个可能的特征值都这样处理,而数据集会变得很大。代码如下:

  正确率为60%,比基准值要高,但是没有之前的效果好。原因可能在于特征数增加后,决策

  树处理不当。鉴于此,我们尝试修改算法,看看会不会起作用。数据挖掘有时就是不断尝试新算

  法、使用新特征这样一个过程。

  我们也可以尝试CridSearchCV类的其他参数

  <<机器学习>> --周志华

  <<数据挖掘概念与技术>> 中文版的

python 中 机器学习算法  --决策树

python 中 机器学习算法  --决策树

评论