我想对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
我也有选择数字作为重量的问题。你能指导我吗?
答案 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})