当前位置: 首页 > news >正文

wordpress 建站插件广州百度推广优化排名

wordpress 建站插件,广州百度推广优化排名,中国建设银行官网网站首页,做网站的主要作用文章目录1 前言2 随机森林#xff08;RF#xff09;简介3 特征重要性评估4 举个例子5 参考文献1 前言 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单#xff0c;易于实现#xff0c;计算开销也很小#xff0c;更令人惊奇的是它在分类和回归上表现出了十… 文章目录1 前言2 随机森林RF简介3 特征重要性评估4 举个例子5 参考文献1 前言 随机森林是以决策树为基学习器的集成学习算法。随机森林非常简单易于实现计算开销也很小更令人惊奇的是它在分类和回归上表现出了十分惊人的性能因此随机森林也被誉为“代表集成学习技术水平的方法”。 本文是对随机森林如何用在特征选择上做一个简单的介绍。 2 随机森林RF简介 只要了解决策树的算法那么随机森林是相当容易理解的。随机森林的算法可以用如下几个步骤概括 用有抽样放回的方法bootstrap从样本集中选取n个样本作为一个训练集用抽样得到的样本集生成一棵决策树。在生成的每一个结点 随机不重复地选择d个特征利用这d个特征分别对样本集进行划分找到最佳的划分特征可用基尼系数、增益率或者信息增益判别 重复步骤1到步骤2共k次k即为随机森林中决策树的个数。用训练得到的随机森林对测试样本进行预测并用票选法决定预测的结果。 下图比较直观地展示了随机森林算法图片出自文献2 图1随机森林算法示意图没错就是这个到处都是随机取值的算法在分类和回归上有着极佳的效果是不是觉得强的没法解释~ 然而本文的重点不是这个而是接下来的特征重要性评估。 3 特征重要性评估 现实情况下一个数据集中往往有成百上前个特征如何在其中选择比结果影响最大的那几个特征以此来缩减建立模型时的特征数是我们比较关心的问题。这样的方法其实很多比如主成分分析lasso等等。不过这里我们要介绍的是用随机森林来对进行特征筛选。 用随机森林进行特征重要性评估的思想其实很简单说白了就是看看每个特征在随机森林中的每颗树上做了多大的贡献然后取个平均值最后比一比特征之间的贡献大小。 好了那么这个贡献是怎么一个说法呢通常可以用基尼指数Gini index或者袋外数据OOB错误率作为评价指标来衡量。 我们这里只介绍用基尼指数来评价的方法想了解另一种方法的可以参考文献2。 我们将变量重要性评分variable importance measures用VIMVIMVIM来表示将Gini指数用GIGIGI来表示假设有JJJ个特征X1X2X3...XJX_1X_2X_3...X_JX1​X2​X3​...XJ​III棵决策树CCC个类别现在要计算出每个特征XjX_jXj​的Gini指数评分VIMj(Gini)VIM_j^{(Gini)}VIMj(Gini)​亦即第jjj个特征在RF所有决策树中节点分裂不纯度的平均改变量。 第iii棵树节点qqq的Gini指数的计算公式为 GIq(i)∑c1∣C∣∑c′≠cpqc(i)pqc′(i)1−∑c1∣C∣(pqc(i))2(3-1)GI_q^{(i)}\sum_{c1}^{|C|}\sum_{c \neq c } p_{qc}^{(i)} p_{qc}^{(i)}1-\sum_{c1}^{|C|}(p_{qc}^{(i)})^2 \tag{3-1}GIq(i)​c1∑∣C∣​c′​c∑​pqc(i)​pqc′(i)​1−c1∑∣C∣​(pqc(i)​)2(3-1) 其中CCC表示有CCC个类别pqcp_{qc}pqc​表示节点qqq中类别ccc所占的比例。 直观地说就是随便从节点qqq中随机抽取两个样本其类别标记不一致的概率。 特征XjX_jXj​在第iii棵树节点qqq的重要性即节点qqq分枝前后的GiniGiniGini指数变化量为 VIMjq(Gini)(i)GIq(i)−GIl(i)−GIr(i)(3-2)VIM_{jq}^{(Gini)(i)}GI_q^{(i)}-GI_l^{(i)}-GI_r^{(i)} \tag{3-2}VIMjq(Gini)(i)​GIq(i)​−GIl(i)​−GIr(i)​(3-2) 其中GIl(i)GI_l^{(i)}GIl(i)​和GIr(i)GI_r^{(i)}GIr(i)​分别表示分枝后两个新节点的GiniGiniGini指数。 如果特征XjX_jXj​在决策树iii中出现的节点为集合QQQ那么XjX_jXj​在第iii颗树的重要性为 VIMj(Gini)(i)∑q∈QVIMjq(Gini)(i)(3-3)VIM_{j}^{(Gini)(i)}\sum_{q \in Q}VIM_{jq}^{(Gini)(i)} \tag{3-3}VIMj(Gini)(i)​q∈Q∑​VIMjq(Gini)(i)​(3-3) 假设RFRFRF中共有III颗树那么 VIMj(Gini)∑i1IVIMj(Gini)(i)(3-4)VIM_j^{(Gini)}\sum_{i1}^{I}VIM_{j}^{(Gini)(i)} \tag{3-4}VIMj(Gini)​i1∑I​VIMj(Gini)(i)​(3-4) 最后把所有求得的重要性评分做一个归一化处理即可。 VIMj(Gini)VIMj(Gini)∑j′1JVIMj′(Gini)(3-5)VIM_j^{(Gini)}\dfrac{VIM_j^{(Gini)}}{\sum_{j1}^J VIM_{j}^{(Gini)}} \tag{3-5}VIMj(Gini)​∑j′1J​VIMj′(Gini)​VIMj(Gini)​​(3-5) 4 举个例子 值得庆幸的是sklearnsklearnsklearn已经帮我们封装好了一切我们只需要调用其中的函数即可。 我们以UCI上葡萄酒的例子为例首先导入数据集。 import pandas as pd url http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data df pd.read_csv(url, header None) df.columns [Class label, Alcohol, Malic acid, Ash, Alcalinity of ash, Magnesium, Total phenols, Flavanoids, Nonflavanoid phenols, Proanthocyanins, Color intensity, Hue, OD280/OD315 of diluted wines, Proline]然后我们来大致看下这时一个怎么样的数据集 import numpy as np np.unique(df[Class label])输出为 array([1, 2, 3], dtypeint64)可见共有3个类别。然后再来看下数据的信息 df.info()输出为 class pandas.core.frame.DataFrame RangeIndex: 178 entries, 0 to 177 Data columns (total 14 columns): Class label 178 non-null int64 Alcohol 178 non-null float64 Malic acid 178 non-null float64 Ash 178 non-null float64 Alcalinity of ash 178 non-null float64 Magnesium 178 non-null int64 Total phenols 178 non-null float64 Flavanoids 178 non-null float64 Nonflavanoid phenols 178 non-null float64 Proanthocyanins 178 non-null float64 Color intensity 178 non-null float64 Hue 178 non-null float64 OD280/OD315 of diluted wines 178 non-null float64 Proline 178 non-null int64 dtypes: float64(11), int64(3) memory usage: 19.5 KB可见除去class label之外共有13个特征数据集的大小为178。 按照常规做法将数据集分为训练集和测试集。 try:from sklearn.cross_validation import train_test_split except:from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier x, y df.iloc[:, 1:].values, df.iloc[:, 0].values x_train, x_test, y_train, y_test train_test_split(x, y, test_size 0.3, random_state 0) feat_labels df.columns[1:] forest RandomForestClassifier(n_estimators10000, random_state0, n_jobs-1) forest.fit(x_train, y_train)好了这样一来随机森林就训练好了其中已经把特征的重要性评估也做好了我们拿出来看下。 importances forest.feature_importances_ indices np.argsort(importances)[::-1] for f in range(x_train.shape[1]):print(%2d) %-*s %f % (f 1, 30, feat_labels[indices[f]], importances[indices[f]]))输出的结果为 1) Color intensity 0.1824832) Proline 0.1586103) Flavanoids 0.1509484) OD280/OD315 of diluted wines 0.1319875) Alcohol 0.1065896) Hue 0.0782437) Total phenols 0.0607188) Alcalinity of ash 0.0320339) Malic acid 0.025400 10) Proanthocyanins 0.022351 11) Magnesium 0.022078 12) Nonflavanoid phenols 0.014645 13) Ash 0.013916对的就是这么方便。 如果要筛选出重要性比较高的变量的话这么做就可以 threshold 0.15 x_selected x_train[:, importances threshold] x_selected.shape输出为 (124, 3)瞧这不帮我们选好了3个重要性大于0.15的特征了吗~ 5 参考文献 [1] Raschka S. Python Machine Learning[M]. Packt Publishing, 2015. [2] 杨凯, 侯艳, 李康. 随机森林变量重要性评分及其研究进展[J]. 2015.
http://www.sadfv.cn/news/331288/

相关文章:

  • 网站做微信支付宝支付网站logo显示
  • 呼和浩特建设网站广东重工建设监理有限公司官方网站
  • 微信推广和网站推广哪个好南京发布最新通报
  • 简单做动画的网站好听的域名取名
  • 建立一个网站需要什么网站开发会计分录
  • 元做网站江苏省交通运输厅门户网站建设管理中心
  • 信息技术教案 建设我们的网站wordpress 管理 主题
  • 企业网站会员功能专做水果店加盟的网站
  • 漯河网站seowordpress 图集插件
  • 大连模板网站制作wordpress获取菜单链接
  • 北京建网站 优帮云关于旅行的网站怎样做
  • 阳谷网站建设网络推广品牌便宜网站建设
  • 山东烟台城乡建设学校官方网站软件下载网站开发 论文
  • 建设银行360网站登录不了深圳手机网站设计
  • 视觉营销网站建设规划分析深圳做网站比较好
  • 云平台网站建设方案书关键词优化流程
  • 网站备案是什么h5制作软件 知乎 推荐
  • 常德网站建设网站优化深圳ui设计师招聘
  • 外贸网站注册海南钢网架公司
  • 个人简历 网站开发设计师人才网
  • 淘宝客网站做appwordpress后台进去
  • 制作网站的成本网站开发职业类别代码
  • 网站建设推广书籍哪里购买域名
  • 网站怎么做360免费优化培训机构前端
  • 博客网站怎么做cpa开发公司质量管理体系
  • 手机建公司网站建设网站目的及功能定位是什么
  • vps被攻击网站打不开ping值高友链购买网
  • 企业网站建设流程知乎自己做网站的二维码
  • php网站视频代码网站文章添加
  • 买手机的网站橙光游戏制作器手机版