データ サイエンスと機械学習に不可欠な線形代数

ソースノード: 1852280

ベンジャミン・O・タヨによる画像。

線形代数は、データ サイエンスと機械学習で非常に役立つ数学の一分野です。 線形代数は、機械学習において最も重要な数学スキルです。 ほとんどの機械学習モデルは行列形式で表現できます。 データセット自体は行列として表されることがよくあります。 線形代数は、データの前処理、データ変換、モデルの評価に使用されます。 理解しておく必要があるトピックは次のとおりです。

  • ベクトル
  • 行列
  • 行列の転置
  • 逆行列
  • 行列式
  • マトリックスのトレース
  • ドット積
  • 固有値
  • 固有ベクトル

この記事では、ハイテク株データセットを使用したデータ サイエンスと機械学習における線形代数の応用について説明します。 こちら.

1. データ前処理のための線形代数

 まず、データの前処理で線形代数がどのように使用されるかを説明します。

1.1 線形代数に必要なライブラリをインポートする

numpy を np としてインポート pandas を pd としてインポート pylab をインポート matplotlib.pyplot を plt としてインポート seaborn を sns としてインポート 

 

1.2 データセットの読み取りと表示機能

data = pd.read_csv("tech-stocks-04-2021.csv") data.head() 

 1。 16年2021月の最初のXNUMX日間の選択された株価の株価。

print(data.shape) 出力 = (11,5) 

   データ.形状 関数を使用すると、データセットのサイズを知ることができます。 この場合、データセットには 5 つの特徴 (日付、AAPL、TSLA、GOOGL、AMZN) があり、各特徴には 11 個の観測値があります。 日付 2021年16月の取引日(XNUMX月XNUMX日まで)を指します。 AAPL、TSLA、GOOGL、AMZNは、それぞれApple、Tesla、Google、Amazonの株価の終値です。

1.3 データの視覚化

データの視覚化を実行するには、以下を定義する必要があります。 列行列 特徴を視覚化するには:

x = データ['日付'] y = データ['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['1月8日','15月2021日','14月XNUMX日']) plt.title('XNUMX年XNUMX月のテスラ株価(ドル)',size=XNUMX) plt.show() 

フィギュア 1。 16年2021月最初のXNUMX日間のテスラ株価。

2. 共分散行列

  共分散行列 は、データ サイエンスと機械学習において最も重要な行列の XNUMX つです。 フィーチャ間の共同動き (相関関係) に関する情報が提供されます。 次の特徴行列があるとします。 4 機能と に示すような観察結果 テーブル2:

テーブル2。 4 つの変数と n 個の観測値を含む特徴行列。

特徴間の相関関係を視覚化するために、散布ペアプロットを生成できます。

Cols=data.columns[1:5] print(cols) 出力 = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='object') sns.pairplot(data[cols] 、高さ=3.0) 

図2。 選択したハイテク株の散布ペアプロット。

特徴間の相関の度合い (多重共線性) を定量化するには、次の方程式を使用して共分散行列を計算します。

ここで、 と はそれぞれ feature の平均と標準偏差です。 この方程式は、特徴が標準化されると、共分散行列は単に ドット積 機能の間。

行列形式では、共分散行列は 4 x 4 の実対称行列として表現できます。

この行列は、以下を実行することで対角化できます。 ユニタリ変換、主成分分析 (PCA) 変換とも呼ばれ、次の結果が得られます。

から マトリックスの跡 ユニタリ変換の下で不変のままであるため、対角行列の固有値の合計が特徴 X に含まれる分散の合計に等しいことが観察されます。1、 バツ2、 バツ3、およびX4.

2.1 ハイテク株の共分散行列の計算

sklearn.preprocessing から import StandardScaler stdsc = StandardScaler() X_std = stdsc.fit_transform(data[cols].iloc[:,range(0,4)].values) cov_mat = np.cov(X_std.T,bias= True) 

これは、 転置 標準化された行列の。

2.2 共分散行列の可視化

plt.figure(figsize=(8,8)) sns.set(font_scale=1.2) hm = sns.heatmap(cov_mat, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={ 'size': 12}, yticklabels=cols, xticklabels=cols) plt.title('相関係数を示す共分散行列') plt.tight_layout() plt.show() 

図3。 選択したハイテク株の共分散行列プロット。

図 3 から、AAPL は GOOGL および AMZN と強く相関し、TSLA とは弱い相関があることがわかります。 TSLA は一般に AAPL、GOOGL、AMZN と弱い相関関係にありますが、AAPL、GOOGL、AMZN は相互に強い相関関係があります。

2.3 共分散行列の固有値を計算する

np.linalg.eigvals(cov_mat) 出力 = array([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) 出力 = 4.000000000000006 np.trace(cov_ mat) 出力 = 4.000000000000001 

共分散行列のトレースが予想どおり固有値の合計に等しいことが観察されます。

2.4 累積分散を計算する

行列のトレースはユニタリ変換の下では不変のままであるため、対角行列の固有値の合計が特徴 X に含まれる分散の合計に等しいことが観察されます。1、 バツ2、 バツ3、およびX4。 したがって、次の量を定義できます。

 

いつ p = 4 の場合、累積分散は予想どおり 1 になります。

eigen = np.linalg.eigvals(cov_mat)cum_var = eigen/np.sum(eigen) print(cum_var) 出力 = [0.85395557 0.11318237 0.00511273 0.02774933] print(np.sum(cum_var)) 出力 = 1.0 

 累積分散から観察します (兼変数) 分散の 85% が最初の固有値に含まれ、11% が 97 番目の固有値に含まれることがわかります。 これは、PCA が実装される場合、合計分散の 2% がこれら 4 つの主成分によって寄与されるため、使用できるのは最初の 2 つの主成分のみであることを意味します。 これにより、PCA の実装時に特徴空間の次元を XNUMX から XNUMX に本質的に削減できます。

3. 線形回帰行列

4 つの予測子特徴を持つデータセットがあるとします。 n 以下に示すように、観察。

テーブル3。 4 つの変数と n 個の観測値を含む特徴行列。 列 5 はターゲット変数 (y) です。

を予測するための重回帰モデルを構築したいと考えています。 y 値 (列 5)。 したがって、私たちのモデルは次の形式で表現できます。

行列形式では、この方程式は次のように書くことができます。

コラボレー X は ( nx 4) 特徴行列です。 w は、決定される回帰係数を表す (4 x 1) 行列であり、 y は、ターゲット変数 y の n 個の観測値を含む (nx 1) 行列です。

注意してください X は長方形行列なので、の逆行列を計算して上記の方程式を解くことはできません。 X.

変換する X 正方行列に変換するには、方程式の左辺と右辺に次の値を掛けます。 転置 of X、 あれは

この方程式は次のように表すこともできます。

コラボレー

は (4×4) 回帰行列です。 明らかに、私たちは次のことを観察しています。 R は実数の対称行列です。 線形代数では、XNUMX つの行列の積の転置は次の関係に従うことに注意してください。

これで、回帰問題が簡略化され、(4×4) 実数、対称、可逆回帰行列の観点から表現されました。 R、回帰方程式の正確な解は次のとおりであることを示すのは簡単です。

連続変数と離散変数を予測するための回帰分析の例を以下に示します。

まったくの初心者のための線形回帰の基礎

最小二乗法を使用したパーセプトロン分類器の構築

4. 線形判別分析行列

データ サイエンスにおける実対称行列のもう XNUMX つの例は、線形判別分析 (LDA) 行列です。 この行列は次の形式で表現できます。

コラボレー SW は特徴内散布行列であり、 Sは特徴間の散布行列です。 両方の行列なので、 SW および SB が実数で対称である場合、次のようになります。 L も実数で対称です。 の対角化 L クラスの分離性を最適化し、次元を削減する特徴部分空間を生成します。 したがって、LDA は教師ありアルゴリズムですが、PCA は教師ありアルゴリズムではありません。

LDA の実装の詳細については、次の参考資料を参照してください。

機械学習: 線形判別分析による次元削減

Iris データセットを使用した LDA 実装用の GitHub リポジトリ

Sebastian Raschka 著の Python Machine Learning、第 3 版 (第 5 章)

まとめ

要約すると、データ サイエンスと機械学習における線形代数のいくつかの応用について説明しました。 ハイテク株データセットを使用して、行列のサイズ、列行列、正方行列、共分散行列、行列の転置、固有値、内積などの重要な概念を説明しました。線形代数はデータ サイエンスと機械において不可欠なツールです。学ぶ。 したがって、データ サイエンスに興味のある初心者は、線形代数の重要な概念をよく理解しておく必要があります。

関連する

出典: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

タイムスタンプ:

より多くの KDナゲット