标签:SDU 4.2 ## clf 7.22 train 模型 cv best
SDU项目实训记录4.2——其他模型
完成分配工作后,研究了一下同小组partner负责的部分,找到了以下三种适合的模型
一、RandomForestClassifier模型(随机森林)
优点:随机性高,适用性广
缺点:效果可解释性差
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV
clf = RandomForestClassifier(n_estimators=100)
params = {
'n_estimators':range(1,200)
}
cv = GridSearchCV(clf,param_grid= params ,verbose = 1,n_jobs=-1, scoring='roc_auc')
cv.fit(train_X, train_y)
rfc= cv.best_estimator_
cv.best_score_
OUT:0.7406656860482378
二、GradientBoostingClassifier 模型
优点:优化后结果较好,且可解释性较强
缺点:适用性可解释性差
from sklearn.ensemble import GradientBoostingClassifier
clf = GradientBoostingClassifier(
loss='deviance', ##损失函数默认deviance deviance具有概率输出的分类的偏差
n_estimators=100, ##默认100 回归树个数 弱学习器个数
learning_rate=0.1, ##默认0.1学习速率/步长0.0-1.0的超参数 每个树学习前一个树的残差的步长
max_depth=3, ## 默认值为3每个回归树的深度 控制树的大小 也可用叶节点的数量max leaf nodes控制
subsample=1, ##树生成时对样本采样 选择子样本<1.0导致方差的减少和偏差的增加
min_samples_split=2, ##生成子节点所需的最小样本数 如果是浮点数代表是百分比
min_samples_leaf=1, ##叶节点所需的最小样本数 如果是浮点数代表是百分比
max_features=None, ##在寻找最佳分割点要考虑的特征数量auto全选/sqrt开方/log2对数/None全选/int自定义几个/float百分比
max_leaf_nodes=None, ##叶节点的数量 None不限数量
min_impurity_split=1e-7, ##停止分裂叶子节点的阈值
verbose=0, ##打印输出 大于1打印每棵树的进度和性能
warm_start=False, ##True在前面基础上增量训练(重设参数减少训练次数) False默认擦除重新训练
random_state=0 ##随机种子-方便重现
) ##多类别回归建议使用随机森林
params = {
'n_estimators':range(1,200)
}
cv = GridSearchCV(clf,param_grid= params ,verbose = 1,n_jobs=-1, scoring='roc_auc')
cv.fit(train_X, train_y)
gbc= cv.best_estimator_
cv.best_score_
OUT:0.7624008038357515
三、AdaBoostClassifier模型
优点:随机性高,适用性广,可解释性强,且效果好
缺点:算法较为复杂
from sklearn.ensemble import AdaBoostClassifier
from sklearn.model_selection import GridSearchCV
clf= AdaBoostClassifier()
params = {
'n_estimators':range(1,200)
}
cv = GridSearchCV(clf,param_grid= params ,verbose = 1,n_jobs=-1, scoring='roc_auc')
cv.fit(train_X, train_y)
abc= cv.best_estimator_
cv.best_score_
OUT:0.7610013009463877
标签:SDU,4.2,##,clf,7.22,train,模型,cv,best 来源: https://blog.csdn.net/weixin_43959421/article/details/119007089
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。