赞
踩
- # -*- coding: utf-8 -*-
- """
- Created on Wed Nov 6 16:23:18 2019
- @author: weiping
- """
-
- from sklearn.ensemble import RandomForestClassifier as rfc
- from sklearn.ensemble import RandomForestRegressor as rfr
- import pandas as pd
- import numpy as np
- import sklearn.datasets as skdata
- import matplotlib.pyplot as plt
- from sklearn.model_selection import train_test_split
- from sklearn import metrics
-
- '''分类'''
- data_x,data_y = skdata.load_iris().data, skdata.load_iris().target
-
- df = pd.DataFrame(data_x,columns = list('abcd'))
- df['f'] = data_y
- x_tr,x_te,y_tr,y_te = train_test_split(df[list('abcd')],df['f'],train_size = 0.7,random_state =22)
-
- rf = rfc()
- rf.fit(x_tr,y_tr)
- rf_p = rf.predict(x_te)
-
- metrics.confusion_matrix(y_te,rf_p)
-
- '''回归'''
- d_x ,d_y = skdata.load_boston().data,skdata.load_boston().target
-
- x_tr,x_te,y_tr,y_te = train_test_split(d_x,d_y,train_size = 0.7,random_state = 22)
-
- rfr = rfr()
- rfr.fit(x_tr,y_tr)
- rf_p = rfr.predict(x_te)
-
- metrics.r2_score(rf_p,y_te)
n_estimators=10 | 决策树的个数,越多越好,但是性能就会越差,至少100左右(具体数字忘记从哪里来的了)可以达到可接受的性能和误差率。 |
bootstrap=True | 是否有放回的采样。 |
oob_score=False | oob(out of band,带外)数据,即 在某次决策树训练中没有被bootstrap选中的数据。多单个模型的参数训练,我们知道可以用cross validation(cv)来进行,但是特别消耗时间,而且对于随机森林这种情况也没有大的必要,所以就用这个数据对决策树模型进行验证,算是一个简单的交叉验证。性能消耗小,但是效果不错。 |
n_jobs=1 | 并行job个数。这个在ensemble算法中非常重要,尤其是bagging(而非boosting,因为boosting的每次迭代之间有影响,所以很难进行并行化),因为可以并行从而提高性能。n=1不并行;n= n n个并行;n= -1 CPU有多少core,就启动多少job |
warm_start=False | 热启动,决定是否使用上次调用该类的结果然后增加新的。 |
class_weight=None | 各个label的权重。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。