文章目录

  • 1. 特征选择标准
  • 2. 网页广告预测
    • 2.1 数量处理
    • 2.2 网格搜索模型参数
  • 3. 决策树优缺点

本文为 scikit-learn机器学习(第2版)学习笔记

相关知识:《统计学习方法》决策树(Decision Tree,DT)

1. 特征选择标准

  • 信息增益,得知特征X的信息而使得类Y的信息的不确定性减少的程度。
  • 信息增益比,信息增益的占比,选择大的特征
  • 基尼系数,表示经特征 A 分割后集合 D 的不确定性,选择基尼系数小的特征

2. 网页广告预测

import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.pipeline import Pipeline
from sklearn.model_selection import GridSearchCVdf = pd.read_csv('./ad.data', header=None)
df.head(10)


数据前3列为广告图片的宽高、长宽比,余下特征为文字变量出现频率的编码特征
最后一列为标签列,是否为广告

2.1 数量处理

  • 分离标签
y = df[len(df.columns)-1]
y
0          ad.
1          ad.
2          ad.
3          ad.
4          ad....
3274    nonad.
3275    nonad.
3276    nonad.
3277    nonad.
3278    nonad.
Name: 1558, Length: 3279, dtype: object
y = [1 if e == 'ad.' else 0 for e in y]
  • 特征提取
X = df.drop(df.columns[len(df.columns)-1], axis=1)
X

  • 填补无效数据
X.replace(to_replace=' *\?', value=-1,regex=True,inplace=True)
X

2.2 网格搜索模型参数

X_train, X_test, y_train, y_test = train_test_split(X, y)pipeline = Pipeline([('clf', DecisionTreeClassifier(criterion='entropy'))
])
parameters = {'clf__max_depth': (150, 155, 160),'clf__min_samples_split': (2, 3),'clf__min_samples_leaf': (1, 2, 3)
}grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1, scoring='f1')
grid_search.fit(X_train, y_train)best_parameters = grid_search.best_estimator_.get_params()
print('Best score: %0.3f' % grid_search.best_score_)
print('Best parameters set:')
for param_name in sorted(parameters.keys()):print('t%s: %r' % (param_name, best_parameters[param_name]))predictions = grid_search.predict(X_test)
print(classification_report(y_test, predictions))
Best score: 0.890
Best parameters set:
tclf__max_depth: 155
tclf__min_samples_leaf: 2
tclf__min_samples_split: 2precision    recall  f1-score   support0       0.97      0.99      0.98       7161       0.94      0.82      0.88       104accuracy                           0.97       820macro avg       0.96      0.91      0.93       820
weighted avg       0.97      0.97      0.97       820

看见广告类1的,精准率和召回率都还不错。

3. 决策树优缺点

优点:

  • 不要求对数据进行标准化
  • 可以进行多元分类而无需使用OvO,OvA等策略

缺点:

  • 更容易过拟合,需要剪枝(设置树的最大深度、节点实例数量超过阈值才建立子节点)
  • 本质上是贪心算法,不保证全局最优

[scikit-learn 机器学习] 8. 非线性分类和决策树相关推荐

  1. 【机器学习】sclearn分类算法-决策树、随机森林

    分类算法-决策树.随机森林 1.决策树 1.1 认识决策树 1.2 信息论基础-银行贷款分析 1.3 决策树的生成 1.4 决策树的划分依据之一-信息增益 1.5 sklearn决策树API 1.6 ...

  2. 【一起入门MachineLearning】中科院机器学习第*课-非线性分类:决策树

    专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 如果感兴趣的话,就和我一起入门Machine Learning吧

  3. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  4. scikit - learn 做文本分类

    文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...

  5. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  6. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  7. 机器学习-分类之决策树原理及实战

    决策树 简介 决策树是一个非参数的监督学习方法,又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶子节点代表某个类或者类的分布. 简单决策树 ...

  8. 5.9 程序示例--非线性分类-机器学习笔记-斯坦福吴恩达教授

    程序示例–非线性分类 接下来,我们采用高斯核函数来解决非线性可分问题,由于数据集较大,我们使用性能更好的完整版 SMO 算法进行训练: # coding: utf8 # svm/test_non_li ...

  9. 机器学习常见的分类算法的优缺点

    1. 前言 在机器学习中,种类最多的一类算法要属很类算法,本文对机器学习中的各种分类算法的优缺点做一个总结. 2. 贝叶斯分类法 2.1 优点 所需估计的参数少,对于缺失数据不敏感. 有着坚实的数学基 ...

最新文章

  1. Android Studio快捷键每日一练(2)
  2. 澳大利亚悉尼科技大学招收人工智能/软件工程方向全奖博士生
  3. ZendStudio中,缺少gbk gb2312编码的解决办法
  4. 安装 node_Mac下的Node.js安装教程
  5. OPEN RESETLOGS 启动,报ORA-00392   ORA-00312错误
  6. java logger 静态,java11教程--公共静态接口System.Logger
  7. 品质管控计划ppt怎样写_品质管理需要做好几件事
  8. 项目在云服务器上的绝对路径,服务器上的绝对路径怎么写
  9. linux桌面2k分辨率,解决ubuntu下外接2k显示器却没法调2k分辨率问题
  10. k8s ubuntu cni_周一见 | CNCF 人事变动、最新安全漏洞、K8s 集群需警惕中间人攻击...
  11. 叶子结点和分支节点_教你玩转二叉查找树的结点插入操作
  12. 《Adobe Photoshop CS6中文版经典教程(彩色版)》—第1课1.4节在Photoshop中还原操作...
  13. openSSL AES 加密引擎代码分析
  14. IP地址规划之子网划分
  15. 开源:通用的日志分析工具(LogViewer)
  16. 认知电子战 (1.3):认知电子战概述
  17. SharePoint is Dying
  18. 你的另一半眼泪流给谁
  19. 台式计算机识别不了u盘,电脑为什么识别不了u盘 电脑识别不了u盘该如何解决...
  20. 中国为什么出不了乔布斯?

热门文章

  1. Linux samba的配置和使用
  2. Mysql面试热身题集总结
  3. 机器学习之凸优化原理推导及相关知识总结
  4. python day15
  5. 程序员修炼之道--从小工到专家(一)
  6. 带日期的bean转为json(bean-JSON)
  7. 15.使用using和try/finally来做资源清理
  8. 在C#代码中执行BCS外部内容类型方法
  9. Python核心教程(第二版)读书笔记(三)
  10. g++和gcc的区别