1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        終于有人把降維講明白了

        共 5659字,需瀏覽 12分鐘

         ·

        2021-04-24 21:19


        導(dǎo)讀:本文為大家介紹了降維的概念及降維技術(shù)主成分分析(PCA)在特征工程中的應(yīng)用。


        作者:shanthababu
        翻譯:王可汗,校對:歐陽錦
        來源:數(shù)據(jù)派THU(ID:DatapiTHU)




        你好!我喜歡分享我作為一個初級數(shù)據(jù)科學(xué)家的有趣經(jīng)歷,我甚至可以說在那時我在這個數(shù)據(jù)科學(xué)領(lǐng)域只是一個初學(xué)者。

        有個客戶來找我們要用機器學(xué)習(xí)來實現(xiàn)他們的問題,不管以無監(jiān)督形式還是有監(jiān)督形式。我本以為這將是一如既往的執(zhí)行模式和流程,因為根據(jù)我小規(guī)模實現(xiàn)或訓(xùn)練的經(jīng)驗,我們往往使用25~30個特征。我們用它來預(yù)測、分類或聚類數(shù)據(jù)集,并分享結(jié)果。

        但這一次,他們提出了成千上萬的特征,但我有點驚訝和害怕,開始暈頭轉(zhuǎn)向。與此同時,我的高級數(shù)據(jù)科學(xué)家把團隊里的每個人都帶到了會議室。 

        我的高級數(shù)據(jù)科學(xué)家(Senior Data Scientist ,Sr. DS)創(chuàng)造了新單詞,對我們來說,這只不過是降維維度災(zāi)難的問題,所有的初學(xué)者都認為他將解釋物理層面的一些東西,因為我們幾乎不記得我們培訓(xùn)項目中遇到過這類情況。接下來,他開始在畫板上畫(見圖1)。當(dāng)我們開始看1-D, 2-D時我們很舒服,但3-D時,我們開始暈頭轉(zhuǎn)向。 

        ▲1-D,2-D

        ▲3-D

        Sr. DS繼續(xù)他的講座,所有這些示例圖片都是顯著的特征,我們可以在實時場景中使用它們,許多機器學(xué)習(xí)問題涉及數(shù)以千計的特征,所以我們最終訓(xùn)練這些模型的速度會變得非常慢,以至于不能很好地解決業(yè)務(wù)問題,并且這時候我們不能凍結(jié)模型,這種情況就是所謂的“維度災(zāi)難”引起的。然后,我們開始思考一個問題,我們應(yīng)該如何處理這個“維度災(zāi)難”問題。

        他深吸了一口氣,繼續(xù)以自己的風(fēng)格分享自己的經(jīng)歷。他從一個簡單的定義開始,如下:


        01 維度是什么?

        我們可以說,我們的數(shù)據(jù)集中特征的數(shù)量被稱為其維數(shù)。

        02 什么是降維?

        降維是對給定數(shù)據(jù)集進行(特征)降維的過程。也就是說,如果您的數(shù)據(jù)集有100列/特性,并將列數(shù)減少到了20-25列。簡單地說,您是在二維空間中將柱面/球體轉(zhuǎn)換成圓或立方體,如下圖所示。

        ▲3d – 2d轉(zhuǎn)換

        他在下面清楚地描繪了模型性能和特征(維度)數(shù)量之間的關(guān)系。隨著特征數(shù)量的增加,數(shù)據(jù)點的數(shù)量也成比例地增加。更直接的說法是越多的特征會帶來更多的數(shù)據(jù)樣本,所以我們已經(jīng)表示了所有的特征組合及其值。

        ▲模型性能Vs特征數(shù)量

        現(xiàn)在房間里的每個人都從一個更高的角度領(lǐng)會到了什么是“維度災(zāi)難”。


        03 降維的好處

        突然,一個團隊成員問他能否告訴我們在給定數(shù)據(jù)集上進行特征降維的好處。我們的前輩并沒有停止進一步分享他淵博的知識。他繼續(xù)如下。如果我們進行降維,會有很多好處。

        • 它有助于消除冗余的特征和噪聲誤差因素,最終增強給定數(shù)據(jù)集的可視化。
        • 由于降低了維度,可以表現(xiàn)出優(yōu)秀的內(nèi)存管理。
        • 通過從數(shù)據(jù)集中刪除不必要的特征列表來選擇正確的特征,從而提高模型的性能。
        • 當(dāng)然,更少的維度(強制性的維度列表)需要更少的計算效率,更快地訓(xùn)練模型,提高模型的準(zhǔn)確性。
        • 大大降低了整個模型及其性能的復(fù)雜性和過擬合。

        是的!這是一個令人敬畏的,魯棒的和動態(tài)的“降維”?,F(xiàn)在,我可以將降維的優(yōu)點總結(jié)如下圖所示。希望對你也有幫助。

        ▲降維的好處

        當(dāng)然,下一步是什么!我們接下來探討有哪些技術(shù)可以用于降維。


        04 降維技術(shù)

        我們的Sr. DS對數(shù)據(jù)科學(xué)領(lǐng)域中任何可能的技術(shù)非常感興趣,他繼續(xù)他的解釋。降維的方法被籠統(tǒng)地分為兩種,如前面提到,考慮選擇最佳擬合特征或刪除給定高維數(shù)數(shù)據(jù)集中不太重要的特征。一些高級技術(shù)通常被稱為特征選擇特征提取,基本上,這是特征工程的一部分。他把這些點講得很清楚。

        ▲特征工程家族中的降維定位

        他帶領(lǐng)我們進一步深入概念,理解在高維數(shù)據(jù)集上應(yīng)用“降維”的重點。一旦我們看到下圖,我們就可以將特征工程和降維聯(lián)系起來??纯催@個圖,我們Sr. DS的降維的精髓就在里面!


        每個人都想知道如何通過簡單的編碼來使用Python庫來使用這些降維技術(shù)。我們的Sr. DS要求我拿來彩色筆和板擦。

        Sr. DS拿起新的藍筆,開始用一個簡單的例子來解釋PCA,如下所示,在此之前,他解釋了什么是降維PCA。

        主成分分析(PCA):主成分分析是一種對給定數(shù)據(jù)集進行降維的技術(shù),在信息損失可忽略的情況下,增加了可解釋性。這里變量的數(shù)量在減少,因此進一步的分析更簡單。它把一組相關(guān)的變量轉(zhuǎn)換成一組不相關(guān)的變量。用于機器學(xué)習(xí)預(yù)測建模。他建議我們通過特征向量,特征值分析。

        他取了熟悉的wine.csv來快速分析。


         # Import all the necessary packages
        import pandas as pd
        import numpy as np
        import matplotlib.pyplot as plt
        import seaborn as sns
        from sklearn.model_selection import train_test_split
        from sklearn.linear_model import LinearRegression
        from sklearn.metrics import confusion_matrix
        from sklearn.metrics import accuracy_score
        from sklearn import metrics
        %matplotlib inline
        import matplotlib.pyplot as plt
        %matplotlib inline
        wq_dataset = pd.read_csv('winequality.csv')

        1. 對于給定數(shù)據(jù)集的數(shù)據(jù)分析

        wq_dataset.head(5


        wq_dataset.describe() 


        wq_dataset.isnull().any() 


        在給定的數(shù)據(jù)集中沒有空值,很好,我們很幸運。

        2. 找出每個特征的相關(guān)性

        correlations = wq_dataset.corr()['quality'].drop('quality')
        print(correlations)


        3. 使用熱力圖進行相關(guān)性表示

        sns.heatmap(wq_dataset.corr())
        plt.show()


        x = wq_dataset[features]
        y = wq_dataset['quality']
        [‘fixed acidity’, ‘volatile acidity’, ‘citric acid’, ‘chlorides’, ‘total sulfur dioxide’, ‘density’, ‘sulphates’, ‘a(chǎn)lcohol’]

        4. 使用train_test_split創(chuàng)建訓(xùn)練和測試集

        x_train, x_test, y_train, y_test = train_test_split(x, y, random_state=3)

        5. 訓(xùn)練和測試集形狀

        print('Traning data shape:', x_train.shape)
        print('Testing data shape:', x_test.shape)

        Traning data shape: (11998)
        Testing data shape: (4008)

        6. PCA降維實現(xiàn)(2列)

        from sklearn.decomposition import PCA
        pca_wins = PCA(n_components=2)
        principalComponents_wins = pca_wins.fit_transform(x)

        命名為第1主成分,第2主成分。

        pcs_wins_df = pd.DataFrame(data = principalComponents_wins, columns = ['principal component 1''principal component 2'])

        新的主成分及其值。

        pcs_wins_df.head() 


        當(dāng)我們看到上面兩個新的列名和值時,我們都感到驚訝,我們問‘fixed acidity’, ‘volatile acidity, ‘citric acid’, ‘chlorides’, ‘total sulfur dioxide’, ‘density’, ‘sulphates’, ‘a(chǎn)lcohol’等列會發(fā)生什么變化。Sr. DS說所有的都沒有了,在應(yīng)用了PCA對給定數(shù)據(jù)進行降維后,我們現(xiàn)在只有兩列特征值,然后我們將實現(xiàn)很少的模型,這將是正常的方式。

        他提到了一個關(guān)鍵詞“每一個主成分的變化量”。

        這是由主成分解釋的方差的分數(shù)是主成分的方差和總方差之間的比率。

        print('Explained variation per principal component: {}'.format(pca_wins.explained_variance_ratio_))
        Explained variation per principal component: [0.99615166 0.00278501]

        隨后,他演示了以下模型:

        • 邏輯回歸
        • 隨機森林
        • KNN
        • 樸素貝葉斯

        這些模型的精度更好,每個模型之間的差異很小,但他提到這是為了實現(xiàn)PCA。房間里的每個人都覺得我們完成了一次很棒的挑戰(zhàn)。他建議我們動手嘗試其他的降維技術(shù)。

        好了,朋友們!感謝你的時間,希望我能在這里以正確的方式講述我在降維技術(shù)方面的學(xué)習(xí)經(jīng)驗,我相信這將有助于在機器學(xué)習(xí)問題陳述中繼續(xù)處理復(fù)雜數(shù)據(jù)集的旅程。加油!

        原文標(biāo)題:
        Dimensionality Reduction a Descry for Data Scientist
        原文鏈接:
        https://www.analyticsvidhya.com/blog/2021/04/dimensionality-reduction-a-descry-for-data-scientist/
        本文作為數(shù)據(jù)科學(xué)博客馬拉松的一部分發(fā)表。
        https://datahack.analyticsvidhya.com/contest/data-science-blogathon-7/

        關(guān)于譯者:王可汗,清華大學(xué)機械工程系直博生在讀。曾經(jīng)有著物理專業(yè)的知識背景,研究生期間對數(shù)據(jù)科學(xué)產(chǎn)生濃厚興趣,對機器學(xué)習(xí)AI充滿好奇。期待著在科研道路上,人工智能與機械工程、計算物理碰撞出別樣的火花。希望結(jié)交朋友分享更多數(shù)據(jù)科學(xué)的故事,用數(shù)據(jù)科學(xué)的思維看待世界。


        延伸閱讀??

        延伸閱讀《Python數(shù)據(jù)分析與數(shù)據(jù)化運營


        • 直播主題:企業(yè)數(shù)據(jù)價值現(xiàn)狀及數(shù)據(jù)分析師的價值提升

        • 直播時間:4月24日19:00-20:00

        • 主講人:宋天龍,大數(shù)據(jù)技術(shù)專家,觸脈咨詢合伙人兼副總裁,擅長數(shù)據(jù)挖掘、建模、分析與運營,《Python數(shù)據(jù)分析與數(shù)據(jù)化運營》作者。

        • 直播介紹:

        1. 數(shù)據(jù)在企業(yè)中的真實定位

        2. 是什么導(dǎo)致了數(shù)據(jù)價值沒有產(chǎn)生理想效果

        3. 數(shù)據(jù)分析師改善客觀因素的6種途徑

        4. 數(shù)據(jù)分析師改善主觀因素的6個要素

        5. 數(shù)據(jù)分析師如何有效管理“有效建議”


        干貨直達??


        更多精彩??

        在公眾號對話框輸入以下關(guān)鍵詞
        查看更多優(yōu)質(zhì)內(nèi)容!

        PPT | 讀書 | 書單 | 硬核 | 干貨 | 講明白 | 神操作
        大數(shù)據(jù) | 云計算 | 數(shù)據(jù)庫 | Python | 爬蟲 | 可視化
        AI | 人工智能 | 機器學(xué)習(xí) | 深度學(xué)習(xí) | NLP
        5G | 中臺 | 用戶畫像 1024 | 數(shù)學(xué) | 算法 數(shù)字孿生

        據(jù)統(tǒng)計,99%的大咖都關(guān)注了這個公眾號
        ??
        瀏覽 13
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            美女让男人捅到爽 | 米奇7777狠狠狠狠视频影院 | 免费试看黄色 | 国产精品无码免费久久久 | 蜜臀久久精品久久久久 | 国产精品自拍第一页在线观看 | 日本老太做爰视频免费 | 麻豆网站免费在线观看 | 亚洲综合图片小说 | 干少妇30p |