(Scikit-learn) K-최근접 이웃(KNN K-nearest Neighbors)

dcafplz·2022년 11월 13일
0

Scikit-learn

목록 보기
5/10
  1. 정의

    데이터들 간의 거리를 측정해 가장 가까운 K개의 데이터셋의 레이블을 참조해 분류/예측한다.

  2. 거리 측정 방식

    • 유클리디안 거리(Euclidean_distance)
      일반적인 직선거리
    • 맨하탄 거리 (Manhattan distance)
      |𝑎1−𝑏1|+|𝑎2−𝑏2|
  3. 기본 구현

    from sklearn.neighbors import KNeighborsClassifier
    
    knn = KNeighborsClassifier(n_neighbors=k)
    knn.fit(x_train_scaled, y_train)
  4. Pipeline, GridSearch를 통한 구현

    from sklearn.pipeline import Pipeline
    from sklearn.model_selection import GridSearchCV
    
    pipeline = Pipeline([('scaler', StandardScaler()),
                        ('knn', KNeighborsClassifier())])
    
    params = {
        'knn__n_neighbors':range(1,11),
        'knn__p':[1,2]
    }
    
    gs = GridSearchCV(pipeline,
                     param_grid=params,
                     scoring='accuracy',
                     cv=4,
                     n_jobs=-1)
    
    gs.fit(x_train, y_train)

0개의 댓글