对 sklearn 的随机森林使用权重

Using weight for Random forest of sklearn

我想为sklearn的RandomForestClassifier使用权重。 事实上,我有一个不平衡的数据集。 class 1 with 600, class2 90, class3 60 and class4 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

而且我在选择一个数字作为权重时也遇到了问题。你能指导我吗?

的前两个参数
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})