使用权重为sklearn的随机森林

时间:2015-11-07 03:14:41

标签: python numpy import machine-learning scikit-learn

我想对sklearn的RandomForestClassifier使用权重。 事实上,我有一个不平衡的数据集。 1级,600级,2级90级,3级60级和4级96级样本数据!!!

我想使用权重来平衡数据集。这是我生成错误的代码。

cfr = RandomForestClassifier(n_estimators=100,n_jobs =5,{1:1,2:3,3:3,4:3})
cfr.fit(XTrain,yTrain)
predictedTest=cfr.predict(XTest)

这是错误。

SyntaxError: non-keyword arg after keyword arg

我也有选择数字作为重量的问题。你能指导我吗?

1 个答案:

答案 0 :(得分:0)

的前两个参数
cfr = RandomForestClassifier(n_estimators=100,n_jobs =5,{1:1,2:3,3:3,4:3})

是关键字参数,您可以使用语法“arg = value”无序地指定参数。当您在参数列表中从左向右移动时,一旦开始提供关键字参数,就无法停止。之后的每个参数都必须是关键字参数。编辑:由于RandomForestClassifier的所有参数都有关键字,您只需要为最后一个添加关键字。

cfr = RandomForestClassifier(n_estimators=100,n_jobs=5,class_weight={1:1,2:3,3:3,4:3})