- 목차 -
- 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)
'🐍 Python & library > Scikit-Learn' 카테고리의 다른 글
XGBoost GPU 로 가속하기 (0) | 2022.04.13 |
---|---|
[Scikit-Learn] Multiclass ROC Curve 그리기 (0) | 2021.09.28 |
[Scikit-learn] Logistic Regression 정리, 예제 (0) | 2021.04.04 |