머신러닝 Scikit-Learn 사용법 요약

Scikit-learn은 머신러닝에 사용되는 지도/비지도 학습 알고리즘을 제공하는 파이썬 라이브러리다. 내부 구조를 살펴보면 NumPy, pandas, Matplotlib과 같이 이미 널리 쓰이는 기술을 기반으로 한다고 한다.

최근에 sklearn 관련 자료를 구글링하면서 치트 시트를 보았는데, 나도 안 쓰면 잊어버릴 수 있으니 한 군데에 기록해놓고자 블로그에 남겨놓는다.

일단 학습 알고리즘은 라이브러리 import 및 모델 생성하고, 피팅, 이후 예측하는 과정으로 정리되어 있다.


Linear Regression

Import and create the model

from sklearn.linear_model import LinearRegression

your_model = LinearRegression()

Fit

your_model.fit(x_training_data, y_training_data)
  • .coef_: contains the coefficients
  • .intercept_: contains the intercept

Predict

predictions = your_model.predict(your_x_data)
  • .score(): returns the coefficient of determination R²

Naive Bayes

Import and create the model

from sklearn.naive_bayes import MultinomialNB

your_model = MultinomialNB()

Fit

your_model.fit(x_training_data, y_training_data)

Predict

# Returns a list of predicted classes - one prediction for every data point
predictions = your_model.predict(your_x_data)

# For every data point, returns a list of probabilities of each class
probabilities = your_model.predict_proba(your_x_data)

K-Nearest Neighbors

Import and create the model

from sklearn.neigbors import KNeighborsClassifier

your_model = KNeighborsClassifier()

Fit

your_model.fit(x_training_data, y_training_data)

Predict

# Returns a list of predicted classes - one prediction for every data point
predictions = your_model.predict(your_x_data)

# For every data point, returns a list of probabilities of each class
probabilities = your_model.predict_proba(your_x_data)

K-Means

Import and create the model

from sklearn.cluster import KMeans

your_model = KMeans(n_clusters=4, init='random')
  • n_clusters: number of clusters to form and number of centroids to generate
  • init: method for initialization
    • k-means++: K-Means++ [default]
    • random: K-Means
  • random_state: the seed used by the random number generator [optional]

Fit

your_model.fit(x_training_data)

Predict

predictions = your_model.predict(your_x_data)

그리고 이건 내가 가진 데이터를 학습 세트와 시험 세트로 분리하는 방법이다. 모델을 구축하고 테스트까지 해보려면 데이터를 분리해놔야 하기 때문에. 답안지 전부를 주고 학습시키면 시험 볼 문제가 없어지니까.

Training Sets and Test Sets

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.8, test_size=0.2)
  • train_size: the proportion of the dataset to include in the train split
  • test_size: the proportion of the dataset to include in the test split
  • random_state: the seed used by the random number generator [optional]

더 자세한 내용은 아래 포스팅을 참고하자.


이번엔 학습시킨 모델이 얼마나 괜찮은 성능을 보여주는지 확인하는 방법이다.

Validating the Model

Import and print accuracy, recall, precision, and F1 score:

from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score

print(accuracy_score(true_labels, guesses))
print(recall_score(true_labels, guesses))
print(precision_score(true_labels, guesses))
print(f1_score(true_labels, guesses))

Import and print the confusion matrix

from sklearn.metrics import confusion_matrix

print(confusion_matrix(true_labels, guesses))

더 자세한 내용은 아래 포스팅을 참고하자.


일단 오늘은 여기까지 기록!

지금 인기 글


댓글 남기기