我需要一些建议来提高我的模型准确性。
训练数据形状为:(166573, 14)
它具有所有 int 和 float 列。我已经删除了claim_daysaway列,因为大多数值都是 NaN 并将 Nan 值替换为层列的平均值。
X_train = train.drop(['outcome','testindex','claims_daysaway'], axis=1)
y_train = train['outcome']
由于值的比例不同,我使用 StandScaler() 来标准化值。
该数据集高度不平衡。
train['结果'].value_counts()
0 159730
1 6843
我尝试过 SMOTE 进行过采样。
from imblearn.over_sampling import SMOTE
smt = SMOTE()
X_train, y_train = smt.fit_sample(X_train, y_train)
pd.value_counts(pd.Series(y_train))
1 159730
0 159730
最后,我使用XGBClassifier拟合模型,但是当在 testdata 上尝试这个模型并提交它时,它只给出了 60% 的 roc_auc_score。
请建议如何更好地处理不平衡的数据集。


