Я использую функции логистической регрессии Scikit-Learn и Seaborn - первый для извлечения информации о модели (т. Е. Log-odds, параметры и т. Д.), А второй - для построения результирующей сигмоидальной кривой, соответствующей оценкам вероятности. .
Может быть, моя интуиция неверна в том, как интерпретировать этот сюжет, но, похоже, я не получаю результатов, как ожидал:
#Build and visualize a simple logistic regression
ap_X = ap[['TOEFL Score']].values
ap_y = ap['Chance of Admit'].values
ap_lr = LogisticRegression()
ap_lr.fit(ap_X, ap_y)
def ap_log_regplot(ap_X, ap_y):
plt.figure(figsize=(15,10))
sns.regplot(ap_X, ap_y, logistic=True, color='green')
return None
ap_log_regplot(ap_X, ap_y)
plt.xlabel('TOEFL Score')
plt.ylabel('Probability')
plt.title('Logistic Regression: Probability of High Chance by TOEFL Score')
plt.show
Кажется, все в порядке, но затем я пытаюсь использовать функцию predict_proba
в Scikit-Learn, чтобы найти вероятности Chance to Admit
при некотором произвольном значении для TOEFL Score
(в данном случае 108, 104 и 112):
eight = ap_lr.predict_proba(108)[:, 1]
four = ap_lr.predict_proba(104)[:, 1]
twelve = ap_lr.predict_proba(112)[:, 1]
print(eight, four, twelve)
Где я могу получить:
[0.49939019] [0.44665597] [0.55213799]
Мне кажется, это указывает на то, что оценка TOEFL 112 дает человеку 55% шанс быть принятым на основании этого набора данных. Если бы я продлил вертикальную линию от 112 по оси x до сигмовидной кривой, я бы ожидал пересечение на отметке 0,90.
Правильно ли я интерпретирую / моделирую это? Я понимаю, что использую два разных пакета для расчета коэффициентов модели, но с другой моделью, использующей другой набор данных, мне кажется, что я получаю правильные прогнозы, которые соответствуют логистической кривой.
Есть идеи, или я полностью моделирую / интерпретирую это неточно?