指南:本文的首席执行官注释将介绍python随机森林将运行多长时间的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
电子书收集|数据科学快速检查表|迁移学习实际战斗,免费下载
链接:提取代码:Z9X7
1. 10,000次消耗2毫秒
2. 22毫秒的100,000次
3.每次消耗304毫秒的时间消耗一百万倍
4.仪表周期的1000万次,2337毫秒,为2.3秒
5. 1亿次,23468毫秒,为23.4秒
查看特定收集任务的内容。如果是图片,则访问地址规范和熟悉的规则,即一两分钟,如果它是一个复杂的网页,并且负面的攀岩规则可能需要半小时,如果类似于天空眼睛检查和爬行以从天空的眼睛,爬行和从天空,爬行和爬网爬行,从天空眼中爬行。整个公司的信息为10,000,可能需要一天或两天,因为公司需要n个更多信息
随机森林是指使用多个树来训练和预测样品的分类器。及其输出类别由单个树的类别数量确定。在机器学习中,Scikit-Learn有一个非常重要的地方可以实现随机森林算法。
原则:(分类预测和回归预测随机森林Sklearn.entermble.randomforestressor方法)
(1)给定训练集S,测试集T,特征维度F.确定参数:所使用的购物车数,每棵树的深度D,每个节点使用的功能F的数量,终止条件:最小值节点上的示例编号s,节点上的最小信息增益,第一个1-1-1-1-1-1-1-t树,i = 1-t:
(2)S(i)有一个来自s中的s(i)的培训集。作为根节点的样本,训练从根节点开始
(3)如果在电流节点上满足终止条件,则将电流节点设置为叶节点。如果是一个分类问题,则叶节点的预测输出是当前节点中最多的样本数量的C(J)类别。C(J)是当前样本集的比例;如果是回归问题,则预测输出是当前节点样本集的每个样本值的平均值。f-特殊符号未释放。使用此f uvit,找到最佳类别的k和阈值th,当前节点上的样品k样品样品的样品分为左节点,其余的分为右节点。训练其他节点。
(4)重复(2)(3),直到所有节点均已训练或标记为叶子节点。
(5)重复(2),(3),(4),直到所有购物车都已训练。
随机森林的简单实施过程如下:
1.开发环境和编译环境:
Pycharm社区版2016.2.3
Python2.7.10
第二,库和安装方法:
熊猫[Python建造]
Sklearn:命令行PIP安装Sklearn;如果您不安装PIP,请使用Easy_install Pip安装PIP;如果您在Mac上没有权限,请使用sudo pip install sklearn;
第三,代码简介
1.使用熊猫读取本地Excel训练集和测试集,并将属性赋予x_train和y_train;
2.使用dictvectorizer标准化和标准化数据
3.生成RandomForestRegressor对象,并将训练设置传递到适合训练的方法中
4.调用预测函数以进行预测,并将结果保存在y_predict变量中;
5.使用均值_squared_error,分数方法来输出MSE和NMSE值来分析合适性和稳定性;输出功能_IMPORTANE分析影响最终结果的属性;
6.请参阅附录详细代码
第四和附录
#编码:UTF-8
导入大熊猫作为pd
data_train = pd.read_excel('/users/xiaoliu/desktop/data_train.xlsx')
x_train = data_train [['cpi','gdp','ppi','ajr','bjfj','fbdr','fbdr','pcfd','pcfded','bdr','bdr']]]
y_train = data_train ['fj']
data_test = pd.read_excel('/users/xiaoliu/desktop/data_test.xlsx')
x_test = data_teest [['cpi','gdp','ppi','ajr','bjfj','fbdr','fbdr','pcfd','pcfded','bdr','bdr']]]
y_test = data_teest ['fj']
来自Sklearn。feature_extraction导入victectorizer
vec = dictvectorizer(稀疏= false)
x_train = vec.fit_transform(x_train.to_dict(orient ='records'))
x_test = vec.transform(x_test.to_dict(orient ='records'))
来自sklearn.ensembell导入RandomForestRegressor
RF = RandomForestRegressor()
rf.fit(x_train,y_train)
y_predict = rf.predict(x_test)
打印“预测值:”,y_predict
来自sklearn.metrics导入均值_squared_error
打印'MSE:',sue_squared_error(y_test,y_predict)
打印'nmes:',rf.score(x_test,y_test)
打印rf.feature_importances_
随机运行长数据接近60,000,变量的数量约为300。使用10%的折扣来验证R中的随机森林。该模型每天运行。
您如何将Scikit-Learn软件包中的类方法用于随机森林算法。每个参数的特定用途是有益的。
在这里,我给予我的理解和翻译的一部分:
参数描述:
这两个主要参数是n_estimators和max_features。
n_estimators:指示森林中的树木数量。从理论上讲,越大越好。但是随着计算时间的增加,越多,您越多,您得到的就越大,它就会越好。最佳预测效果将出现在合理数量的树木中。
MAX_FEATURES:选择功能集合的子集合随机随机分配节点。儿童收集的数量越少,差异的速度就越快,但同时,偏差越快,偏差就会越快。基于更好的偏差。实用经验。如果这是一个回归问题:
max_features = n_features,如果是分类问题,则max_features = sqrt(n_features)。
如果要获得更好的结果,max_depth = none,min_sample_split = 1。
同时,请记住执行Cross_validated(交叉验证)。此外,请记住在随机森林中,bootstrap = true。
这也是外国人撰写的文章:调整您的随机森林模型参数
在这里,我使用Scikit-Learn随机森林随附的虹膜数据:
[python]查看普通副本
来自Sklearn.Tree进口决策者
来自sklearn.ensembell导入RandomForestRegressor
导入numpy作为NP
从sklearn.datases导入load_iris
iris = load_iris()
#print Iris#iris的4个属性是:萼片宽度萼片laugy花瓣宽度长度标签是花的类型:setosa versicolour virginica
打印虹膜['target']。形状
rf = randomforestregressor()#here使用默认参数设置
rf.fit(iris.data [:150],iris.target [:150])#执行模型训练
#
#randomly选择两个具有不同预测的样本
实例= iris.data [[100,109]]]
打印实例
打印“实例0预测;”,rf.predict(instance [0])
打印“实例1预测;”,rf.predict(instance [1])
pRIS.target [100],iris.target [109]
回报的结果如下:
(150,)
[[6.3 3.3 6. 2.5]
[7.2 3.6 6.1 2.5]]]]
实例0预测;[2.]
实例1预测;[2.]
22
我在这里有些困惑,也就是说,Scikit-As As算法软件包中的随机森林实际上是由决策树组成的。盒子处理。我们不知道内部决策 - 制造树结构,即使是父节点的选择特征也不知道它是谁。因此,我给出以下代码(此代码不是我的原始代码),它可以显示因此,我们可以考虑删除此列的特征值,以避免使用无用的分类。
[python]查看普通副本
来自sklearn.cross_validation导入cross_val_score,shufflesplit
x = iris [“数据”]
y =虹膜[“目标”]
名称= iris [“ feature_names”]
RF = RandomForestRegressor()
得分= []
对于我的范围(X.Shape [1]):
得分= cross_val_score(rf,x [:,i+1],y,评分=“ r2”,
cv = shufflesplit(len(x),3,.3))
SCORES.APPEND(圆形(NP.Mean(Score),3),名称[i]))
打印排序(分数,反向= true)
显示结果如下:
[(0.934,'花瓣宽度(cm)'),(0.929,'花瓣长(cm)),(0.597,'sepal长度(cm)'),(0.276,'sepal宽度(cm)')]]]]]]]
在这里,我们会发现花瓣宽度和花瓣长的两个特征将贡献绝对的贡献,然后是萼片长度,影响最小的是萼片宽度。该代码将使我们想起每个特征的贡献,这使我们能够知道我们的贡献内部结构。
结论:以上是首席CTO注释为每个人编写的Python随机森林的相关内容的相关内容答案。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?