ホームページ > テクノロジー周辺機器 > AI > 次元の削減を理解する

次元の削減を理解する

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-03-01 09:15:11
オリジナル
499 人が閲覧しました

次元の削減は、機械学習とデータ分析における重要な手法です。 高次元データをより低次元表現に変換し、重要な情報を保存します。 多数の機能を備えた高次元データセットは、機械学習モデルに課題をもたらします。このチュートリアルでは、次元削減、さまざまな手法、および画像データへのアプリケーションを使用する理由を探ります。 結果を視覚化し、より低次元空間の画像を比較します。

機械学習を包括的に理解するには、「Pythonの機械学習科学者になる」キャリアトラックを検討してください。

なぜ寸法を減らすのですか?

高次元データは、情報が豊富ですが、多くの場合、冗長または無関係な機能が含まれます。これは、次のような問題につながります

次元の呪い:
    高次元性により、データポイントがまばらになり、機械学習モデルによるパターン認識が妨げられます。
  1. オーバーフィッティング:モデルは、根底にあるパターンではなくノイズを学習する場合があります
  2. 計算の複雑さ:寸法の増加は、計算コストを大幅に上昇させます
  3. 視覚化の難しさ:
  4. 3つの次元を超えたデータの視覚化は困難です 次元の削減により、重要な機能を保持し、モデルのパフォーマンスと解釈可能性が向上しながら、データが簡素化されます。
  5. 線形対非線形法
  6. 次元削減手法は、線形または非線形に分類されます:
線形方法:

これらは、データが線形サブスペース内にあると仮定します。 それらは計算上効率的で、線形構造化されたデータに適しています。例は次のとおりです

主成分分析(PCA):

データの差異の最大化方向(主成分)を識別します。

線形識別分析(LDA):分類に役立ち、寸法削減中のクラスの分離性を維持します。 詳細については、「Pythonの主成分分析(PCA)」チュートリアルをご覧ください。

    非線形メソッド:
  • データが非線形マニホールドに存在する場合に使用されます。 複雑なデータ構造をより適切にキャプチャします。例は次のとおりです
  • t-sne(T-Sistributed Stochastic Neighbor Embedding):
  • ローカルな関係を維持しながら、低次元(2Dまたは3D)で高次元データを視覚化します。 詳細については、T-SNEガイドを参照してください umap(均一なマニホールド近似と投影):
自動エンコーダー:

監視されていないデータ圧縮に使用されるニューラルネットワーク。

次元削減の種類
  • 次元の減少は、次のように広く分類されます

    機能の選択:データを変換することなく、最も関連性の高い機能を選択します。方法には、フィルター、ラッパー、埋め込みメソッドが含まれます

    機能抽出:元のものの組み合わせから新しい機能を作成することにより、データを低次元空間に変換します。 これは、元の機能が相関または冗長である場合に役立ちます。 PCA、LDA、および非線形メソッドはこのカテゴリに分類されます 画像データの寸法削減

    Pythonを使用して、次元の削減を画像データセットに適用しましょう:

    1。データセットの読み込み:

    これにより、数字データセット(手書きの数字0〜9、8x8ピクセルごとに64の機能にフラット化されました)がロードされます。

    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.datasets import load_digits
    from sklearn.manifold import TSNE
    from sklearn.preprocessing import StandardScaler
    
    digits = load_digits()
    X = digits.data  # (1797, 64)
    y = digits.target # (1797,)
    
    print("Data shape:", X.shape)
    print("Labels shape:", y.shape)
    ログイン後にコピー
    2。画像の視覚化:

    この関数には、サンプル画像が表示されます 3。 t-sneの適用:

    def plot_digits(images, labels, n_rows=2, n_cols=5):
        # ... (plotting code as before) ...
    ログイン後にコピー

    これはデータをスケーリングし、効率のためにサブセットを選択し、T-SNEを適用して2つの寸法に減少します。

    4。 T-sne出力の視覚化:

    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    n_samples = 500
    X_sub = X_scaled[:n_samples]
    y_sub = y[:n_samples]
    
    tsne = TSNE(n_components=2, perplexity=30, n_iter=1000, random_state=42)
    X_tsne = tsne.fit_transform(X_sub)
    
    print("t-SNE result shape:", X_tsne.shape)
    ログイン後にコピー

    これは、数字ラベルで色分けされた2D T-SNE表現を視覚化します。

    5。画像の比較:

    plt.figure(figsize=(8, 6))
    scatter = plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y_sub, cmap='jet', alpha=0.7)
    plt.colorbar(scatter, label='Digit Label')
    plt.title('t-SNE (2D) of Digits Dataset (500-sample)')
    plt.show()
    ログイン後にコピー
    これは、2つのポイントをランダムに選択し、T-SNE空間での距離を計算し、対応する画像を表示します。

    import random
    
    idx1, idx2 = random.sample(range(X_tsne.shape[0]), 2)
    
    # ... (distance calculation and image plotting code as before) ...
    ログイン後にコピー
    結論

    次元削減により、機械学習モデルの効率、精度、解釈可能性が向上し、データの視覚化と分析が向上します。 このチュートリアルは、次元の削減の概念、方法、およびアプリケーションをカバーし、画像データでのT-SNEの使用を実証しました。 「Pythonの次元削減」コースは、さらに詳細な学習を提供します。

    faqs Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction 一般的な寸法削減手法:

    PCAおよびT-SNE。

    PCAの監督:

    監視なし。

      次元削減を使用する時期:
    • 複雑さの削減、モデルのパフォーマンスの向上、視覚化のために高次元データを扱う場合。 次元削減の主な目標:
    • 重要な情報を保存しながら機能の削減。
    • 実生活のアプリケーション:テキストの分類、画像検索、顔認識、神経科学、遺伝子発現分析。

以上が次元の削減を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート