首頁 > 科技週邊 > 人工智慧 > 了解降低維度

了解降低維度

尊渡假赌尊渡假赌尊渡假赌
發布: 2025-03-01 09:15:11
原創
501 人瀏覽過

維度降低是機器學習和數據分析中的至關重要技術。 它將高維數據轉換為較低維的表示,並保留基本信息。 具有許多功能的高維數據集對機器學習模型構成了挑戰。本教程探討了使用降低尺寸降低,各種技術及其在圖像數據的應用的原因。 我們將可視化結果並比較較低維空間中的圖像。

為了全面了解機器學習,請考慮“成為Python的機器學習科學家”職業曲目。

為什麼減少尺寸?

高維數據,雖然信息豐富,但通常包含冗餘或無關的功能。這導致了諸如:

之類的問題

    維度的詛咒:
  1. 高維度使數據點稀疏,通過機器學習模型阻礙模式識別。
  2. 過度擬合:
  3. 模型可能會學習噪聲而不是潛在的模式。
  4. 計算複雜性:增加維度大大提高了計算成本。
  5. 可視化困難:
  6. 可視化數據以外的數據很具有挑戰性。
  7. 降低性降低簡化了數據,同時保留關鍵功能,提高模型性能和解釋性。
線性與非線性方法

降低降低技術被歸類為線性或非線性:

線性方法:這些假設數據位於線性子空間內。 它們在計算上有效,適合線性結構化數據。示例包括:

主體組件分析(PCA):識別方向(主要組件)最大化數據方差。

  • 線性判別分析(LDA):有用,可用於分類,在降低尺寸降低過程中保持類可分離性。 在“ Python中的主要組件分析(PCA)”教程中了解更多信息。 >
  • >
  • 非線性方法:當數據駐留在非線性歧管上時使用。 他們更好地捕獲複雜的數據結構。示例包括:

t-sne(t分佈的隨機鄰居嵌入):在保留局部關係的同時,在較低維度(2D或3D)中可視化高維數據。 有關詳細信息,請參見我們的T-SNE指南。

  • umap(統一的歧管近似和投影):類似於t-sne,但在保存全局結構方面更快,更好。 >自動編碼器:
  • 用於無監督數據壓縮的神經網絡。
  • 降低的類型
  • 降低的降低被廣泛分為:
  • >特徵選擇:在不轉換數據的情況下選擇最相關的功能。方法包括過濾器,包裝器和嵌入式方法。

    >

    > 特徵提取:>通過創建原始圖的組合來將數據轉換為較低維空間。 當原始功能相關或冗餘時,這很有用。 PCA,LDA和非線性方法屬於此類別。

    > 圖像數據

    維度降低

    >讓我們使用Python將維度降低到圖像數據集:>

    1。數據集加載:

    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)
    登入後複製

    這將加載數字數據集(手寫數字0-9,每個8x8像素,平坦至64個功能)。

    2。可視化圖像:

    def plot_digits(images, labels, n_rows=2, n_cols=5):
        # ... (plotting code as before) ...
    登入後複製

    此功能顯示示例圖像。

    3。應用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)
    登入後複製

    這可以縮放數據,選擇一個子集以提高效率,並應用T-SNE以降低2個維度。

    4。可視化T-SNE輸出:

    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()
    登入後複製
    這可視化2D T-SNE表示,由數字標籤顏色編碼。

    5。比較圖像:

    import random
    
    idx1, idx2 = random.sample(range(X_tsne.shape[0]), 2)
    
    # ... (distance calculation and image plotting code as before) ...
    登入後複製
    這隨機選擇兩個點,計算其在T-SNE空間中的距離,並顯示相應的圖像。

    Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction 結論

    維度降低增強了機器學習模型效率,準確性和可解釋性,從而改善了數據可視化和分析。 該教程涵蓋了降低維度的概念,方法和應用程序,以證明T-SNE在圖像數據中的使用。 “ Python的降低降低”課程提供了進一步的深入學習。 >

    FAQS

    公共尺寸縮小技術:
      pca和t-sne。
    • > pca監督:
    • >何時使用尺寸降低:
    • 在處理高維數據以降低複雜性,改善模型性能或可視化時。
    • 降低維度的主要目標:在保留重要信息的同時,還要降低功能。
    • >現實生活應用程序:文本分類,圖像檢索,面部識別,神經科學,基因表達分析。

以上是了解降低維度的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板