[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)# 特…

数据库中的null和c#中的null

再向数据库中插入数据时,如果插入c#中的null会报错,需要转换成SQl中的DBNull.Value public static object ToDbNull(object value) { if (value null || value.ToString() DateTime.MinValue.ToString()) { …

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

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

mysql_根据身份证号识别性别、年龄、所在省份

1.性别&#xff1a; IF(mod(SUBSTR(c.reciver_idcard_num,17,1),2),man,woman) 性别, 2. 年龄&#xff1a; CASE WHEN c.reciver_idcard_num <> THEN (YEAR(CURDATE()) - SUBSTRING(c.reciver_idcard_num,7,4)) ELSE NULL END AS 年龄, 3. 所属省份&#xff1a; CAS…

LeetCode 286. 墙与门(BFS)

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

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

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

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

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

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

文章目录1. 题目2. 解题1. 题目 给定一个整数数据流和一个窗口大小&#xff0c;根据该滑动窗口的大小&#xff0c;计算其所有整数的移动平均值。 示例: 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) …

SQL 语句还原SQL Server数据库

/* 断开所有用户打开的连接 */ use master--一定要有这个 goif exists (select * from dbo.sysobjects where id object_id(N[dbo].[p_killspid]) and OBJECTPROPERTY(id, NIsProcedure) 1) drop procedure [dbo].[p_killspid] GOcreate proc p_killspid--创建存储过程 dbnam…

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

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

PowerBI 报表服务器刷新失败自动重刷并邮件通知

前言&#xff1a; 大家好&#xff0c;我是小小大世界&#xff0c;初来乍到&#xff0c;作为一名BI工作者&#xff0c;一直想着通过某种方式记录自己成长的点点滴滴&#xff0c;今天静下心来&#xff0c;开始写一些自己工作中的经验。 正文&#xff1a; 前几天看了几篇文章&a…

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

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

RDLC报表其余空白页问题

1.预览时正常&#xff0c;打印或转PDF后最后多出一页空白页的问题解决办法&#xff1a; 只要把报表主体的高度和所要打印的列表或表单高度一样&#xff08;使两者的底部重合即可&#xff09;2.预览时正常&#xff0c;打印时每页后面多出一页空白页解决办法&#xff1a;主要是报…

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

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

MYSQL中有时候不得不使用replace()去掉特殊字符,写在这里备用一下

LOWER&#xff08;&#xff09;的作用是把所有的大小写统统变成小写&#xff1b; LOWER(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(repla…

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

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