Огромная и странная ошибка в scikit-learn в Python Logisti c Regression? - PullRequest
0 голосов
/ 07 марта 2020

Ниже приведены операции, относящиеся к Logisti c Регрессия в Python scikit-learn

Я даю вам самый важный пример кода:

predictions = logistic_regression.predict(X_test)
prediction=logistic_regression.predict_proba(X_test)[:,:]
prediction=pd.DataFrame(data=predictions, 
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])
prediction.head(10)

А вчера у меня был результат этот код, который соответствовал моим ожиданиям: (не то же самое название таблицы, но тот же самый результат)

введите описание изображения здесь

Но сегодня я абсолютно не Я имею представление, почему, когда я хотел снова запустить этот код, у меня появляется ошибка:

ValueError: Shape of passed values is (300, 1), indices imply (300, 2)

Как возможно, что вчера это работало, а сегодня нет? Что я могу сделать ? Экран полной ошибки ниже:

введите описание изображения здесь

образец прогнозов выглядит так:

print(predictions)

[1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

и я не хочу иметь 1 или 0 в таблице, которую я хотел бы иметь в процентах вероятности 1 или 0, как в примере на экране

Посмотрите на ту же таблицу в конце прогноза из-под источника , есть тот же код, и он работает: * 1 028 *https://www.kaggle.com/neisha/heart-disease-prediction-using-logistic-regression

1 Ответ

0 голосов
/ 07 марта 2020

Я думаю, что ошибка возникает из-за того, что прогноз имеет только одну строку, и у вас есть два имени столбца:

prediction=pd.DataFrame(data=predictions, 
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])

На основе кодов, которые вы предоставляете:

y_pred_prob=logreg.predict_proba(x_test)[:,:]
y_pred_prob_df=pd.DataFrame(data=y_pred_prob, columns=['Prob of no heart disease (0)','Prob of Heart Disease (1)'])
y_pred_prob_df.head()

I думаю, вам следует изменить код на:

prediction_df = pd.DataFrame(data=prediction,  
                         columns=['Prob of Bad credit (0)','Prob of Good credit (1)'])

Будьте осторожны, это должен быть прогноз, а не прогноз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...