Just Fighting

로지스틱 회귀분석을 이용한 데이터 분석 본문

ML & DL

로지스틱 회귀분석을 이용한 데이터 분석

yennle 2022. 2. 9. 23:50
728x90

로지스틱 회귀분석은 반응변수

"성공", "실패"로 나타나는 이항변수인 경우 사용하는 분석법이다.

 

로지스틱 회귀모형은 아래 식과 같이 표현된다.

 

 

파이썬에서 로지스틱 회귀모형을 만들때는

아래 이 코드를 사용하면 된다.

from sklearn.linear_model import LogisticRegression

X = 독립변수
y = 종속변수
X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X,y)

model = LogisticRegression()
model.fit(X_train, y_train)

 

 

< 사용 예시 >

사용한 데이터는 아래 사진과 같다. 

이 데이터를 가공해 로지스틱 회귀분석에 사용할 수 있도록 했다.

먼저 계약건수가 1이상이면 1, 아니면 0으로 변수 값을 임의로 변경했다.

변경한 데이터는 아래와 같다.

종속변수는 '계약건수_0'으로 이번달 계약여부를 의미한다.

독립변수로는 계약건수_0을 제외한 모든 변수이다.

'계약건수_(번호)'는 1-5개월 전의 계약여부를 나타내는 변수이며, 

명목형 변수인 '계약방법'과 '우수제품여부'의 더미변수를 생성했다.

 

 

더미변수를 만드는 방법은 이 코드를 사용하면 된다.

pd.get_dummies()
#예시
model_data = pd.get_dummies(model_data.iloc[:,3:])

 

*** 22/05/06 추가

drop_first를 사용하면 첫번째 컬럼은 삭제된다.

model_data = pd.get_dummies(model_data.iloc[:,3:], drop_first=True)

***

 

 

로지스틱 회귀분석을 해보자.

# 로지스틱 회귀분석

from sklearn.linear_model import LogisticRegression

X = model_data2.iloc[:,1:]
y = model_data2["계약건수_0"]
X_train, X_test, y_train, y_test = sklearn.model_selection.train_test_split(X,y)

model2 = LogisticRegression()
model2.fit(X_train, y_train)
# 테스트 데이터를 이용한 정확도

model2.score(X_test, y_test)
# coeffitient 값

coef = pd.DataFrame({"feature_names":X.columns, "coefficient":model2.coef_[0]})
coef
# 새로운 테스트데이터

testdata = pd.DataFrame([[1,1,1,1,0,0,1,0,0,1,0]])

print(model2.predict(testdata))
print(model2.predict_proba(testdata))

 

새로운 테스트 데이터의 예측값은 1, 즉 계약이 있을 것이라고 예측되었으며,

계약이 없을 확률은 20%, 계약이 있을 확률은 79.6% 로 예상되었다.

 

 

최종 모델과 해석이 궁금하다면 ▼

2022.02.16 - [Statistics/Python] - 로지스틱 회귀분석을 이용한 데이터 분석 2

728x90
Comments