-
multiple logistic regression 실습아가개발자/머신러닝 2020. 10. 9. 02:51
multiple logistic regression(다중 로지스틱 회귀): Y값이 범주형 숫자로 된 데이터에 회귀를 적용하는 모델
범주형 숫자로 된 데이터 즉, 분류 문제는 Linear regression으로는 문제를 해결할 수 없지만 Logistic regression을 적용하여 회귀로 문제를 해결할 수 있다.
본 포스팅에서 실습할 문제는 wine dataset을 이용하여 wine의 종류를 분류하는 문제를 풀어볼 것이다. (사용한 라이브러리의 매뉴얼은 접은글에 첨부하였음)
데이터셋 로드
wine 데이터는 sklearn을 이용하여 불러올 수 있다. 왠만하면 sklearn.datasets. 라이브러리를 이용하여 학습에 자주 쓰이는 유명한 데이터는 다운받을 수 있다.
import torch import pandas as pd import numpy as np from sklearn.datasets import load_wine data_wine = load_wine() data_wine.feature_names #데이터의 column명을 읽어와서, 데이터 프레임의 column명으로 만들어줌 data_x= pd.DataFrame(data = data_wine.data, columns=['alcohol', 'malic_acid', 'ash', 'alcalinity_of_ash', 'magnesium', 'total_phenols', 'flavanoids', 'nonflavanoid_phenols', 'proanthocyanins', 'color_intensity', 'hue', 'od280/od315_of_diluted_wines', 'proline']) data_y = pd.DataFrame(data= data_wine.target) #target으로 결과값에 해당하는 y데이터를 만들어줌
학습데이터/테스트 데이터 나누기
본 실습에 사용된 모델이 얼마나 좋은 성능을 내는지 알아보기 위해 학습데이터와 테스트 데이터를 나누어 성능평가를 할 예정이다.
더보기<sklearn.model_selection.train_test_split>
from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(data_x, data_y, test_size = 0.3, random_state = 1) # 30%를 테스트 데이터로 사용
모델 학습 & 평가
해당 모델은 Logistic regression을 사용할 것이기 때문에 싸이킷런에서 라이브러리를 import하여 학습 시킨다.
더보기*모델 학습*
<sklearn.linear_model.LogisticRegression>
*모델 평가*
<sklearn.metrics.accuracy_score>
#학습 from sklearn.linear_model import LogisticRegression l2 = LogisticRegression(penalty= 'l2', C = 0.5, solver= 'saga') clf = l2.fit(x_train, y_train) pred = l2.predict(x_test) #평가 from sklearn.metrics import accuracy_score print(accuracy_score(y_test, pred))
penalty(규제화 방법) : L1, L2C(규제강도): 1/λsolver // 설명 추가 예정. .'아가개발자 > 머신러닝' 카테고리의 다른 글
선형 판별 분석(LDA)/ 이차 판별 분석(QDA) (0) 2020.10.13 판별 분석 (Discriminant Analysis) (0) 2020.10.12 로지스틱 회귀-Logistic regression (0) 2020.09.28 다중선형회귀 - Multiple Linear Regression (0) 2020.09.28 KNN classification - iris (0) 2020.09.18