【Python】データマイニング分析とクリーニング - 特徴選択スクリーニング(次元削減)方法のまとめ


この記事へのリンク:

序文

特徴の次元削減とは、元のデータの情報を可能な限り保持しながら、特定の方法で高次元データを低次元データに変換するプロセスを指します。実際のアプリケーションでは、大量の高次元データに直面することが多く、これらのデータをいかに効率的に処理し、根底にある法則や関係を発見するかは非常に重要な課題です。特徴の次元削減は、データ量と計算の複雑さを軽減し、オーバーフィッティングなどの問題を回避するのに役立ちます。

データは下の図に示されています
ここに画像の説明を挿入

1. PCA次元削減技術

PCA (主成分分析) は一般的な次元削減手法であり、高次元のデータ セットを低次元の空間にマッピングできます。データ分析と機械学習の分野では、PCA はデータセットの特徴の数を減らすためによく使用され、それによってモデルが単純化され、過剰適合が回避されます。
PCA の基本的な考え方は、データ内の最も重要な方向 (つまり、主成分) を見つけ、これらの方向にデータを投影して次元削減を達成することです。これらの主成分は、データ内で最も有益な方向を指し、通常はデータの分散が最大となる方向に対応します。
PCA 次元削減により、元のデータ内の無関係な特徴を無視し、データの分散の大部分を説明できる特徴のみを保持することができます。これにより、データの複雑さが効果的に軽減され、アルゴリズムの処理効率が向上し、高次元データによって引き起こされる過剰適合の問題を回避できます。

from sklearn.decomposition import PCA
pca = PCA(n_components=5)   #整数表示保留多少特征 小数表示保留多少百分比信息量
X_new = pca.fit_transform(data_analy_x)

"""查看PCA的一些属性"""
print(X_new.shape)   # (200000, 10)
print(pca.explained_variance_)    # 属性可以查看降维后的每个特征向量上所带的信息量大小(可解释性方差的大小)
print(pca.explained_variance_ratio_)  # 查看降维后的每个新特征的信息量占原始数据总信息量的百分比
print(pca.explained_variance_ratio_.sum())    # 降维后信息保留量

ここに画像の説明を挿入

特徴量の次元が削減され、各特徴量の情報が全体の比率を占めていることがわかります。

二、SVD

SVD 次元削減は一般的なデータの次元削減手法であり、データ行列に対して特異値分解 (略して SVD) を実行することで、元の高次元データを低次元空間の表現に変換できます。このプロセスでは、データの主な特性が保存されるため、「次元の呪い」問題を回避しながら、ストレージと計算のオーバーヘッドが削減されます。

SVD の次元削減では、特異値のサイズに応じてどの主な特徴を保持するかを選択できます。通常、元のデータに近似する低次元表現を取得するには、最初のいくつかの最大の特異値に対応する特異ベクトルを保持するだけで済みます。この低次元表現は、データ処理、視覚化、モデル トレーニングなどの後続のタスクで使用できます。

from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=5) # 使用sklearn的truncatedsvd将矩阵降到5维数据
X_new = pd.DataFrame(svd.fit_transform(data_analy_x))
X_new

ここに画像の説明を挿入

5Dに縮小

3. 要因分析

因子分析は、データセット内の潜在的な因子を特定するために使用される統計分析手法です。一連の変数にどのような共通因子が存在するかを判断することを目的としており、これらの変数をいくつかの相関因子にグループ化できます。

因子分析では、まず適切な数の因子を選択し、次にデータに対して対応する数学的演算を実行することによって、データの分散を最もよく説明できる因子を見つける必要があります。これらの要素は一般に、健康、教育レベル、幸福などの特定の構成要素または概念として解釈されます。

因子分析を通じて、データを単純化し、データの読みやすさを向上させることができます。また、データの背後にある構造と関係をより深く理解するのにも役立ちます。さらに、要因分析は、将来の傾向や行動を予測し、対応する意思決定や戦略を策定するのにも役立ちます。

from sklearn.decomposition import FactorAnalysis
X_new = pd.DataFrame( FactorAnalysis(n_components = 5).fit_transform(data_analy_x.values))
X_new

ここに画像の説明を挿入

要約する

PCA 次元削減手法、SVD 次元削減、および因子分析は、データの次元削減手法として一般的に使用されます。これらは、高次元データから最も重要な情報を抽出するのに役立ち、それによってデータが簡素化され、計算が高速化され、ノイズが低減されます。

PCA (主成分
分析) は、データの共分散行列に基づいて変換し、元のデータの分散を最大限に説明できる主成分を見つけ出し、それをデータ射影と次元削減のための新しい座標系として使用します。PCA は最大の分散を維持することを重視するため、データ構造が比較的単純な場合に効果が高くなります。

SVD (特異値
分解) は、データ行列の特異値を分解し、データをより小さな空間に投影することで、不要な詳細を削除し、データの保存スペースを削減できます。SVD は PCA に比べてデータの圧縮に重点を置いており、計算量が比較的大きい場合に適しています。

因子分析は、データに隠された潜在的な因子を見つけようとするモデリング アプローチです。因子分析を使用すると、共通の因子セットを特定し、データをこれらの因子に分類して、データの背後にある構造と関係を理解できます。PCA や SVD と比較して、因子分析はデータ間の相関関係や基礎となる構造を見つけることに重点を置いています。

要約すると、PCA、SVD、因子分析は 3 つの異なる次元削減手法であり、理論的根拠、アプリケーション シナリオ、データ処理方法が異なります。特定のアプリケーションでは、ニーズに応じて適切な方法を選択できます。

おすすめ

転載: blog.csdn.net/weixin_47058355/article/details/130420263