AI/ML(패스트 캠퍼스) - 하이퍼 파라미터 & 최근접 이웃 알고리즘

 

하이퍼 파라미터와 최근접 이웃 알고리즘에 대한 간단한 설명

Scikit-learn : 분류 - 하이퍼 파라미터(hyper-parameter)

  • 학숩 프로세스를 제어하는 파라미터
  • 사람이 값을 결정해서 입력해준다.
  • 모델 생성 시의 파라미터는 모두 하이퍼 파라미터로 생각하면 됨

# random_state : 하이퍼 파라미터 튜닝 시 고정해야 함 (성능에 영향을 준 파라미터가 어떤 것인지를 알기 위해)
# n_jobs : 사용할 CPU 개수. -1이면 모든 CPU 사용
sgdc = SGDClassifier(penalty='elasticnet', random_state=0, n_jobs=-1)
sgdc.fit(x_train, y_train)

'''출력
SGDClassifier(alpha=0.0001, average=False, class_weight=None,
              early_stopping=False, epsilon=0.1, eta0=0.0, fit_intercept=True,
              l1_ratio=0.15, learning_rate='optimal', loss='hinge',
              max_iter=1000, n_iter_no_change=5, n_jobs=-1,
              penalty='elasticnet', power_t=0.5, random_state=0, shuffle=True,
              tol=0.001, validation_fraction=0.1, verbose=0, warm_start=False)
'''

Scikit-learn : 분류 - KNeighborsClassifier(최근접 이웃 알고리즘)

  • n_neighbors에 지정된 수의 학습 데이터중 많은 수를 차지하는 쪽으로 테스트 데이터를 분류한다.
  • 일반적으로 n_neighbors 파라미터는 동점 확률 문제로 홀수를 사용한다.
  • wikipedia : K-최근접 이웃 알고리즘

img

from sklearn.neighbors import KNeighborsClassifier

knc = KNeighborsClassifier()
knc.fit(x_train, y_train)

'''출력
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
                     metric_params=None, n_jobs=None, n_neighbors=5, p=2,
                     weights='uniform')
'''

knc_predict = knc.predict(x_valid)
(knc_predict == y_valid).mean()

'''출력
0.9473684210526315
'''

knc = KNeighborsClassifier(n_neighbors=15)
knc.fit(x_train, y_train)

'''출력
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
                     metric_params=None, n_jobs=None, n_neighbors=15, p=2,
                     weights='uniform')
'''

knc_predict = knc.predict(x_valid)
(knc_predict == y_valid).mean()

'''출력
0.9473684210526315
'''

[]: https://ko.wikipedia.org/wiki/K-최근접_이웃_알고리즘