Python 3 – sklearnで学習するためのデータを準備する方法

方法 Scikit-Learnで学習するためのデータを準備する

sci-kit-learnを使用して学習アルゴリズムを実装する場合、最初に行う必要があるのは、データを準備することです。

これにより、使用することを決定した学習アルゴリズムに問題の構造が示されます。

関連コース: Python機械学習コース

これに対する唯一の障壁は、処理されるデータについて異なる仮定を開始するための異なるアルゴリズムの必要性であり、異なる変換が必要になる場合があります。

sci-kit-learnで学習するためのデータの準備には、4つの実証済みのステップがあります。 それらが含まれます:

  1. データを再スケーリングします
  2. データの標準化
  3. データを正規化する
  4. データをバイナリに変換する

データの準備

データを再スケーリングします

特にデータが異なるスケールで構成されている場合にデータの属性を再スケーリングします。これにより、複数の学習アルゴリズムがデータの再スケーリングプロセスの恩恵を受けて、同じスケールで確実に発生するようになります。

このプロセスは、0と1の再スケーリングされた範囲を持つ属性を使用した呼び出し可能な名詞化です。これにより、最急降下法のコアを形成する最適化アルゴリズムの存在が保証されます。これは、学習アルゴリズムの試験です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import pandas
import scipy
import numpy
from sklearn.preprocessing import MinMaxScaler


X = [ [110, 200], [120, 800], [310, 400], [140, 900], [510, 200], [653, 400] ,[310, 880] ]


scaler = MinMaxScaler(feature_range=(0, 1))
rescaledX = scaler.fit_transform(X)


numpy.set_printoptions(precision=2)
print(rescaledX[0:6,:])

再スケーリングされた値は0から1の間になります。

1
2
3
4
5
6
[[0.   0.  ]
[0.02 0.86]
[0.37 0.29]
[0.06 1. ]
[0.74 0. ]
[1. 0.29]]

また、ニュートラルネットワークの重み付け、回帰、およびK最近傍法などの距離測定を行うすべてのアルゴリズムを考慮したアルゴリズムでも役立ちます。

データの標準化

この手法は、ガウス分布を使用した属性の変換に効果的です。

ガウス分布は、標準偏差が1に設定された平均0を使用します。ロジスティック回帰、線形回帰、および線形識別分析は、再スケーリングされたデータをより有効に活用する入力変数としてガウス分布を使用する場合に最適です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

from sklearn.preprocessing import StandardScaler
import pandas
import numpy


X = [ [110, 200], [120, 800], [310, 400], [140, 900], [510, 200], [653, 400] ,[310, 880] ]


scaler = StandardScaler().fit(X)
rescaledX = scaler.transform(X)


numpy.set_printoptions(precision=3)
print(rescaledX[0:6,:])

スケーリングされた値:

1
2
3
4
5
6
[[-1.02  -1.178]
[-0.968 0.901]
[ 0.013 -0.485]
[-0.865 1.247]
[ 1.045 -1.178]
[ 1.783 -0.485]]

データを正規化する

Scikit-learnのデータを正規化するには、各観測値を再スケーリングして、長さ1(線形代数の単位形式)を想定する必要があります。

ノーマライザークラスのソフトウェアは、Scikit-learnを使用してPythonでデータを正規化するのに最適です。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

from sklearn.preprocessing import Normalizer
import pandas
import numpy


X = [ [110, 200], [120, 800], [310, 400], [140, 900], [510, 200], [653, 400] ,[310, 880] ]


scaler = Normalizer().fit(X)
normalizedX = scaler.transform(X)


numpy.set_printoptions(precision=2)
print(normalizedX[0:6,:])

正規化された値は次のとおりです。

1
2
3
4
5
6
[[0.48 0.88]
[0.15 0.99]
[0.61 0.79]
[0.15 0.99]
[0.93 0.37]
[0.85 0.52]]

スケールが変化するスパースデータセットは、K最近傍法のような距離測定を使用したアルゴリズムの前処理から特に恩恵を受けます。 典型的な例はニュートラルネットワークです。 データでバイナリを作成する

バイナリデータ変換

これは、0以下の1としてマークされたバイナリしきい値で実現できます。これは、鮮明な値を持つ確率で役立ちます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

from sklearn.preprocessing import Binarizer
import pandas
import numpy


X = [ [110, 200], [120, 800], [310, 400], [140, 900], [510, 200], [653, 400] ,[310, 880] ]


binarizer = Binarizer(threshold=500).fit(X)
binaryX = binarizer.transform(X)


numpy.set_printoptions(precision=1)
print(binaryX[0:6,:])

しきい値は、どの値が0または1になるかを決定するため、非常に重要です。

1
2
3
4
5
6
[[0 0]
[0 1]
[0 0]
[0 1]
[1 0]
[1 0]]

また、機能エンジニアリングに機能を追加する上で、その位置は非常に重要です。 ここまでで、Scikit-learnを使用した機械学習用のデータの準備に関連する手順に精通している必要があります。

関係する4つのステップは次のとおりです。

  1. データの再スケーリング
  2. データの標準化
  3. データの正規化
  4. データでバイナリを作成します。

機械学習を初めて使用する場合は、 それなら私はこの本を強くお勧めします。

例と演習をダウンロードする

Hope this helps!

Source link