0普通决策树

0.1生成数据

sklearn提供了随机数据生成的功能:
make_regression 生成回归模型的数据
make_multilabel_classification生成分类模型数据
用make_blobs生成聚类模型数据
用make_gaussian_quantiles生成分组多维正态分布的数据

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_gaussian_quantiles
from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_gaussian_quantiles
# n_samples(生成样本数), n_features(样本特征数)--x1数组列数,noise(样本随机噪音)
x1, y1 = make_gaussian_quantiles(n_samples=500, n_features=2, n_classes=2)
# 二维正态分布,生成数据按照分位数分为两类,500个样本点,2个特征样本,y=0,1
x2, y2 = make_gaussian_quantiles(mean=(3, 3), n_samples=500, n_features=2, n_classes=2)
# 二维正态分布,生成数据按照分位数分为两类,500个样本点,2个特征样本均值(正态分布均值(3,3)),y=0,1# 将两组数据合成为一组x_data = np.concatenate((x1, x2), axis=0)  # 进行数组列拼接
y_data = np.concatenate((y1, 1 - y2))  # y2里1-1=0,1-0=1,为了提高分类难度

0.2建立决策树模型

model = DecisionTreeClassifier(max_depth=3)
model.fit(x_data, y_data)

0.3生成等高线图

# 获取值的范围
x1_min, x1_max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1
x2_min, x2_max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1x1_range = np.arange(x1_min, x1_max, 0.02)
x2_range = np.arange(x2_min, x2_max, 0.02)
xx, yy = np.meshgrid(x1_range, x2_range)predict = model.predict(np.c_[xx.ravel(), yy.ravel()])
z = predict.reshape(xx.shape)
cs = plt.contourf(xx, yy, z)
plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)
plt.show()

结果

0.4精度

# 模型的准确度
print(model.score(x_data, y_data))
0.771

可见单一决策树模型精度有待提高

1 Adaboost

# 加入adaboost
model2 = AdaBoostClassifier(model, n_estimators=10)  # 将原先模型代入adaboost,迭代次数为10

1.1训练模型

model2.fit(x_data, y_data)

1.2生成等高线图

x1min, x1max = x_data[:, 0].min() - 1, x_data[:, 0].max() + 1
x2min, x2max = x_data[:, 1].min() - 1, x_data[:, 1].max() + 1
x1range = np.arange(x1min, x1max, 0.02)
x2range = np.arange(x2min, x2max, 0.02)
xx, yy = np.meshgrid(x1range, x2range)
z1 = model2.predict(np.c_[xx.ravel(), yy.ravel()])
z1 = z1.reshape(xx.shape)a = plt.contourf(xx, yy, z1)
plt.scatter(x_data[:, 0], x_data[:, 1], c=y_data)
plt.show()

1.3精度

print(model2.score(x_data, y_data))
0.983

1.4结果


可见精度有所提高。

利用sklearn实现adaboost,以单一分类树为例相关推荐

  1. 【sklearn学习】决策树、分类树、剪枝策略

    模块sklarn.tree sklearn中决策树的类都在"tree"这个模块之下,这个模块总共包含五个类: tree.DecisionTreeClassifier 分类树 tre ...

  2. 【菜菜的sklearn课堂笔记】决策树-分类树

    视频作者:菜菜TsaiTsai 链接:[技术干货]菜菜的机器学习sklearn[全85集]Python进阶_哔哩哔哩_bilibili 关键概念:节点 根节点:没有进边,有出边.包含最初的,针对特征的 ...

  3. KDD CUP 99利用决策分类树进行网络异常检测

    import pandas as pd import numpy as np import matplotlib.pyplot as plt 数据导入与数据探索 数据导入 df=pd.read_csv ...

  4. Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解

    Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...

  5. python决策树分类 导入数据集_python+sklearn实现决策树(分类树)

    整理今天的代码-- 采用的是150条鸢尾花的数据集fishiris.csv # 读入数据,把Name列取出来作为标签(groundtruth) import pandas as pd data = p ...

  6. sklearn 决策树(分类树、回归树)的 重要参数、属性、方法理解

    文章目录 决策分类树 引入 重要参数 1,criterion 2,splitter 3,max_depth 4,min_samples_leaf 5,min_samples_split 6,max_f ...

  7. sklearn实现决策树(分类树)

    阿喽哈~小伙伴们,今天我们来唠一唠决策树 ♣ ♣ ♣ 决策树应该是很多小伙伴入门机器学习的时候最先接触到的分类算法之一,决策树分为分类树和回归树,今天我们只说分类树~ 简单回顾一下分类树的算法原理:分 ...

  8. Sklearn分类树在合成数集上的表现

    版权声明:本文为博主原创文章,未经博主允许不得转载. 文章目录 1. 导入需要的库 2. 生成三种数据集 3. 画出三种数据集和三棵决策树的分类效应图像 我的开发环境是 Jupyter lab,所用的 ...

  9. 【skLearn 分类、回归算法】DecisionTreeClassifier 分类树

    文章目录 DecisionTreeClassifier 分类树 ① 重要参数:criterion 不纯度的计算 ♦ 基本概念 ♦ 选择方式 ♦ 基本计算流程 ♦ 案例 ② 重要参数:random_st ...

  10. (NO.1)利用sklearn进行鸢尾花分类

    文章目录 利用sklearn进行鸢尾花分类 preheat 联库 版本查询 practice summary 利用sklearn进行鸢尾花分类 preheat 联库 sklearn是基于Numpy和S ...

最新文章

  1. 最新综述 | 基于深度学习的立体视觉深度估计
  2. QIIME 2用户文档. 4人体各部位微生物组分析实战Moving Pictures(2018.11)
  3. OSPF-lsa-types
  4. Windows 7 搭建 Mobile 6 真机调试开发环境
  5. 银行业双活数据中心-F5在双活数据中心中的应用
  6. POJ3522Slim Span(最大边与最小边差值最小的生成树)
  7. Leetcode 53 最大子串和
  8. CodeForces - 1334C Circle of Monsters(贪心)
  9. Html中value和name属性的作用
  10. Oracle 数据库、Microsoft SQL Server、MySQL 数据库三种常见数据库的区别深度剖析
  11. 章二测试 1613999388
  12. startActivity流程(上)
  13. C++笔记整理(参考整理自各大博客)
  14. 程序员面试金典——番外篇之下一个较大元素II
  15. 华为hs8145v5如何改桥接_华为 光猫 HS8546V5 改 桥接模式 简易教程
  16. 生成微信公众号二维码(动态,彩色)(python)
  17. 计算机网络里的DHCP是什么,路由器设置中的dhcp是什么意思?
  18. opencv无法打开摄像头
  19. 中国广电剑未出鞘,但中国联通和中国电信已吓得瑟瑟发抖
  20. 开发者成长激励计划-基于TencentOS Tiny FDM 3D打印机云控制系统方案

热门文章

  1. python对于一元线性回归模型_Python|机器学习-一元线性回归
  2. FISCO BCOS(一)———搭建单群组FISCO BCOS联盟链
  3. delphi 得到安装列表_印象笔记第2课 安装 基本操作 收集素材(视频+文字+图片)...
  4. 自然语言处理_人工智能自然语言处理技术拉动产业升级引擎
  5. 嵌入式论文3000字_毕业论文写完之后,你还要做的几件事
  6. C语言获取linux接口状态,[linux] C语言Linux系统编程-TCP通信的11种状态
  7. latex textbf没有用_把知乎改造成LaTex创作平台
  8. c语言实验报告1华科,华科操作系统实验报告
  9. 算法:时间、空间复杂度
  10. Python:身份运算符is和==的区别