sklearnの基本的な使用

3386 ワード

前言
sklearnの使用にとって、今はただ1名のパケットマンになりたいだけで、しかしパケットマンは少なくともどのパケットが調整することができることを知らなければならなくて、そのためいくつかのチュートリアルを探して急速に入門したいと思って、1回の検索を通じて、ついに1名の大物が書くチュートリアルと呼ばれて、短いチュートリアルは実用的で、私が迅速にsklearnを理解したいのにとって更に適しています.チュートリアルでsklearnの一般的なチュートリアルを完成した後、強固にするためにこのノートを書き、理解と後日の復習を深める.
汎用テンプレート
インスタンス化
sklearnというライブラリにとっては,オブジェクト向けの考え方で用いられる.各アルゴリズムは1つのオブジェクトであり、あるアルゴリズムを使用して問題を解決するにはimportを入れることができます.この場合、それはオブジェクトにすぎません.インスタンス化してからデータの学習と予測ができます.
from sklearn.neighbors import KNeighborsClassifier

obj = KNeighborsClassifier()

この場合、インスタンスobjはデータトレーニング学習後にデータを予測することができるが、sklearnにはデータがあるが、sklearnにはデータがある.
データの取得
from sklearn import datasets

iris = datasets.load_iris()
x = iris.data
y = iris.target

インポートされたデータはトレーニングセットであり、インスタンスに直接渡されて学習することはできません.インスタンスは、学習を開始するためにフィーチャーとラベルが必要です(このインスタンスはこの場合、監視なし学習ではどのような状況なのかは不明です).ただし、フィーチャーとラベルはdataとtargetラベルに格納されており、簡単に入手できます.
トレーニングと予測の開始
この时、実例があって、データもあって、データの训练と学习を始めることができます
obj.fit(x, y)
y_pred = obj.predict(x[:4, :]
print(y - y_pred)

出力結果:
[ 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 -1  0
 -1  0  0  0  0  0  0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  1
  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0]

精度はかなり高くて、ここですでに1つの機械の学習の基本的な過程を完成しました
訓練セットを分ける
一般に訓練セットを訓練セットとテストセットに分け,アルゴリズムの正確性を検証するのがよい.
from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)

パラメータtest_size=0.3は、トレーニングセットの30%のデータをテストセットとして使用することを表します.現在、トレーニングセットとテストセットがあり、前の手順を繰り返して、トレーニングセットをトレーニングします.
knn = KNeighborsClassifier()
knn.fit(x_train, y_train)
y_pred = knn.predict(x_test)
print(y_pred - y_test)

出力結果:
[ 0  0  0  0  0 -1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0]

ただし、実行するたびに出力結果が異なる場合があります.
パラメータ取得
各学習モデル、すなわち仮定関数について、いくつかのパラメータと予測がある場合もパラメータ設定があるこの2つのパラメータの取得は、インスタンス化されたインスタンスのcoef_によって、intercept_属性とget_params()は、分類にインスタンスがないようないくつかの属性のために、線形回帰のモデルを取得します.
from sklearn import datasets
from sklearn.linear_model import LinearRegression

loaded_data = datasets.load_boston()
data_X = loaded_data.data
data_y = loaded_data.target

model = LinearRegression()
model.fit(data_X, data_y)
y_pred = model.predict(data_X[:4, :])

print(model.coef_)
print(model.intercept_)

出力:
[-1.07170557e-01  4.63952195e-02  2.08602395e-02  2.68856140e+00
 -1.77957587e+01  3.80475246e+00  7.51061703e-04 -1.47575880e+00
  3.05655038e-01 -1.23293463e-02 -9.53463555e-01  9.39251272e-03
 -5.25466633e-01]
36.49110328036133

トレーニング学習時に設定したパラメータを取得します.
print(model.get_params())

# {'n_jobs': 1, 'copy_X': True, 'normalize': False, 'fit_intercept': True}

評価モデル
最もよく使われる評価方法は、1に近いほど効果的です.
print(model.score(data_X, data_y))

# 0.7406077428649427