🐍 Python & library/Scikit-Learn

[Scikit-Learn] 주요 Classifier와 Parameter 정리

복만 2021. 9. 24. 16:05

- 목차 -

- SGDClassifier (Linear SGD Classifier)

- NuSVC (SVM with nonlinear kernel)

- KNeighborsCLassifier (KNN Classifier)

- MLPClssifier (MLP)

 

 


 

I. SGDClassifier

from sklearn.linear_model import SGDClassifier
model = SGDClassifier(loss='hinge', penalty='l2', alpha=0.0001, max_iter=1000)

 

SGD training을 이용한 SGD Classifier이다.

 

주요 Parameters:

- loss: 'hinge', 'log', 'modified_huber', 'squared_hinge', 'perceptron', 'squared_loss', 'huber', 'epsilon_insensitive', 'squared_epsilon_insensitive' 를 사용할 수 있다.

- penalty: regularization에 사용할 penalty term의 종류. 'l1', 'l2', 'elasticnet'을 사용할 수 있다.

alpha: regularization term에 곱해줄 가중치

max_iter: training iteration을 수행할 횟수 (=epoch)

 


 

II. NuSVC

from sklearn.svm import NuSVC
model = NuSVC(kernel='rbf', degree=3)

 

Non-linear SVM Classifier이다.

 

주요 Parameters:

- kernel: Model에 사용할 kernel의 종류를 선택한다. 'linear', 'poly', 'rbf', 'sigmoid', 'precomputed'를 사용할 수 있다. 

degree: kernel을 'poly'로 했을 때 kernel의 degree를 설정한다. 다른 kernel을 설정 시 무시된다.

 


 

III. KNeighborsClassifier

from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=5, algorithm='auto', leaf_size=30, metric='minkowski')

 

kNN vote를 사용한 Classifier이다.

 

주요 Parameters:

n_neighbors: kNN algorithm에 이용할 neighbor의 개수. Class의 개수로 설정하면 된다.

- algorithm: nearest neighbor을 계산할 때 사용할 algorithm의 종류. 'ball_tree', 'kd_tree', 'brute', 'auto'를 사용할 수 있으며 'auto'는 자동으로 가장 적합한 algorithm을 찾아준다.

leaf_size: BallTree나 KDTree 사용 시에 설정할 leaf size. Algorithm의 속도나 memory 크기, 모델의 성능에 영향을 미친다.

- metric: distance metric의 종류. 'euclidean', 'manhattan', 'chebyshev', 'minkowsk' 등을 사용할 수 있으며 전체 metric에 대한 설명은 여기에서 확인할 수 있다.

 


 

III. MLPClassifier

from sklearn.neural_network import MLPClassifier
model = MLPClassifier(hidden_layer_sizes=(100,), activation='relu', solver='adam', batch_size='auto', learning_rate='constant', max_iter=200)

 

대부분의 task에서 성능이 가장 좋은 MLP를 이용한 Classifier이다.

 

주요 Parameters:

hidden_layer_sizes: hidden layer의 크기를 설정한다. tuple로 전달할 수 있으며, tuple의 i번째 element가 i번째 hidden layer의 크기가 된다.

activation: hidden layer에 사용할 activation function의 종류. 'identity', 'logistic', 'tanh', 'relu'를 사용할 수 있다.

solver: optimizer의 종류. 'lbfgs', 'sgd', 'adam'을 사용할 수 있다.

batch_size: mini-batch 크기를 설정한다

learning_rate: learning rate scheduler의 종류를 설정한다. 'constant', 'invscaling', 'adaptive'를 사용할 수 있다.

max_iter: training iteration을 수행할 횟수 (=epoch)

반응형