#调整随机森林的参数(调整max_features,结果未见明显差异)

#调整随机森林的参数(调整max_features,结果未见明显差异)

from sklearn import datasets
X, y = datasets.make_classification(n_samples=10000,n_features=20,n_informative=15,flip_y=.5, weights=[.2, .8])

import numpy as np
training = np.random.choice([True, False], p=[.8, .2],size=y.shape)

from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X[training], y[training])
preds = rf.predict(X[~training])
print ("Accuracy:\t", (preds == y[~training]).mean())

from sklearn.metrics import confusion_matrix
max_feature_params = [‘auto‘, ‘sqrt‘, ‘log2‘, .01, .5, .99]
confusion_matrixes = {}
for max_feature in max_feature_params:
    rf = RandomForestClassifier(max_features=max_feature)
    rf.fit(X[training], y[training])
    print ("Accuracy:\t", (preds == y[~training]).mean())
    confusion_matrixes= confusion_matrix(y[~training],rf.predict(X[~training]))
    print(max_feature,confusion_matrixes)
    print(‘--------------------------------------------------------------------‘)

from sklearn.metrics import confusion_matrix
y_true = [2, 0, 2, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]
print(confusion_matrix(y_true, y_pred))

y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
print(confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"]))
‘‘‘
Accuracy:     0.640324214792
Accuracy:     0.640324214792
auto [[278 403]
 [306 987]]
--------------------------------------------------------------------
Accuracy:     0.640324214792
sqrt [[280 401]
 [324 969]]
--------------------------------------------------------------------
Accuracy:     0.640324214792
log2 [[304 377]
 [320 973]]
--------------------------------------------------------------------
Accuracy:     0.640324214792
0.01 [[285 396]
 [324 969]]
--------------------------------------------------------------------
Accuracy:     0.640324214792
0.5 [[289 392]
 [305 988]]
--------------------------------------------------------------------
Accuracy:     0.640324214792
0.99 [[294 387]
 [295 998]]
--------------------------------------------------------------------
[[2 0 0]
 [0 0 1]
 [1 0 2]]
[[2 0 0]
 [0 0 1]
 [1 0 2]]
‘‘‘
时间: 2024-11-08 23:05:12

#调整随机森林的参数(调整max_features,结果未见明显差异)的相关文章

如何调整随机森林的参数达到更好的效果。

原文地址: https://www.analyticsvidhya.com/blog/2015/06/tuning-random-forest-model/ A month back, I participated in a Kaggle competition called TFI. I started with my first submission at 50th percentile. Having worked relentlessly on feature engineering f

随机森林(原理/样例实现/参数调优)

决策树 1.决策树与随机森林都属于机器学习中监督学习的范畴,主要用于分类问题. 决策树算法有这几种:ID3.C4.5.CART,基于决策树的算法有bagging.随机森林.GBDT等. 决策树是一种利用树形结构进行决策的算法,对于样本数据根据已知条件或叫特征进行分叉,最终建立一棵树,树的叶子结节标识最终决策.新来的数据便可以根据这棵树进行判断.随机森林是一种通过多棵决策树进行优化决策的算法. 2.案例: 图 1 是一棵结构简单的决策树,用于预测贷款用户是否具有偿还贷款的能力.贷款用户主要具备三个

Sysctl命令及linux内核参数调整

一.Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现. 命令格式: sysctl [-n] [-e] -w variable=value sysctl [-n] [-e] -p (default /etc/sysctl.conf) sysctl [-n] [-e] –a 常用参数的意义: -w  临时改变某个指定参数的值,如 # sysctl -w net.ipv4.ip_forward=1 -a  

随机森林入门攻略(内含R、Python代码)

随机森林入门攻略(内含R.Python代码) 简介 近年来,随机森林模型在界内的关注度与受欢迎程度有着显著的提升,这多半归功于它可以快速地被应用到几乎任何的数据科学问题中去,从而使人们能够高效快捷地获得第一组基准测试结果.在各种各样的问题中,随机森林一次又一次地展示出令人难以置信的强大,而与此同时它又是如此的方便实用. 需要大家注意的是,在上文中特别提到的是第一组测试结果,而非所有的结果,这是因为随机森林方法固然也有自己的局限性.在这篇文章中,我们将向你介绍运用随机森林构建预测模型时最令人感兴趣

集成模型——随机森林

本文的数据集和上一篇一样,是美国个人收入信息.在上一篇末尾提到了随机森林算法,这一篇就介绍随机森林. Ensemble Models 随机森林是一种集成模型(Ensemble Models),集成模型结合了多个模型然后创建了一个精度更高的模型 下面我们创建两个决策树,他们的参数不相同,然后计算他们的预测精度: from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import roc_auc_score colu

R语言︱机器学习模型评估方案(以随机森林算法为例)

R语言︱机器学习模型评估方案(以随机森林算法为例) 笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评价模型的方式. 常见的应用在监督学习算法中的是计算平均绝对误差(MAE).平均平方差(MSE).标准平均方差(NMSE)和均值等,这些指标计算简单.容易理解:而稍微复杂的情况下,更多地考虑的是一些高大上的指标,信息熵.复杂度和基尼值等等. 本篇可以用于情感挖

Spark2.0机器学习系列之6:GBDT(梯度提升决策树)、GBDT与随机森林差异、参数调试及Scikit代码分析

概念梳理 GBDT的别称 GBDT(Gradient Boost Decision Tree),梯度提升决策树.     GBDT这个算法还有一些其他的名字,比如说MART(Multiple Additive Regression Tree),GBRT(Gradient Boost Regression Tree),Tree Net等,其实它们都是一个东西(参考自wikipedia – Gradient Boosting),发明者是Friedman. 研究GBDT一定要看看Friedman的pa

nginx性能优化及内核参数调整

Nginx配置参数优化 Nginx作为高性能web服务器,即使不特意调整配置参数也可以处理大量的并发请求.以下的配置参数是借鉴网上的一些调优参数,仅作为参考,不见得适于你的线上业务. worker进程 worker_processes 该参数表示启动几个工作进程,建议和本机CPU核数保持一致,每一核CPU处理一个进程. worker_rlimit_nofile 它表示Nginx最大可用的文件描述符个数,需要配合系统的最大描述符,建议设置为102400. 还需要在系统里执行ulimit -n 10

技巧-Linux内核参数调整办法

技巧 -Linux内核参数调整办法 ulimit设置 ulimit -n 要调整为100000甚至更大. 命令行下执行 ulimit -n 100000即可修改.如果不能修改,需要设置 /etc/security/limits.conf,加入 * soft nofile 262140 * hard nofile 262140 root soft nofile 262140 root hard nofile 262140 * soft core unlimited * hard core unli