首页 > 其他分享 >随机森林RandomForest&梯度提升决策树GBDT

随机森林RandomForest&梯度提升决策树GBDT

时间:2023-06-12 20:55:26浏览次数:50  
标签:df RandomForest print train ----- test model GBDT 决策树

模型亮点

  1. 随机森林,初始测试集上评分为0.53,调参后测试集上评分为0.85
  2. 梯度提升决策树,初始测试集上评分为0.56,调参后测试集上评分为0.88

-----------------------------------------以下为模型具体实现-----------------------------------------

Step1.数据读取

import pandas as pd
df=pd.read_csv('bankpep.csv',index_col=0)
df.head()

Step2.数据清洗

# 1)性别:female->1,male->0
df.loc[df['sex']=='FEMALE','sex']=1
df.loc[df['sex']=='MALE','sex']=0
# 2)婚否、车、储蓄行为、目前行为、是否按揭、是否接受提议:yes->1,no->0
col=['married','car','save_act','current_act','mortgage','pep']
for i in col:
    df.loc[df[i]=='YES',i]=1
    df.loc[df[i]=='NO',i]=0
# 3)地区:rural->1,suburan->2,town->3,inner_city->4
df.loc[df['region']=='RURAL','region']=1
df.loc[df['region']=='SUBURBAN','region']=2
df.loc[df['region']=='TOWN','region']=3
df.loc[df['region']=='INNER_CITY','region']=4

Step3.划分训练集和测试集

from sklearn.model_selection import train_test_split
x=(df.drop('pep',axis=1)).astype(float)
y=df['pep'].astype(float)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=1)

Step4.启动随机森林分类器

from sklearn.ensemble import RandomForestClassifier
model1=RandomForestClassifier(n_estimators=1,max_depth=1) #初始参数设定
model1.fit(x_train,y_train)

Step5.模型评价-随机森林

def train_score(model,x_train,y_train):
    print("训练集上评分:",round(model.score(x_train,y_train),2))
def test_score(model,x_test,y_test):
    print("测试集上评分:",round(model.score(x_test,y_test),2))
print("-----随机森林-----")
train_score(model1,x_train,y_train)
test_score(model1,x_test,y_test)

Step6.优化参数-随机森林

from sklearn.model_selection import RandomizedSearchCV
def randomizedsearch(model,params,x_train,y_train):
    model=RandomizedSearchCV(model,params,n_iter=100,cv=10)
    model.fit(x_train,y_train) #再次用新参数拟合
    print("最优评分:",round(model.best_score_,2))
    print("最优参数:",model.best_params_)
    return model
print("-----随机森林-----")
params1={'n_estimators':range(1,21),'max_depth':range(1,21)} #注意,参数要加引号
model1=randomizedsearch(model1,params1,x_train,y_train)

 Step7.模型保存-随机森林

from sklearn.externals import joblib
joblib.dump(model1,'d:\gbdt.pkl')
new_model1=joblib.load('d:\gbdt.pkl')
print("-----随机森林-----")
print("测试集上预测结果:\n",new_model1.predict(x_test))

Step8.启动梯度提升分类器

from sklearn.ensemble import GradientBoostingClassifier
model2=GradientBoostingClassifier(learning_rate=0.01,n_estimators=1,max_depth=1) #初始参数设定
model2.fit(x_train,y_train)

Step9.模型评价-梯度提升决策树

print("-----梯度提升决策树-----")
train_score(model2,x_train,y_train)
test_score(model2,x_test,y_test)

Step10.优化参数-梯度提升决策树

import numpy as np
params2={'learning_rate':np.arange(0.01,0.3,0.1),'n_estimators':range(1,21),'max_depth':range(1,21)}
model2=randomizedsearch(model2,params2,x_train,y_train)

Step11.模型保存-梯度提升决策树

from sklearn.externals import joblib
joblib.dump(model2,'d:\gbdt.pkl')
new_model2=joblib.load('d:\gbdt.pkl')
print("-----梯度提升决策树-----")
print("测试集上预测结果:\n",new_model2.predict(x_test))

-END

标签:df,RandomForest,print,train,-----,test,model,GBDT,决策树
From: https://www.cnblogs.com/peitongshi/p/17476065.html

相关文章

  • 一文看懂决策树
     决策树是一种逻辑简单的机器学习算法,它是一种树形结构,所以叫决策树。本文将介绍决策树的基本概念、决策树学习的3个步骤、3种典型的决策树算法、决策树的10个优缺点。什么是决策树?决策树是一种解决分类问题的算法,决策树算法采用树形结构,使用层层推理来实现最终的分类。决策......
  • 决策树DecisionTree
    模型亮点数据清洗方式得当由于模型、数据集太小,没有什么好调的,就当练习吧~-----------------------------------------以下为模型具体实现-----------------------------------------Step1.数据读取importpandasaspddf=pd.read_csv('bankdebt.csv',index_col=0,header......
  • 决策树(实验室会议小记)
    特征选择为什么要进行特征选择?特征过多导致过拟合、有一些特征是噪音。特征选择技术:1、尝试所有组合:也是全局最优2、贪心算法:每次决策都是基于当前情况去寻找最优解。计算过程:把特征加进去→是否更优?→是:加入模型/否:淘汰3、L1正则:目标函数为损失函数;特点:具有稀疏性4、决......
  • 3.5决策树算法
    1.认识决策树决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法怎么理解这句话?通过一个对话例子想一想这个女生为什么把年龄放在最上面判断!!!!!!!!!如何高效的进行决策?   特征的先后顺序2.决策树的原......
  • Python+sklearn决策树算法使用入门
    在学习决策树算法之前,首先介绍几个相关的基本概念。决策树算法原理与sklearn实现简单地说,决策树算法相等于一个多级嵌套的选择结构,通过回答一系列问题来不停地选择树上的路径,最终到达一个表示某个结论或类别的叶子节点,例如有无贷款意向、能够承担的理财风险等级、根据高考时各科成......
  • 数据分享|PYTHON用决策树分类预测糖尿病和可视化实例|附代码数据
    全文下载链接:http://tecdat.cn/?p=23848最近我们被客户要求撰写关于决策树的研究报告,包括一些图形和统计输出。在本文中,决策树是对例子进行分类的一种简单表示。它是一种有监督的机器学习技术,数据根据某个参数被连续分割。决策树分析可以帮助解决分类和回归问题 ( 点击文末“阅......
  • 什么决策树
    决策树是一种基于树形结构的机器学习算法,用于解决分类和回归问题。它通过构建一棵树来对输入数据进行判断和预测。决策树的构建过程是从根节点开始,根据特征的取值将数据集划分为不同的子集,然后再对每个子集递归地进行划分,直到满足停止条件。在构建过程中,决策树通过选择最优的特征......
  • 0003.有监督学习之决策树
    一、什么是决策树决策树(DecisionTree)是有监督学习中的一种算法,并且是一种节本的分类与回归的方法。即决策树有两种:分类树和回归树。那什么事决策树了?简单点说就是二元判定,从头到尾逐次判定其归属类型。从上述案例,我们很容易理解:决策树算法的本质就是二元判定的属性结构,我们......
  • python spark 决策树 入门demo
    Refertothe DecisionTree and DecisionTreeModel formoredetailsontheAPI.frompyspark.mllib.treeimportDecisionTree,DecisionTreeModelfrompyspark.mllib.utilimportMLUtils#LoadandparsethedatafileintoanRDDofLabeledPoint.data=MLUtils.l......
  • GBDT(MART) 迭代决策树入门教程 | 简介
    GBDT(MART)迭代决策树入门教程|简介 在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下:        GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结......