작성한 질문수
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
해결된 질문
작성
·
214
0
statsmodels를 사용한 회귀계수와 logisticregression을 사용한 회귀계수의 값이 다른데..
무었을 잘못했는지 잘 모르겠습니다.. 원래 다른건가요?
답변 1
정규화라던지 내부 알고리즘 차이가 있는 것 같아요! -> 실제 시험이라면 개인적인 생각으로는 틀렸다라고 말하긴 어려울 것 같습니다.일단 R과 같은 결과인 것을 알려드리고 있어요 statsmodels 결과값이 같습니다.
이런 차이가 나는데.. 혹시 제가 로지스틱리그레션을 잘못 적용한건가요?
import pandas as pd
df = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv")
from statsmodels.formula.api import logit
model = logit('Survived ~ Pclass + C(Gender) + SibSp + Parch', data=df).fit()
# print(model.summary())
print(round(model.params['Parch'], 3)) # -0.05
X = df[['Gender', 'SibSp', 'Parch', 'Fare']].copy()
y = df['Survived'].copy()
# print(X.isnull().sum())
# print(y.isnull().sum())
X['Fare'] = X['Fare'].fillna(X['Fare'].median())
X['Gender'] = X['Gender'].astype('category').cat.codes
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
lr.fit(X, y)
print(round(lr.coef_[0, 2], 3)) # -0.186
이런 차이가 나는데.. 혹시 제가 로지스틱리그레션을 잘못 적용한건가요?
import pandas as pd
df = pd.read_csv("/kaggle/input/bigdatacertificationkr/Titanic.csv")
from statsmodels.formula.api import logit
model = logit('Survived ~ Pclass + C(Gender) + SibSp + Parch', data=df).fit()
# print(model.summary())
print(round(model.params['Parch'], 3)) # -0.05
X = df[['Gender', 'SibSp', 'Parch', 'Fare']].copy()
y = df['Survived'].copy()
# print(X.isnull().sum())
# print(y.isnull().sum())
X['Fare'] = X['Fare'].fillna(X['Fare'].median())
# print(X.isnull().sum())
X['Gender'] = X['Gender'].astype('category').cat.codes
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
lr.fit(X, y)
print(round(lr.coef_[0, 2], 3)) # -0.186