机器学习算法:决策树|python与r语言代码实现
决策树
这是我最喜欢的算法之一,我经常使用它。它是一种主要用于分类问题的监督学习算法。令人惊讶的是,它适用于分类和连续因变量。在该算法中,我们将人口分成两个或更多的齐次集。这是基于最重要的属性变量/独立变量,以尽可能不同的组。
在上面的图像中,您可以看到,根据多个属性,人口被划分为四个不同的组,以标识“他们是否想玩”。为了将种群分成不同的异质群体,它使用如Gini、信息增益、卡方、熵等各种技术。
了解决策树是如何运作的最好方法是玩Jazzball——一个经典的微软游戏(下图)。基本上,你有一个房间有移动的墙壁,你需要创建墙壁,以便最大面积得到清除的球。
所以,每次你用墙拆开房间时,你试图在同一个房间里创造2个不同的群体。决策树以非常相似的方式工作,将种群划分为不同的组。
延展阅读:决策树算法的简化版本
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)
THE END