自学内容网 自学内容网

决策树算法

决策树算法对数据进行分类的一种算法,根据数据的属性进行分类,例如对鸢尾花进行分类,可以根据花瓣大小进行分类。决策树可以使用信息熵和基尼指数进行数据分类。

  • 信息熵:信息熵越低,样本不确定性越小,对应的纯度就越高。
    在这里插入图片描述
  • 基尼指数:基尼表示集合的不确定性,基尼指数越小代表不确定性越小。
    在这里插入图片描述
    决策树通过上述公式,递归的找到最优解,并对数据集进行切分创建树节点。

基尼决策树

使用Sklearn 实现基尼决策树

# 准备数据
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, mean_squared_error
from utils import feature_split, calculate_gini

from sklearn import datasets
data = datasets.load_iris()
X, y = data.data, data.target

y = y.reshape(-1,1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# 分类
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)

print(accuracy_score(y_test, y_pred))

在这里插入图片描述

交叉熵决策树

from sklearn.datasets import load_iris
from sklearn import tree

iris = load_iris()
clf = tree.DecisionTreeClassifier(criterion='entropy', splitter='best')
clf = clf.fit(iris.data, iris.target)
## 展示树结构
dot_data = tree.export_graphviz(clf, out_file=None,
                               feature_names=iris.feature_names,
                               class_names=iris.target_names,
                               filled=True, 
                               rounded=True,
                               special_characters=True)
graph = graphviz.Source(dot_data)
graph

在这里插入图片描述

总结

决策树根据交叉熵或者基尼指数对数据进行分类并最终生成决策树,可以应用一些相对确定的分类场景。


原文地址:https://blog.csdn.net/hawk2014bj/article/details/143510872

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!