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

文章目录

    • 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等策略

缺点:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧新泰时空大数据与云平台_智慧警务大数据云平台开发情报研判系统解决方案...

智慧公安作为公安信息化开展到高级阶段的一种警务形态,“智慧公安”主要采用物联网、云计算、无线通讯、智能动态感知分析等新一代信息技术,将公安工作IT根底设备与物理设备、人际环境等高度交融,以提供智能化公安决策与效劳。智慧警务大数据云平台开发情报研判系统…

RGB颜色查询对照表#FFFFFF

大致是下图这样的,有需要的可以点击下面的连接复制使用: https://www.114la.com/other/rgb.htm

ikbc机械键盘打字出现重复_超小无线机械键盘,绝佳移动打字体验

NuType筹资信息产品名称NuType上线平台Kickstarter发起团队NUPHY发起地区中国香港目标金额80,000HKD筹集金额1,301,212HKD完全进度1,627%支持人数1,612最低价格697HKD上线时间2019/11/13-2019/12/28创次方/制表时间:2019年12月28日文/大智笔电键盘的打字体验远不及桌…

MySQL - 定时任务(每天凌晨1点、每小时、每分钟、某一时间点)

常用的一定要写在前面 # 从2019-10-11开始,每天的00:30:00执行定时任务 ON SCHEDULE EVERY 1 DAY STARTS 2019-10-11 00:30:00 # 每天的凌晨1点执行定时任务 ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)# 特…

极光无限渗透测试面经_认识工业以太网及线缆测试

工业以太网由于其固有的可靠性、高性能和互操作性,已经渗透到工厂车间,成为自动化和控制系统的首选通信协议。近年,工业以太网的市场份额已经超过了传统的现场总线协议,总线协议通常需要多个独立和专有的布线设施。为了满足工业环…

LeetCode 286. 墙与门(BFS)

文章目录1. 题目2. 解题2.1 BFS 超时解2.2 从门开始逆向BFS1. 题目 你被给定一个 m n 的二维网格,网格中有以下三种可能的初始化值: -1 表示墙或是障碍物0 表示一扇门INF 无限表示一个空的房间。然后,我们用 231 - 1 2147483647 代表 INF…

法斗几个月长鼻筋_路医生说丨脚底板早起一下地特别疼?得了足底筋膜炎,该怎么办?...

老李很奇怪,他压根就没有受过伤,怎么突然就脚底板疼了起来。就是这两天走的稍多了点,也不知道为什么脚底板就开始疼了,走路踩地就疼,尤其是早晨起床脚一踩地,那酸爽简直了,刚下地的前几步走起来…

Power BI连接MySQL 提示错误......未能加载文件或程序集......或它的某一个依赖项

Power BI连接MySQL数据库时报错: 提示错误未能加载文件或程序集“MySql.Data, Version5.1.4.0, Cultureneutral,........”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 解决办法:下载MySQL.Data.dll(5.1.4)程序集! 解压…

LeetCode 346. 数据流中的移动平均值(队列)

文章目录1. 题目2. 解题1. 题目 给定一个整数数据流和一个窗口大小,根据该滑动窗口的大小,计算其所有整数的移动平均值。 示例: MovingAverage m new MovingAverage(3); m.next(1) 1 m.next(10) (1 10) / 2 m.next(3) (1 10 3) / 3 m.next(5) …

系统错误_Win10系统提示0x80004005错误的解决方法

win7系统虽然身手大家喜爱,但是最新的PC和笔记本电脑想要装win7很难了,所以现在越来越多人开始使用Win10系统,但是,最近有用户在使用win10系统的时候,发现因为电脑没有正确注册某些动态链接库文件,或者计算…

LeetCode 270. 最接近的二叉搜索树值

文章目录1. 题目2. 解题2.1 暴力查找2.2 二分查找1. 题目 给定一个不为空的二叉搜索树和一个目标值 target,请在该二叉搜索树中找到最接近目标值 target 的数值。 注意: 给定的目标值 target 是一个浮点数 题目保证在该二叉搜索树中只会存在一个最接近…

getset原子性 redis_一文看透 Redis 分布式锁进化史(解读 + 缺陷分析)

各个版本的Redis分布式锁V1.0V1.1 基于[GETSET]V2.0 基于[SETNX]V3.0V3.1分布式Redis锁:Redlock总结《Netty 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与…

LeetCode 702. 搜索长度未知的有序数组(二分查找)

文章目录1. 题目2. 解题1. 题目 给定一个升序整数数组,写一个函数搜索 nums 中数字 target。 如果 target 存在,返回它的下标,否则返回 -1。注意,这个数组的大小是未知的。 你只可以通过 ArrayReader 接口访问这个数组&#xff0…

11个非常漂亮动物为主题的高品质图标集

今天发布一些令人振奋的动物为主题的图标集。这里收集了世界各地的设计师和艺术家的图标集杰作,如果你在做卡通设计网站,这个是你合适的选择 Birdie Adium Dock Icons Animals Tweeties: A Free Twitter Icon Set Birdies Zoom-eyed Creatures FREE Plus…

ae中心点重置工具_7步学习AE 入门篇 第2步 初学乍练

【1】做动画需要什么?如果动画的制作是因果关系,那么需要的成因具备了 结果自然就出现了。在AE中做动画一共需要3个工具,合成、关键帧和图层。在体验动画制作之前 我们对一些名词术语先来解释一下。合成:AE中用来承载视频的容器&a…

LeetCode 359. 日志速率限制器(哈希map)

文章目录1. 题目2. 解题1. 题目 请你设计一个日志系统,可以流式接收日志以及它的时间戳。 该日志会被打印出来,需要满足一个条件:当且仅当日志内容 在过去的 10 秒钟内没有被打印过。 给你一条日志的内容和它的时间戳(粒度为秒…

linux 内存溢出排查_【开发者成长】JAVA 线上故障排查完整套路!

云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行…

C#托管代码与C++非托管代码互相调用一(C#调用C++代码.net 代码安全)

在最近的项目中,牵涉到项目源代码保密问题,由于代码是C#写的,容易被反编译,因此决定抽取核心算法部分使用C编写,C到目前为止好像还不能被很好的反编译,当然如果你是反汇编高手的话,也许还是有可…

LeetCode 249. 移位字符串分组(哈希)

文章目录1. 题目2. 解题1. 题目 给定一个字符串,对该字符串可以进行 “移位” 的操作,也就是将字符串中每个字母都变为其在字母表中后续的字母,比如:“abc” -> “bcd”。这样,我们可以持续进行 “移位” 操作&…

如何扩大缓存区_艾莱依首个自动化仓落地,库宝解决线边缓存难题

中国拥有着世界上最大的服装生产和消费市场,随着新零售的发展和消费习惯的改变,消费个性化浪潮、提倡消费体验等为服装领域带来诸多挑战,如何打造更为柔性的、高效的服装供应链成为企业提升竞争力的一大核心。针对工厂自动化环节,…