欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于Bagging和boosting算法 1---随机森林

程序员文章站 2024-03-22 09:03:16
...

基于Bagging和boosting算法 1---随机森林bagging的特征:随机有放回的抽样;用随机森林做决策不能选择最优属性,只能选择随机属性。
基于Bagging和boosting算法 1---随机森林随机森林的基分类器是决策树;随机森林不能用最佳属性做节点选择,随机选择;k决定属性的个数,在k个属性中选择最优的;—这种方式可以防止每次取最优,但是k不能等于整个属性集。
基于Bagging和boosting算法 1---随机森林cart是用基尼指数衡量的,也可以用信息熵。cart造随机森林的时候是没有剪枝的。
基于Bagging和boosting算法 1---随机森林
不剪枝意味调参数
基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林基于Bagging和boosting算法 1---随机森林随机森林缺点:可解释性差;容易发生过拟合;
随机森林代码:参考https://scikit-learn.org/stable/
基于Bagging和boosting算法 1---随机森林森林和决策树进行对比基于Bagging和boosting算法 1---随机森林

工具

sklearn.model_selection.GridSearchCV.
基于Bagging和boosting算法 1---随机森林参考网上randomforest代码,随机森林一般分也能达到90左右。

from sklearn.ensemble import RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV

df = pd.read_csv('car.csv', encoding='gbk')
x_train, x_test, y_train, y_test = train_test_split(
    df.values[:, :-1], df.values[:, -1], test_size=0.3, random_state=100)


def compareRFandDT():
    rf_param = {'n_estimator': range(1,100), 'max_features': ['sqrt', 'log2']}  #网格搜索,调参中很重要的一个数据
    gs1 = GridSearchCV(RandomForestClassifier(),
                       param_grid=rf_param, cv=3)
    # rf = RandomForestClassifier()
    dt = DecisionTreeClassifier()
    # rf_param.fit(x_train,y_train)
    # rf.fit(x_train, y_train)
    gs1.fit(x_train, y_train)
    print('rf score train:',gs1.score(x_train,y_train))
    print('rf score test:', gs1.score(x_test, y_test))
    print('gs best score:',gs1.best_score_)
    print('gs best param:',gs1.best_params_)
    print('dt score train:', dt.score(x_train, y_train))
    print('dt score:',dt.score(x_test,y_test))


if __name__ == "__main__":
    compareRFandDT()