Модели Sklearn возвращают нулевые веса для небольшого набора данных - PullRequest
1 голос
/ 24 апреля 2019

В настоящее время я пытаюсь использовать 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)

Является ли мой набор данных слишком маленьким, чтобытренироваться?Не слишком ли много манекенов для моделей?Любая помощь, которая может быть предложена, приветствуется.

...