欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习笔记 | 决策树 ID3 信息增益

程序员文章站 2022-03-31 21:38:12
...

决策树

01 从女生相亲到决策树

学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益

02 明天适合打球吗?

学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益

  • 怎么选择第一个属性,怎么选择第二个属性?节点的选择?

03 决策树拆分属性选择?

学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益

04 代码实践 | 泰坦尼克号生还者预测

学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益
学习笔记 | 决策树 ID3 信息增益

  • 数据预处理
  • 模型构建与预测
import pandas as pd
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.metrics import classification_report
#import graphviz

data = pd.read_csv('titanic_data.csv')           #读取数据,891行5列
data.drop('PassengerId', axis=1, inplace=True)   # 删除PassengerId 列

data.loc[data['Sex'] == 'male', 'Sex'] = 1       # 用数值1来代替male,用0来代替female
data.loc[data['Sex'] == 'female', 'Sex'] = 0
data.fillna(data['Age'].mean(), inplace=True)    # 用均值来填充缺失值

Dtc = DecisionTreeClassifier(max_depth=5, random_state=8)    # 构建决策树模型
Dtc.fit(data.iloc[:, 1:], data['Survived'])       # 模型训练
pre = Dtc.predict(data.iloc[:, 1:])               # 模型预测
pre == data['Survived']                           # 比较模型预测值与样本实际值是否一致
ans = classification_report(data['Survived'], pre)      # 分类报告
print(ans)

# dot_data = export_graphviz(Dtc, feature_names=['Pclass', 'Sex', 'Age'], class_names='Survived')
# graph = graphviz.Source(dot_data)       # 决策树可视化
# graph

学习笔记 | 决策树 ID3 信息增益

  • 可视化时,需要添加环境变量。
    学习笔记 | 决策树 ID3 信息增益
    学习笔记 | 决策树 ID3 信息增益