四、分类算法 - 决策树

目录

1、认识决策树

2、决策树分类原理详解

3、信息论基础

[3.1 信息](#3.1 信息)

[3.2 信息的衡量 - 信息量 - 信息熵](#3.2 信息的衡量 - 信息量 - 信息熵)

[3.3 决策树划分的依据 - 信息增益](#3.3 决策树划分的依据 - 信息增益)

[3.4 案例](#3.4 案例)

4、决策树API

5、案例:用决策树对鸢尾花进行分类

6、决策树可视化

7、总结

8、案例:泰坦尼克号乘客生存预测

[8.1 流程分析](#8.1 流程分析)


  1. sklearn转换器和估算器
  2. KNN算法
  3. 模型选择和调优
  4. 朴素贝叶斯算法
  5. 决策树
  6. 随机森林

1、认识决策树

如何高效的进行决策?

特征的先后顺序

2、决策树分类原理详解

已知 四个特征值 预测 是否贷款给某个人

  • 先看房子,再工作 -> 是否贷款 只看了两个特征
  • 年龄,信贷情况,工作 看了三个特征

3、信息论基础

3.1 信息

香农:消除随机不定性的东西

  • 小明 年龄"我今年18岁"- 信息
  • 小华"小明明年19岁"-不是信息

3.2 信息的衡量 - 信息量 - 信息熵

3.3 决策树划分的依据 - 信息增益

3.4 案例

4、决策树API

5、案例:用决策树对鸢尾花进行分类

python 复制代码
def decision_iris():
    # 用决策树对鸢尾花进行分类
    # 1、获取数据集
    iris = load_iris()
    # 2、划分数据集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=22)
    # 3、决策树预估器
    estimator = DecisionTreeClassifier(criterion="entropy")
    estimator.fit(x_train,y_train)
    # 4、模型评估
    # 方法1 :直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)
    # 方法2:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)
    return None

if __name__ == "__main__":   
    # 代码4:用决策树对鸢尾花进行分类
    decision_iris()

6、决策树可视化

  1. 导入 from sklearn.tree import DecisionTreeClassifier,export_graphviz
  2. 可视化决策树 export_graphviz(estimator,out_file="iris_tree.dot")
  3. 生存.dot文件,打开复制到网址http://webgraphviz.com/
python 复制代码
from sklearn.datasets import load_iris, fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.naive_bayes import MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeClassifier,export_graphviz


def decision_iris():
    # 用决策树对鸢尾花进行分类
    # 1、获取数据集
    iris = load_iris()
    # 2、划分数据集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=22)
    # 3、决策树预估器
    estimator = DecisionTreeClassifier(criterion="entropy")
    estimator.fit(x_train,y_train)
    # 4、模型评估
    # 方法1 :直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n", y_predict)
    print("直接比对真实值和预测值:\n", y_test == y_predict)
    # 方法2:计算准确率
    score = estimator.score(x_test, y_test)
    print("准确率为:\n", score)
    # 可视化决策树
    export_graphviz(estimator,out_file="iris_tree.dot",feature_names=iris.feature_names)
    return None

if __name__ == "__main__":    
    # 代码4:用决策树对鸢尾花进行分类
    decision_iris()

7、总结

8、案例:泰坦尼克号乘客生存预测

8.1 流程分析

  • 获取数据
  • 数据处理
  1. 缺失值处理
  2. 特征值 -> 字典类型
  • 准备好特征值、目标值
  • 划分数据集
  • 特征工程:字典特征抽取
  • 决策树预估器流程
  • 模型评估
相关推荐
计算机源码社21 小时前
【大数据项目实战】基于大数据的影视内容生态综合质量分析与可视化-基于数据挖掘的影视内容类型共现与口碑聚类分析系统
大数据·人工智能·python·数据挖掘·数据分析·毕业设计·课程设计
hqyjzsb1 天前
Python 技术人转型 AI:CAIE Level I、Level II 对比怎么选
开发语言·人工智能·python·金融·数据挖掘·数据分析·aigc
Ivanqhz1 天前
图是“拓扑 + 类型 + 形状“的世界
算法·决策树·机器学习·php·集成学习
sbjdhjd1 天前
在 8 字符、字母数字过滤与 PHP 版本差异下复盘临时文件命令执行链 | (8字符绕过)
android·java·开发语言·安全·web安全·数据挖掘·php
泛联新安1 天前
FPGA仿真加速:AccEmu正式亮相,一周的回归,一天跑完
机器学习·fpga开发·数据挖掘·回归·自动化·嵌入式软件·代码漏洞扫描
统计学小王子1 天前
数学建模国赛倒计时 1 天 ——《机器学习精讲(决策树R语言实战篇)》
决策树·机器学习·数学建模
天行健,君子而铎1 天前
数据分类分级的范式转换:从规则匹配到模型持续优化规模化前瞻算法
大数据·网络·数据库·安全·分类
TKcloudmaster_H1 天前
告别低效运营:跨境数据分析 + 多账号矩阵增效方案
大数据·矩阵·数据挖掘·数据分析·新媒体运营·产品运营·流量运营
hqyjzsb2 天前
零 AI 项目经验,学 Python 转型 AI 的正确顺序是什么?
开发语言·人工智能·python·算法·职场和发展·数据挖掘·数据分析
SimpleLearingAI2 天前
DFL:分布焦点损失——让框回归“学分布“,而不只是“猜数字“
人工智能·数据挖掘·回归