Windows11 WSL2 Ubuntu Python Ⅱ

scikit-learn インストール

今度は、scikit-learn を使用して行きます。
このライブラリを利用するとデータの標準化とそれを元の値に戻すことが簡単にできます。
scikit-learn は2つのライブラリ scipy と numpy に依存関係があります。
これらの依存関係のあるライブラリがインストールされていないとscikit-learnは使用することができません。
scipy と numpy は TensorFlow をインストールしたときに一緒にインストールされたようで 私の Windows11 WSL2 Ubuntu Miniconda 環境には入っていました。
それでは scikit-learn をインストールします。
WSL2 Ubuntu のターミナルを立ち上げます。
scikit-learn も Miniconda の仮想環境のなかに構築して行きます。
yamada@yama:~$ conda update conda
yamada@yama:~$ conda install scikit-learn
Enter を押してインスト-ルを開始します。
しばらく黙りこくってからコメントが次々と出てきて完了します。
インスト-ル結果を見ます。
$ conda list
でインスト-ルを確認すると
scikit-learn 1.3.0 py310h1128e8f_0
がインストールされました。

scikit-learn 動作確認ファイル作成

scikit-learn を動かしてみます。
Scikit-learn ライブラリに実装されている、 標準化スケール変換メソッド StandardScaler を使ってみます。
Scikit-learnでデータをスケール変換する
が参考になります。

  1. ライブラリインポート

    必要となるライブラリをインポートします。
    NumPy と sklearn の中にある preprocessing モジュールが必要です。
    import numpy as np
    from sklearn import preprocessing
    import matplotlib.pyplot as plt

  2. 標準化したいデータ

    標準化したいデータ x0 を作成します。
    x0 = np.arange(0, 9, 1)
    [0 1 2 3 4 5 6 7 8]
    の9個のデータができました。

  3. データ x0 を2次元に変換。

    残念なことに標準化したいデータが1次元だと標準化してくれません。
    x0 を2次元に変換する必要があるのです。
    preprocessing の標準化メソッド fit_transform は
    2次元配列を縦(axis=0)方向に標準化します。
    # x0 1次元配列を 1×n 次元に変換
    x = x0.reshape(-1,1)

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

    1×9の配列に変換されました。

  4. 標準化

    インスタンスを作成します。
    sscaler = preprocessing.StandardScaler()
    配列 X を標準化します。
    fit_transform メソッドを使用します。
    y = sscaler.fit_transform(x)
    print(y)

  5. 標準化したデータの復元

    標準化したデータを元に戻します。
    inverse_transform メソッドを使用します。
    z = sscaler.inverse_transform(y)
    print(z)

  6. 標準化したデータの再スケール変換

    標準化したデータを再スケール変換します。
    平均(mean) = 5
    標準偏差(scale) = 2
    のデータにスケール変換します。
    mean, scale = 5, 2
    w = y * scale + mean
    print(w)

  7. 標準化の図示

    計算した x,y,w を図示します。
    plt.plot(x,x) # 青
    plt.plot(x,y) # 緑
    plt.plot(x,w) # 橙
    x: 青の線も
    w: 緑の線も
    標準化するとどちらも
    y: 橙の線になります。

scikit-learn 動作確認ファイルまとめ

ここまで説明してきたスクリプトを標準化ファイルにまとめます。


# coding: utf-8
import numpy as np
from sklearn import preprocessing
import matplotlib.pyplot as plt

x0 = np.arange(0, 9, 1)
print(x0)
# 1次元配列は 1×n 次元に変換
x = x0.reshape(-1,1)
print('x の値')
print(x)
print(np.mean(x))
print(np.std(x))

# インスタンスの作成
sscaler = preprocessing.StandardScaler()

# xを標準化
# fit_transform を使用
y = sscaler.fit_transform(x)
print('標準化した値')
print(y)

# 標準化したデータを元に戻す
# inverse_transform を使用
z = sscaler.inverse_transform(y)
print('復元値')
print(z)

# 標準化したデータの再スケール変換
mean, scale = 5, 2
w = y * scale + mean
print('標準化データのスケール変換')
print(w)

# 標準化の図示
plt.plot(x0,x)
plt.plot(x0,y)
plt.plot(x0,w)
plt.show()

# yamada@yama:~$ conda activate
# (base) yamada@yama:~$ python3 public_html/dsc-sci.py

上記ファイルを windows 側で作成します。
上記内容をすべてをコピ-し、Python ファイルを作成します。
自分の PC Windows で TeraPad 等を使用して作成できたらファイル名を dsc-sci.py として保存します。
文字コ-ドは、UTF-8N
BOM なし
改行コ-ドは、LF
です。
保存先はホスト Wimdows OS の
Linux \Ubuntu-22.04 \\wsl.localhost フォルダ
Linux/Ubuntu-22.04/home/yamada/public_html/dsc-sci.py
とします。

引き続き scikit-learn 動作ファイルの確認をしていきます。


  • scikit-learn 動作ファイルの確認
  • 相関係数まとめ に戻る
  • NumPy を使う に戻る
  • ロ-ソク足表示ファイル作成 に戻る
  • pandas インスト-ル に戻る
  • Windows11 WSL2 Ubuntu Python パッケージ に戻る
  • 70VPS に戻る