본문 바로가기
데이터 분석

KNeiborsClassifier

by JoinInNoetic 2023. 11. 16.

◆ 데이터 준비

    1. 도미 데이터

 

    

    2. 빙어데이터

 

◆ 독립변수, 종속변수 만들기

 

◆ K-NeighborsClassifier 

    ● 임포트 & 객체 생성

from sklearn.neighbors import KNeighorsClassifier

kn = KNeighborsClassifier()

 

    ● 모델 훈련

kn.fit(독립변수, 종속변수)

 

● 정확도 테스트

kn.score(독립변수, 종속변수)

 

※ 그래프로 표시

 

    ● 예측

kn.predict([[독립변수, 종속변수]]))    # 2차원 데이터

 

    ● 훈련된 데이터 확인

    kn._fit_X

    kn._y

 

    ● 하이퍼파라미터 튜닝

        ▶ 파라미터

            n_neighbors=

 

◆ 검증데이터 할당하기 

from sklearn.model_selection import train_test_split

train_input, test_input, train_target, test_target = train_test_split(독립변수, 종속변수,

                                                                                                       random_state=42,    # 랜덤계수 설정

                                                                                                       stratify=fish_target)    # fish_target의 비율에 따라 나누기

 

◆ K-NeighborsClassifier의 주의점

    ▶ 스케일링

        ● 문제 감지 - 그래프상으로는 도미에 가깝지만 결과는 빙어(0)으로 나옴

 

         해결방안 : 스케일링

            * 문제이유 : 변수들의 수치가 달라 수치 거리상으로 빙어에 가깝게 나옴

        ● 표준화(Z-score)

            (샘플의 값 - 평균)/표준편차

          * np.mean(train_input, axis=0)    # array타입 데이터([[XX, YY], [XX, YY]])에서 axis=0이면 XX끼리, YY끼리 계산

                                                                                                                                      axis=1이면 [XX,YY] 별로 계산

 

        ※ 주의사항

             훈련셋에 적용했던 평균과 표준편차로 검증데이터를 표준화해야함

 

        ● 결과

    ★ 사이킷런으로 표준화

    from sklearn.metrics import StandardScaler

    scaler = SatndardScaler()

    scaler.fit_transform(훈련데이터)

    scaler.transform(검증데이터)

 

'데이터 분석' 카테고리의 다른 글

LinearRegression  (0) 2023.11.17
Regressor(KNeighborsRegressor)  (0) 2023.11.16
판다스 데이터 전처리  (0) 2023.11.07
Seaborn  (0) 2023.11.07
Matplotlib 분석(히스토그램, scatter plot, cmap, 파이그래프, boxplot)  (0) 2023.11.06