我目前正在尝试使用sklearn将国际人口停滞与幸福联系起来。我已经准备并清理了大熊猫的数据集,但是由于某些原因,我尝试的任何模型都无法训练。我的数据列之一是国家,因此我使用了pandas get_dummies函数将字符串输入模型。我的训练和测试变量的形状如下:(617,67),(617,),(151,67),(151,)。
rf_class = RandomForestClassifier(n_estimators=5)
log_class = LogisticRegression()
svm_class = SVC(kernel='rbf', C=1E11, verbose=False)
def run(model, model_name='this model', trainX=trainX, trainY=trainY, testX=testX, testY=testY):
# print(cross_val_score(model, trainX, trainY, scoring='accuracy', cv=10))
accuracy = cross_val_score(model, trainX, trainY,
scoring='accuracy', cv=2).mean() * 100
model.fit(trainX, trainY)
testAccuracy = model.score(testX, testY)
print("Training accuracy of "+model_name+" is: ", accuracy)
print("Testing accuracy of "+model_name+" is: ", testAccuracy*100)
print('\n')
# run(rf_class,'log')
model = log_class
model.fit(trainX,trainY)
perm = PermutationImportance(model, random_state=1).fit(testX, testY)
eli5.show_weights(perm, feature_names=feature_names)
我的数据集太小而无法训练吗?对于模型来说,假人太多了吗?我们将不胜感激。