- 浏览: 498971 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
决策树
树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。
采用自顶向下的递归的方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处熵值为0(叶节点中的实例都属于一类)
根节点(最重要的特征);父节点与子节点是一对,先有父节点,才会有子节点;叶节点(最终标签)。
原理:
就是从样本中得到一个用于进行判断的树(判断特征的顺序),方法就是从样要中计算每个特征对结果的贡献大小来决定顺序.
随机森林(RandomForestClassifier)
同一批数据,用同样的算法只能产生一棵树,这时Bagging策略可以帮助我们产生不同的数据集。Bagging策略来源于bootstrap aggregation:从样本集(假设样本集N个数据点)中重采样选出Nb个样本(有放回的采样,样本数据点个数仍然不变为N),在所有样本上,对这n个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC),重复以上两步m次,获得m个分类器,最后根据这m个分类器的投票结果,决定数据属于哪一类。
随机森林在bagging的基础上更进一步:
1. 样本的随机:从样本集中用Bootstrap随机选取n个样本
2. 特征的随机:从所有属性中随机选取K个属性,选择最佳分割属性作为节点建立CART决策树(泛化的理解,这里面也可以是其他类型的分类器,比如SVM、Logistics)
3. 重复以上两步m次,即建立了m棵CART决策树
4. 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)
关于调参:1.如何选取K,可以考虑有N个属性,取K=根号N
2.最大深度(不超过8层)
3.棵数
4.最小分裂样本树
5.类别比例
树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值。
采用自顶向下的递归的方法,基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处熵值为0(叶节点中的实例都属于一类)
根节点(最重要的特征);父节点与子节点是一对,先有父节点,才会有子节点;叶节点(最终标签)。
原理:
就是从样本中得到一个用于进行判断的树(判断特征的顺序),方法就是从样要中计算每个特征对结果的贡献大小来决定顺序.
随机森林(RandomForestClassifier)
同一批数据,用同样的算法只能产生一棵树,这时Bagging策略可以帮助我们产生不同的数据集。Bagging策略来源于bootstrap aggregation:从样本集(假设样本集N个数据点)中重采样选出Nb个样本(有放回的采样,样本数据点个数仍然不变为N),在所有样本上,对这n个样本建立分类器(ID3\C4.5\CART\SVM\LOGISTIC),重复以上两步m次,获得m个分类器,最后根据这m个分类器的投票结果,决定数据属于哪一类。
随机森林在bagging的基础上更进一步:
1. 样本的随机:从样本集中用Bootstrap随机选取n个样本
2. 特征的随机:从所有属性中随机选取K个属性,选择最佳分割属性作为节点建立CART决策树(泛化的理解,这里面也可以是其他类型的分类器,比如SVM、Logistics)
3. 重复以上两步m次,即建立了m棵CART决策树
4. 这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类(投票机制有一票否决制、少数服从多数、加权多数)
关于调参:1.如何选取K,可以考虑有N个属性,取K=根号N
2.最大深度(不超过8层)
3.棵数
4.最小分裂样本树
5.类别比例
# coding=utf-8 import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn import datasets from sklearn import tree import numpy as np from sklearn.externals.six import StringIO import pydot def main(): iris = datasets.load_iris() # 典型分类数据模型 # 这里我们数据统一用pandas处理 data = pd.DataFrame(iris.data, columns=iris.feature_names) data['class'] = iris.target # 这里只取两类 data = data[data['class'] != 2] # 为了可视化方便,这里取两个属性为例 X = data[['sepal length (cm)', 'sepal width (cm)']] Y = data[['class']] # 划分数据集 X_train, X_test, Y_train, Y_test = train_test_split(X, Y) # 创建决策树模型对象,默认为CART dt = tree.DecisionTreeClassifier() dt.fit(X_train, Y_train) # 返回树中的决策路径 dp = dt.decision_path(X_test) print('X_test') print(X_test) print('决策路径') print(dp) print("特征重要性(数组)") # 特征重要性(数组) print(dt.feature_importances_)#特征重要性(数组) print("类别标签(数组或列表)") #类别标签(数组或列表) print(dt.classes_) # 类别标签(数组或列表) print("max_features的inferred(推测?)值(int)") # max_features的inferred(推测?)值(int) print(dt.max_features_) # max_features的inferred(推测?)值(int) print("类别数目(int)") # 类别数目(int) print(dt.n_classes_) # 类别数目(int) print("特征数目(int)") #特征数目(int) print(dt.n_features_) # 特征数目(int) print("输出数目(int)") # 输出数目(int) print(dt.n_outputs_) # 输出数目(int) print("树对象") # 树对象 print(dt.tree_) # 树对象 # 显示训练结果 print(dt.score(X_test, Y_test)) # score是指分类的正确率 # 作图 h = 0.02 x_min, x_max = X.iloc[:, 0].min() - 1, X.iloc[:, 0].max() + 1 y_min, y_max = X.iloc[:, 1].min() - 1, X.iloc[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z = dt.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.contourf(xx, yy, Z, cmap=plt.cm.Paired) # 做出原来的散点图 class1_x = X.loc[Y['class'] == 0, 'sepal length (cm)'] class1_y = X.loc[Y['class'] == 0, 'sepal width (cm)'] l1 = plt.scatter(class1_x, class1_y, color='b', label=iris.target_names[0]) class1_x = X.loc[Y['class'] == 1, 'sepal length (cm)'] class1_y = X.loc[Y['class'] == 1, 'sepal width (cm)'] l2 = plt.scatter(class1_x, class1_y, color='r', label=iris.target_names[1]) plt.legend(handles=[l1, l2], loc='best') plt.grid(True) plt.show() # 导出决策树的图片,需要配置graphviz,并且添加到环境变量 dot_data = StringIO() tree.export_graphviz(dt, out_file=dot_data, feature_names=X.columns, class_names=['healthy', 'infected'], filled=True, rounded=True, special_characters=True) graph = pydot.graph_from_dot_data(dot_data.getvalue())[0] # graph.write_png("Iris.png") if __name__ == '__main__': main()
# coding=utf-8 import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn import datasets from sklearn import tree import numpy as np from sklearn.externals.six import StringIO import pydot from sklearn.externals.six import StringIO import pydot import pydotplus import os def main(): # ['有房', '有工作', '有车','年龄'] X_train = np.array([[1, 1, 1, 25], [1, 1, 0, 35], [1, 0, 1, 32], [0, 1, 1, 31], [0, 0, 1, 20], [0, 1, 0, 20], [1, 0, 0, 21], [1, 1, 0, 28], [1, 0, 1, 30], [1, 1, 0, 32]]) Y_train = np.array([1, 0, 0, 0, 1, 1, 0, 1, 1, 1]) X_test = np.array([[1, 1, 0, 33]]) Y_test = np.array([1]) # 创建决策树模型对象,默认为CART dt = tree.DecisionTreeClassifier() dt.fit(X_train, Y_train) print("特征重要性(数组)") # 特征重要性(数组) print(dt.feature_importances_) # 特征重要性(数组) # [0. 0.33333333 0. 0.66666667] print("类别标签(数组或列表)") # 类别标签(数组或列表) print(dt.classes_) # 类别标签(数组或列表) print("max_features的inferred(推测?)值(int)") # max_features的inferred(推测?)值(int) print(dt.max_features_) # max_features的inferred(推测?)值(int) # 4 print("类别数目(int)") # 类别数目(int) print(dt.n_classes_) # 类别数目(int) print("特征数目(int)") # 特征数目(int) print(dt.n_features_) # 特征数目(int) print("输出数目(int)") # 输出数目(int) print(dt.n_outputs_) # 输出数目(int) print("树对象") # 树对象 print(dt.tree_) # 树对象 predict_y = dt.predict(X_test) print("predict_y = ", predict_y) # predict_y = [1] # score是指分类的正确率 print("score = ", dt.score(X_test, Y_test)) # score = 1.0 # 返回每个样本被预测的叶子结点索引 print("apply = ", dt.apply(X_test)) # apply = [6] # 返回决策路径 print("decision_path = ", dt.decision_path(X_test)) # decision_path = (0, 0) 1 # (0, 2) 1 # (0, 6) 1 # 获取参数 print("get_params = ", dt.get_params()) # 预测输入样本的类别对数概率 print("predict_log_proba = ", dt.predict_log_proba(X_test)) # 预测输入样本的类别概率 print("predict_proba = ", dt.predict_proba(X_test)) # dot_data = StringIO() tree.export_graphviz(dt, out_file=dot_data) graph = pydot.graph_from_dot_data(dot_data.getvalue()) # graph[0].write_dot('test002.dot') graph[0].write_png('test002.png') # graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) # graph.write_pdf("test002.pdf") # graph. # graph = pydot.graph_from_dot_data(dot_data.getvalue()) # graph[0].write_pdf("test002.pdf") if __name__ == '__main__': os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/' main()
发表评论
-
SVM 支持向量机
2018-11-02 17:28 360SVM 支持向量机(support vector machin ... -
Pandas 基础
2018-10-21 15:34 532Pandas 基础 Pandas处理 ... -
霍夫变换
2018-10-20 11:08 762霍夫变换 霍夫变换是一种特征检测(feature extra ... -
图像对比的方法和原理分析
2018-10-19 16:35 8686图像对比的方法和原理分析 https://blog.csdn ... -
识别手写数字 原理分析
2018-10-18 15:38 3455识别手写数字 原理分析 要识别0-9这10个数字 首先 ... -
Viola-Jones 人脸检测算法解析
2018-10-15 16:12 3223Viola-Jones 人脸检测算法解析 在计算机视觉领域中 ... -
灰度图像--形态学处理(腐蚀,膨胀,开、闭运算)
2018-10-12 17:31 8929灰度图像--形态学处理(腐蚀,膨胀,开、闭运算) http ... -
tesseract应用
2018-10-12 14:05 529tesseract应用 from PIL impo ... -
卷积神经网络(CNN)
2018-10-11 17:33 780卷积神经网络(CNN) CNN基本模块 CNN由输入和输出 ... -
python3光学字符识别模块tesserocr与pytesseract
2018-10-11 11:02 1516python3光学字符识别模块tesserocr与pytess ... -
LBP原理介绍以及算法实现(局部二值模式)
2018-10-10 17:54 2490LBP原理介绍以及算法实 ... -
sklearn 神经网络
2018-10-10 10:49 957sklearn 神经网络 https://blog.csdn ... -
神经网络学习 之 M-P模型
2018-10-09 16:58 2450神经网络学习 之 M-P模型 这种“阈值加权和”的神经元模 ... -
图片滤波
2018-10-09 11:37 785图片滤波,就是过滤去一些图片中的小点,或增强一些点,取决于滤波 ... -
灰度直方图均衡化与直方图规定化
2018-10-09 11:30 1198灰度直方图 灰度直方 ... -
图像的灰度化
2018-10-09 11:14 885图像的灰度化 而灰度图像是R、G、B三个分量相同的一种特殊的 ... -
人脸识别原理
2018-10-08 17:03 2086人脸识别原理 在检测 ... -
LDA降维和分类
2018-10-07 21:59 4192LDA降维和分类 LDA可以降维和分类 LinearD ... -
KNN 分类算法
2018-10-07 09:30 1904KNN 分类算法 KNN(K近邻) ... -
机器学习相关的库
2018-09-30 15:03 346机器学习相关的库 PIL:Python Imaging L ...
相关推荐
基于MapReduce实现决策树算法的知识点 基于MapReduce实现决策树算法是一种使用MapReduce框架来实现决策树算法的方法。在这个方法中,主要使用Mapper和Reducer来实现决策树算法的计算。下面是基于MapReduce实现决策...
决策树是一种广泛应用于数据分析和机器学习的算法,尤其在分类问题中表现突出。在这个"决策树分类实验(乳腺癌)"中,我们看到一个利用决策树进行乳腺癌预测的实例。该实验基于wpbc(Wisconsin Breast Cancer)数据...
对于正确率相同的节点,选取优先遍历的属性作为根节点,与基于信息增益进行划分选择的方法相比,可知两种方法绘制的决策树正确率均为100%,但对率回归方法容易忽略在同一正确率下划分较佳的节点,从而使决策树层数...
决策树算法经典优秀论文(1).zip 决策树算法经典优秀论文(1).zip 决策树算法经典优秀论文(1).zip 决策树算法经典优秀论文(1).zip 决策树算法经典优秀论文(1).zip 决策树算法经典优秀论文(1).zip 决策树算法经典优秀...
决策树是一种广泛应用于机器学习领域的算法,主要用于分类和回归任务。它通过构建一系列规则和条件来模拟人类的决策过程,从而对数据进行预测。Graphviz是一款强大的图形渲染工具,能够帮助我们可视化这些决策树模型...
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画...
决策树算法是数据挖掘和机器学习领域中一个非常重要的分类方法,它通过一系列规则对数据集进行分治,直到每个分支都对应一个单一的类别为止。决策树是基于监督学习方法实现的,这意味着它需要一个事先已标记的数据集...
在本次"决策树实验内容2"中,我们将深入探讨决策树这一重要的机器学习算法,主要分为以下几个部分: **1.1 决策树处理分类任务** 在这个环节,我们将使用`sklearn.tree.DecisionTreeClassifier`来解决Dota2比赛...
第二步,决策树的剪枝:决策树的剪枝是对上一阶段生成的决策树进行检验、校正和修下的过程,主要是用新的样本数据集(称为测试数据集)中的数据校验决策树生成过程中产生的初步规则,将那些影响预衡准确性的分枝剪除...
决策树回归算法是一种基础的机器学习算法,主要用于回归分析,在分类问题中也有应用。其核心思想是将特征空间划分成若干个子空间,每个子空间都有一个对应的输出值,这种方法特别适合处理具有层次关系的问题。 首先...
决策树是一种广泛应用于数据分析、机器学习以及人工智能领域的算法模型,它通过模拟人类做决策的过程,以树状结构来表示可能的决策路径和结果。在这个"决策树资料合集"中,包含了关于决策树的源文件、实例、内容详解...
决策树是一种常用的数据挖掘工具,尤其在预测任务中表现出色,如天气预测。在这个场景中,我们使用MATLAB作为编程环境来实现决策树算法。MATLAB不仅提供了强大的数学计算功能,还内置了丰富的数据处理和机器学习库,...
### 广工人工智能决策树知识点解析 #### 一、决策树概述 决策树是一种常用的机器学习方法,尤其在监督学习中被广泛应用于分类与回归任务。它通过一系列判断条件来划分数据集,最终达到对未知数据进行预测的目的。...
【基于决策树的鸢尾花分类】 决策树是一种广泛应用的机器学习算法,尤其适用于分类问题。在本案例中,鸢尾花的分类是基于决策树模型进行的。鸢尾花有三个不同种类:Iris Setosa (Se),Iris Versicolour (Ve),和 ...
在这个实验中,我们利用决策树算法来实现这一目标。决策树是一种直观且易于理解的监督学习方法,常用于分类任务。 决策树的工作原理是通过一系列的“如果-那么”规则来构建一个树形结构,每个内部节点代表一个特征...
决策树ID3算法实现 本文档旨在讲解决策树ID3算法的实现,通过C++语言编写的源代码来实现决策树和决策树对应的规则集。 一、决策树概述 决策树是一种常用的机器学习算法,用于分类和预测问题。决策树由节点和边...
决策树是一种广泛应用于数据分析和机器学习的算法,尤其在分类问题中表现突出。它通过构建一个树状模型来做出预测,每个内部节点代表一个特征,每个分支代表该特征的一个值,而叶节点则对应于一个类别或连续值的预测...
决策树是一种广泛应用于数据挖掘和机器学习的算法,它的核心思想是通过一系列的规则划分,将数据集分割成不同的类别。在这个案例中,我们将详细探讨如何利用Python来实现决策树对鸢尾花数据集的分类,并对其进行可视...
4.3 编程实现基于信息熵进行划分选择的决策树算法,并为西瓜数据集3.0中的数据生成一颗决策树。 4.4 编程实现基于基尼指数进行划分选择的决策树算法,为西瓜数据集2.0生成预剪枝、后剪枝决策树,并与未剪枝决策树...
决策树是一种广泛应用于模式识别和数据挖掘的机器学习算法,它的主要任务是通过构建一棵树状模型来实现对数据的分类或回归。在这个程序中,我们重点探讨的是决策树在模式识别中的应用,以及它是如何用C语言实现的。 ...