特征重要性 Python

数据挖掘 机器学习 Python 分类 特征选择
2022-02-23 01:55:44

我的数据集有大约 1000 个特征和 30k 行。

所有功能的值都是 1 或 0。我的目标变量是Size,它分为 3 个类:Small、Medium 和 Large。我有大约 5k“小”数据点、9k“中”数据点和 20K“大”数据点。我想找到特征重要性。我不确定哪种算法最适合只有 1 和 0 的特征。我试过 Chi2 但准确率很低:

#find best scored 10 features
select_feature = SelectKBest(chi2, k=10).fit(X_train, Y_train)

X_train_2 = select_feature.transform(X_train)
X_test_2 = select_feature.transform(X_test)

clf_rf_2 = RandomForestClassifier(n_estimators=1000, n_jobs=-1, random_state = 100)      
clr_rf_2 = clf_rf_2.fit(X_train_2,Y_train)
ac_2 = accuracy_score(Y_test,clf_rf_2.predict(X_test_2))
print('Accuracy is: ',ac_2)
cm_2 = confusion_matrix(Y_test,clf_rf_2.predict(X_test_2))

我的准确率只有 58%,而且该模型只擅长预测“大”数据点。下面是混淆矩阵

      Small   Medium   Large
Small  6      17       3000
Medium 9      9        2000 
Large  31     32       7500

我主要有2个问题:

  1. 我不确定哪种算法适用于只有 1 和 0 的最佳功能
  2. 如何使用 chi2 获得更高的准确度(更好地预测中小型类)

谢谢!我非常感谢您对此的任何意见。

0个回答
没有发现任何回复~