当前位置: 首页 > news >正文

深圳安鸿源建设网站北京seo专业团队

深圳安鸿源建设网站,北京seo专业团队,网站建设与app开发,制作灯笼作文300字第一次用随机森林做分类,使用sklearn中的库,直接进行模型训练。下面写出了随机森林中的一些参数,仅供参考。(适合像我这样的菜鸟参考学习) import pandas as pd from sklearn.ensemble import RandomForestClassifier…

第一次用随机森林做分类,使用sklearn中的库,直接进行模型训练。下面写出了随机森林中的一些参数,仅供参考。(适合像我这样的菜鸟参考学习)

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
# train_test_split 划分训练集 测试集
# cross_val_score 交叉验证调节某个参数
# GridSearchCV 超参调节 调节多个参数
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
# roc_auc_score分数返回roc曲线下的面积
from sklearn.metrics import roc_auc_score,auc,roc_curvedata = pd.read_csv('./data/new.csv')
# print(data.head())# 查看1和0的数量
# print(data.flag.value_counts())# 把标记赋值给y
y = data.flag
# print(y)
# 去掉标签列flag 赋值给x
x = data.drop('flag',axis=1)
# print(x)
# y为标签 x为数据
# test_size表示测试集数据所占比例,random_state表示若要重复试验保证每次随机的实验结果是一样的
xtrain, xtest, ytrain, ytest = train_test_split(x, y,test_size=0.2, random_state=5 )# RandomForestClassifier参数
# n_estimators 森林中树的数量,即基评估器的数量
# max_depth= 树的最大深度 默认为none 这样建树时,会使每一个叶节点只有一个类别,或是达到min_samples_split。
# min_samples_split:根据属性划分节点时,每个划分最少的样本数
# min_samples_leaf:叶子节点最少的样本数。
# criterion = 使用信息熵entropy或者基尼系数gini.默认是基尼系数
rfc = RandomForestClassifier(n_estimators=220,min_samples_leaf=10,min_samples_split=30,max_depth=8,random_state=10,criterion='gini',class_weight=None)
rfc.fit(xtrain,ytrain)# 导入测试集 rfc的接口score计算的是模型准确率accuracy
# result = rfc.score(xtest,ytest)
# print(result)# 查看所有的决策树
# print(rfc.estimators_)# 查看结果的类别
# print(rfc.classes_)
# 查看类别数量
# print(rfc.n_classes_)# 查看预测结果标签值
# print(rfc.predict(xtest))# 标签是1的可能性 出来的结果左边的标签值为0的概率 右边是标签值为1的概率
# print(rfc.predict_proba(xtest)[:,:])
# 只取标签为1的概率
# print(rfc.predict_proba(xtest)[:,1])# roc分数的计算
# sc = roc_auc_score(ytest,rfc.predict_proba(xtest)[:,1])
# print(sc)# 各个feature的重要性
# print(rfc.feature_importances_)# sklearn.model_selection.cross_val_score(estimator= ,X= , y= ,scoring= ,cv= ,n_jobs=, verbose= )
# estimator:估计方法对象(分类器)
# X: 数据特征(Features)
# y: 数据标签
# soring:调用方法(包括accuracy和mean_squared_error等等)
# cv: 几折交叉验证# 结果统计 计算P,R,F1,accuracy
p = precision_score(list(ytest),rfc.predict(xtest),average='weighted')
r = recall_score(list(ytest),rfc.predict(xtest),average='weighted')
f1 = f1_score(list(ytest),rfc.predict(xtest),average='weighted')print(p)    # 0.9038104235553457
print(r)    # 0.903448275862069
print(f1)   # 0.9034574607673332#  调整参数# 查看训练集
# print(xtrain.shape)# 调整森林中树的数量# param_test1 = {'n_estimators': range(20,500,10)}
# estimator输入分类器(分类器的参数)
# param_grid= 需要调参的超参名
# scoring = 每次评估使用的分数
# cv = 每次进行几折交叉验证
# gsearch1 = GridSearchCV(estimator=RandomForestClassifier(min_samples_split=50,
#                                                          min_samples_leaf=20,
#                                                          max_depth=8,random_state=10),
#                         param_grid=param_test1,
#                         scoring='roc_auc',
#                         cv=3)
# gsearch1.fit(xtrain,ytrain)
# # 输出最好的参数和最好的分数
# print(gsearch1.best_params_,gsearch1.best_score_)
# 输出结果 {'n_estimators': 220} 0.8620994691397194# 调整最小样本数 和 最小叶节点的样本数
# param_test2 = {'min_samples_split':range(20,200,10),'min_samples_leaf':range(10,200,10)}
# gsearch2 = GridSearchCV(estimator=RandomForestClassifier(n_estimators=220,
#                                                          max_depth=8,random_state=10),
#                         param_grid=param_test2,
#                         scoring='roc_auc',
#                         cv=3)
# gsearch2.fit(xtrain,ytrain)
# 输出最好的参数和最好的分数
# print(gsearch2.best_params_,gsearch2.best_score_)
# 输出结果{'min_samples_leaf': 10, 'min_samples_split': 30} 0.8675084144386757# 调整最大深度
# param_test3 = {'max_depth':range(2, 50, 2)}
# gsearch3 = GridSearchCV(estimator=RandomForestClassifier(n_estimators=220,
#                                                          min_samples_leaf = 10,
#                                                          min_samples_split = 30,
#                                                          random_state=10),
#                         param_grid=param_test3,
#                         scoring='roc_auc',
#                         cv=3)
# gsearch3.fit(xtrain, ytrain)
# 输出最好的参数和最好的分数
# print(gsearch3.best_params_, gsearch3.best_score_)
# 输出结果{'max_depth': 8} 0.8675084144386757# scor = roc_auc_score(ytest, gsearch3.best_estimator_.predict_proba(xtest)[:, 1])
# print(scor)
# 0.964570943075616# print(gsearch3.best_estimator_)# 调整分类方法 和样本平衡
# param_test4 = {'criterion':['gini','entropy'], 'class_weight':[None,'balanced']}
# gsearch4 = GridSearchCV(estimator=RandomForestClassifier(n_estimators=220,
#                                                          min_samples_leaf=10,
#                                                          min_samples_split=30,
#                                                          max_depth=8,
#                                                          random_state=10),
#                         param_grid=param_test4,
#                         scoring='roc_auc',
#                         cv=3)
# gsearch4.fit(xtrain,ytrain)
# print(gsearch4.best_params_, gsearch4.best_score_)
# {'class_weight': None, 'criterion': 'entropy'} 0.8722979957299399# scor = roc_auc_score(ytest, gsearch4.best_estimator_.predict_proba(xtest)[:, 1])
# print(scor)
# 0.9615972812234495
http://www.lbrq.cn/news/2589139.html

相关文章:

  • 如何做2级网站站长工具app
  • app需要建网站吗信息服务平台有哪些
  • 自己怎样建设网站百度云网盘
  • 小吃加盟网站大全seo实战技巧100例
  • 湖南做网站 要上磐石网络百度指数的基本功能
  • 东莞模板网站好优化大师电脑版官网
  • wordpress手机底部菜单网站seo设置是什么意思
  • 唐山网站制作专业网址搜索引擎入口
  • 网站建设中网页代码怎么利用互联网推广
  • 怎样在网站上做办公家具安卓优化大师旧版本
  • 新办公司网上核名在哪个网站做天津百度分公司
  • 建设书法网站的主题是seo常用的优化工具
  • 上海私人做网站南昌seo报价
  • 廊坊网站建设-纵横网络 网站做网络推广怎么收费
  • 餐饮类网站建设达到的作用seo单页面优化
  • 电商网站建设外包关键词下载
  • 360做网站经常打骚扰电话优化大师卸载不了
  • 学校建设网站目标陕西网站制作
  • 驻马店360网站建设线上平台推广方式
  • php动态网站开发 项目教程百度客服工作内容
  • 大连英文网站建设百度一下就一个
  • 石家庄哪里有网站建设青岛网站推广关键词
  • 常州男科医院哪一个好长沙seo 优化选智投未来no1
  • dw做的网站如何上传云服务器神马关键词快速排名软件
  • wordpress优酷插件下载福州百度快照优化
  • 做性的网站有哪些今日重大新闻头条
  • 可以做渗透测试的网站可以进入任何网站的浏览器
  • 重复建设政务网站宁波网络营销公司
  • 朋友做的网站图片不显示不出来的北京seo技术交流
  • 网站上传的图片怎么做的清晰竞价托管收费标准
  • Qt按键响应
  • MLIR Introduction
  • 质押和抵押有什么区别
  • C的运算符与表达式
  • Python 小数据池(Small Object Pool)详解
  • 一键安装RabbitMQ脚本