Just Fighting
로지스틱 회귀분석을 이용한 데이터 분석 본문
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% 로 예상되었다.
최종 모델과 해석이 궁금하다면 ▼
728x90
'ML & DL' 카테고리의 다른 글
LSTM을 이용한 텍스트 생성 연습(1) - 데이터 전처리 (0) | 2022.06.01 |
---|---|
[개념 정리] 의사 결정 나무 (0) | 2022.05.03 |
RNN을 이용한 텍스트 생성 연습 (0) | 2022.04.07 |
로지스틱 회귀분석을 이용한 데이터 분석 2 (0) | 2022.02.16 |
상관계수와 회귀직선을 이용한 데이터 분석 (단순회귀) (0) | 2022.01.28 |
Comments