제약 기업 연구자가 scikit-learn에 대해 요약했습니다.

소개



이 섹션에서는 기계 학습 라이브러리 scikit-learn의 기본 사용법을 설명합니다.
기계 학습 알고리즘에 대해서는 다른 기사에서 다룰 예정입니다.
Python3 시스템의 사용을 가정합니다.

라이브러리 로드



다른 라이브러리와 마찬가지로, import 로 읽을 수 있습니다만, 아래에도 쓰고 있는 대로 실제로 사용할 때는 importfrom 로 읽어들이는 것이 많아집니다.

scikit-learn_1.py
import sklearn

데이터 세트



scikit-learn은 기계 학습에 사용할 수 있는 다양한 데이터 세트를 제공합니다.
어떤 데이터 세트가 있는지는 다음 코드를 실행하면 알 수 있습니다.

scikit-learn_2.py
import sklearn.datasets
[s for s in dir(sklearn.datasets) if s.startswith('load_')]

데이터 세트 준비



여기에서는, 상기의 데이터 세트 중에서 iris (아야메)의 데이터 세트를 사용하는 것으로 합니다.
가쿠의 길이로부터 가크의 폭을 선형 회귀를 사용해 예측하는 것을 생각합니다.
우선 데이터 아래 준비입니다.

scikit-learn_3.py
from sklearn.datasets import load_iris
import pandas as pd


data_iris = load_iris()
X = pd.DataFrame(data_iris.data, columns=data_iris.feature_names)
x = X.iloc[:, 0] # アヤメのガクの長さ
y = X.iloc[:, 1] # アヤメのガクの幅

기계 학습 (여기에서는 선형 회귀)



데이터 준비가 끝나면 선형 회귀를 수행합니다.

scikit-learn_4.py
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
import matplotlib.pyplot as plt
%matplotlib inline


X_train = [[5.1], [4.9], [4.7], [4.6], [5.0], [5.4], [4.6], [5.0], [4.4], [4.9]]
y_train = [3.5, 3.0, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1]

model = LinearRegression()
model.fit(X_train, y_train) # 線形回帰モデルを作成

print(model.coef_) # 傾き
print(model.intercept_) # 切片

X_test = [[5.4], [4.8], [4.8], [4.3], [5.8]]
y_test = [3.7, 3.4, 3.0, 3.0, 4.0]

y_pred = model.predict(X_test) # 予測
print(y_pred)

fig, ax = plt.subplots()
ax.scatter(X_test, y_test, label='Test set') # 実測値の散布図
ax.plot(X_test, y_pred, label = 'Regression curve') # 回帰直線
ax.legend()
plt.show() # 予測に使ったデータを図示
plt.savefig('scikit-learn_4.png')

print(r2_score(y_test, y_pred)) # R^2値

테스트용 데이터와 회귀 직선을 나타내면 다음과 같이 됩니다.



마지막 R^2 값은 모델에 맞는 상태를 나타내는 것입니다만, 회귀인지 분류인지, 그 외 목적에 따라 보는 파라미터는 바뀝니다.

요약



여기에서는 scikit-learn의 기본 부분에 대해 설명했습니다.
데이터 세트의 준비, 데이터의 전처리, 예측 모델의 작성, 모델의 검증이라는 흐름을 아무렇지도 않게 유지해 두면 좋을 것입니다.

참고 자료・링크



지금도 들을 수 없다! 기계 학습이란 무엇입니까? 왜 파이썬이 사용되는가?

좋은 웹페이지 즐겨찾기