-
선형 판별 분석(LDA) 실습아가개발자/머신러닝 2020. 10. 14. 15:38
Linear Discriminant Analysis(LDA): 범주화된 클래스들의 표본들이 어떻게 분포되어 있는지를 파악하여 결정경계를 분석하여 새로운 표본이 어느 클래스에 해당하는지 결정하는 방법론
판별 분석 (Discriminant Analysis)개념 포스트
선형 판별 분석(LDA)/ 이차 판별 분석(QDA)개념 포스트
본 포스팅에서 실습할 문제는 iris dataset을 이용하여 iris의 품종을 분류하는 문제를 풀어볼 것이다. (사용한 라이브러리의 매뉴얼은 접은글에 첨부하였음)
데이터 불러오기
앞서 여러실습에서 살펴보았듯이 싸이킷런에 학습에서 사용되는 많은 데이터셋을 불러올 수 있다.
더보기<sklearn.datasets.load_iris>
manual: scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html#sklearn.datasets.load_iris
import torch import pandas as pd import numpy as np from sklearn.datasets import load_iris iris = load_iris() ################# iris.feature_names() 를 이용하여 컬럼명 확인하기 ################# data_x = pd.DataFrame(data = iris.data, columns=['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']) data_y = pd.DataFrame(data = iris.target)
학습데이터/테스트 데이터 나누기
불러온 데이터으로 모델을 학습 시킨 후 성능을 알아보기 위해 학습/테스트 데이터를 나누어서 학습 데이터로 학습을 시키고 예측 데이터와 테스트 데이터를 비교하여 성능을 확인해 볼 예정이다.
더보기<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)
모델 학습 & 평가
오늘 실습에서는 LDA학습을 시켜 줄 예정이기 때문에 싸이킷 런에서 LDA 라이브러리를 임포트하여 사용해준다.
더보기<sklearn.discriminant_analysis.LinearDiscriminantAnalysis>
<sklearn.metrics.accuracy_score>
#모델 학습 from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LD LDA = LD(store_covariance=True) LDA.fit(x_train, y_train) pred = LDA.predict(x_test) #모델 평가 from sklearn.metrics import accuracy_score print(accuracy_score(y_test, pred))
*LDA의 파라미터
solver: 원하는 방법론을 선택할 수 있다. (defalut: 'svd')
n_components: 차원의 값을 설정해 줄 수 있다. (사용할 축의 차원)
store_covariance: 판별함수에서 추정하고자 하는 모수 → 모수를 나중에 그래프로 찍어보기 위해서 True값으로 설정해줄 것
'아가개발자 > 머신러닝' 카테고리의 다른 글
서포트 벡터 머신 (SVM) (0) 2020.12.03 의사결정나무 - Decision Tree (0) 2020.10.20 선형 판별 분석(LDA)/ 이차 판별 분석(QDA) (0) 2020.10.13 판별 분석 (Discriminant Analysis) (0) 2020.10.12 multiple logistic regression 실습 (0) 2020.10.09