大佬教程收集整理的这篇文章主要介绍了通过交叉验证评估随机森林学习的功能?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚学习用 Python 编程,想知道我写的是否正确:我的任务是用 Python 编写一个函数 RandomForestCV(folds,XTrain,YTrain,XTest,YTest,n_estimators,randomization,bootstrap)
,它评估“n_estimators、randomization、bootstrap”配置在使用 fscore 指标的随机森林学习中;我的函数应该返回通过交叉验证计算的平均 fscore。
我开发了以下功能:
def RandomForestCV(folds,bootstrap):
for i in range(folds):
clf = randomforest(XTrain[i],YTrain[i],bootstrap)
scores = cross_valIDate(clf,XTest[i],YTest[i],scoring="f1",cv=folds)
return scores['test_score'].mean()
XTrain、YTrain、XTest、YTest 是数据帧列表,由之前执行的交叉验证产生(例如 5 折 CV,所以我将拥有 XTrain,它将是 5 个数据帧的列表,等等,我可以访问通过索引)。对于评估,我使用了 sklearn cross_validate 库。
我不认为这是正确的,因为在每次迭代中,我认为我每次都会覆盖变量 scores
,所以最后我只会得到关于列表最后折叠的平均 f_score(但我我不确定),我该如何解决?还是我应该从头再来?
您可以直接在完整数据集上应用 cross_validate
,此函数负责在内部拆分数据。
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_SELEction import cross_validate
from sklearn.datasets import make_classification
X,Y = make_classification(n_features=2,n_redundant=0,n_informative=2,random_state=1,n_clusters_per_class=1)
n_estimators = 10
folds = 5
bootstrap = True
clf = RandomForestClassifier(n_estimators=n_estimators,bootstrap=bootstrap)
scores = cross_validate(clf,X,Y,scoring='f1',cv=folds,return_Train_score=TruE)
print(f'Average F1-score Training: {scores["Train_score"].mean()}')
print(f'Std F1-score Training: {scores["Train_score"].std()}')
print(f'Average F1-score test: {scores["Train_score"].mean()}')
print(f'Std F1-score test: {scores["Train_score"].std()}')
以上是大佬教程为你收集整理的通过交叉验证评估随机森林学习的功能?全部内容,希望文章能够帮你解决通过交叉验证评估随机森林学习的功能?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。