我有一个随机森林分类器,它预测 0 类的频率大约是 1 类的两倍。它还预测 0 类的概率高于 1 类。
它不是一个不平衡的数据集。我尝试将 1 类权重设置为 100,它似乎解决了这个问题,尽管我认为这不是一个正确的解决方案:D K-NN 给出了同样的问题。由于我将 y 从 0 和 1 更改为 B 和 A,它开始更频繁地预测二等舱。那么问题能否以某种方式与数据类型相关联?
代码:
dataset = pd.read_csv('regtraining.csv')
X = dataset.iloc[:, :-5].values
y = dataset.iloc[:, 50].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
classifier = RandomForestClassifier()
classifier.fit(X_train, y_train)
y_pred = classifier.predict(X_test)
print(confusion_matrix(y_test, y_pred))
当我尝试训练测试拆分的多个随机状态时,预测的类别之一总是被更频繁地预测。
编辑:经过一些研究,我认为随机森林会分裂,以便按字母顺序预测类(y 的 A、B 值给出更多的 A 但 B,y 的 A 值给出更多的 B)。
感谢您的回答,我是机器学习的新手:D