Code前端首页关于Code前端联系我们

机器学习算法:决策树 | Python 和 R 语言代码实现

terry 2年前 (2023-09-27) 阅读数 65 #数据结构与算法

决策树

这是我最喜欢的算法之一,我经常使用它。它是一种主要用于分类问题的监督学习算法。令人惊讶的是,它适用于分类因变量和连续因变量。在此算法中,我们将总体划分为两个或多个同质集合。这是基于尽可能不同的组中最重要的属性变量/自变量。

机器学习算法:决策树|python与r语言代码实现

在上图中,您可以看到,根据几个属性来识别“是否想玩”,将人群分为四个不同的组。为了将人口划分为不同的异构群体,它使用了各种技术,例如基尼系数、信息增益、卡方、熵等。

了解决策树工作原理的最佳方法是玩 Jazzball - 一款经典的 Microsoft 游戏(如下图所示)。基本上,你有一个带有可移动墙壁的房间,你必须建造墙壁,以便最大限度地清除球。

机器学习算法:决策树|python与r语言代码实现

所以,每次你共用一个有墙的房间时,你都会尝试在同一个房间里组成两个不同的组。决策树的工作方式非常相似,将群体分为不同的组。

延伸阅读:简化版决策树算法

Python代码

#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import tree
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create tree object 
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini  
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)

R语言代码

library(rpart)
x <- cbind(x_train,y_train)
# grow tree 
fit <- rpart(y_train ~ ., data = x,method="class")
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门