成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能開發者 正文
    發私信給WBLUE
    發送

    0

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    本文作者: WBLUE 編輯:汪思穎 2018-04-09 15:17
    導語:本文將介紹結構化數據和 NLP 數據,包含 Titanic 比賽,房價預測比賽,惡意評論分類,恐怖小說家身份識別。

    雷鋒網 AI 研習社按,Kaggle 上有各式各樣的數據挖掘類比賽,很多參賽者也樂于分享自己的經驗,從他人的經驗中進行總結歸納,對自己的實踐也非常重要。

    本文將以 Kaggle 上 6 個不同的比賽為例,介紹常見的三類數據(結構化數據,NLP 數據,圖像數據)分析經驗,以助力大家提升數據分析能力。此文為上篇,主要介紹結構化數據和 NLP 數據,包含 Titanic 比賽,房價預測比賽,惡意評論分類,恐怖小說家身份識別。下篇將會介紹兩個極具特色的圖像類比賽——樹葉分類競賽(Leaf Classification)和肺癌檢測比賽(Data Science Bowl 2017)。

    正文如下,雷鋒網 AI 研習社編譯整理:

    建立準確模型的關鍵是全面了解正在使用的數據,但數據通常是混亂的。在我自學機器學習的前幾個月,對如何理解數據并沒有很多的想法。我假設數據來自一個自底向上組織完好的包,或者至少有一組明確的步驟可以遵循。

    查看別人的代碼之后,我發現大家理解、可視化和分析相同數據集的方式是不同的,對此我很震驚。我決定通讀幾種不同的數據分析方式,找出其中的異同點,并提煉出一套理解數據集的最佳實踐或策略,以便更好地利用它們進行數據分析。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上) 

    數據科學家會花大量時間在數據預處理上,而不是模型優化問題上。

    ——lorinc

    本文中,我選擇了一些在 Kaggle 上公開的探索性數據分析(EDA)。這些分析將交互式代碼片段與文章結合在一起,有助于提供數據的鳥瞰圖或梳理數據中的模式。

    我同時研究了特征工程,這是一種獲取現有數據并用一些方法將其轉化,賦予數據其他含義的技術(例如,獲取時間戳并提取 DAY_OF_WEEK 列,這些列可用于預測商店中的銷售情況)。

    我想看看各種不同的數據集,所以我選擇了:

    • 結構化數據

    • NLP(自然語言)數據

    • 圖像數據

    結構化數據

    結構化數據集是包含訓練和測試數據的電子表格。電子表格可能包含分類變量(顏色,如綠色、紅色和藍色),連續變量(年齡,如 4、15 和 67)和序數變量(教育程度,如小學、高中、大學)。

    訓練數據表中包括一個嘗試解決的目標列,這些列不會出現在測試數據中。我所研究的大部分 EDA 都側重于梳理出目標變量與其他列之間的潛在關聯性。

    我們的主要目的是尋找不同變量之間的關聯性,有很多切分數據的方法。可視化的選擇更多。

    特征工程可以讓你充分發揮想象力,不同參賽選手在合成特征或將分類特征合并為新特征時,都有不同的方法。

    讓我們更深入地看看 Titanic competition 和 House Prices competition 這兩項比賽。

    Titanic

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    圖片來自 Viaggio Routard

    Titanic 比賽非常受初學者歡迎,很多 Kaggle 用戶都不斷參與這個比賽。因此,這個比賽的 EDA 往往寫得很好,并且有詳細記錄,是我看到的最清晰的。

    數據集包括一個訓練集電子表格,其中包含一列「Survived」,表示乘客是否幸存,以及其他補充數據,如年齡、性別、票價等等。

    我選擇用于分析的 EDA 是由 I,Coder 提供的 EDA to Prediction Dietanic,déjà vu 提供的 Titanic Survival for Beginners EDA to ML,katerina Kokatjuhha 提供的 In Depth Visualisations Simple Methods

    所有這三種 EDA 都以原始指標開始。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    I,Coder 描述的數據集

    數據預處理過程中對空值或缺失值進行處理是關鍵一步。本文選取的三個 EDA,一個在前期處理了這一問題,另外兩個在特征工程階段進行處理。

    I,Coder 反對指定一個隨機數來填補缺失的年齡:

    正如我們前面看到的,Age 特征有 177 個空值。要替換這些 NaN 值,我們可以為它們指定數據集的平均年齡。但問題是,有許多不同年齡段的人,我們不能把 4 歲小孩的平均年齡分配到 29 歲。有什么方法可以找出乘客的年齡段?我們可以檢查名稱特征。在這個特征中,我們可以看到像先生或夫人的稱呼,我們可以將先生和夫人的平均值分配給各個年齡組。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    I, Coder 輸入的年齡

    I,Coder 將特征工程作為純數據分析的一部分,然而其他兩位作者認為它是一個獨立的步驟。

    這三位 kernel 作者在深入了解數據、找出數據間潛在相關性時,都非常依賴圖表和可視化。他們使用的圖表包括因子圖、交叉表、條形圖、餅圖和小提琴圖(結合箱線圖和密度圖特征的一種圖)等等。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    deja vu 關于幸存者性別的圖表

    你可能對泰坦尼克號中的「女性與兒童優先」這句話很熟悉。在最初的數據分析中,對每位作者來說,年齡和性別這兩個特征很重要。也可以對收入背景(如票價所示)進行一些詳細的檢測。

    船上的男性比女性多很多。盡管如此,幸存的女性幾乎是幸存男性的兩倍。女性在船上的幸存率約為75%,而男性約為18-19%。

    ——I,Coder

    Jekaterina 和 I,Coder 都是基于對圖表和數據的視覺檢測得出結論,如 Jekaterina 所寫:

    • 性別:女性的幸存機會更高。

    • 船艙等級:擁有頭等艙票更有可能幸存。

    • 血親關系和規模:中等規模的家庭比獨自旅行的人或大家庭的幸存率更高。原因可能是單獨的人會想犧牲自己去幫助別人。對于大家庭,我認為是整個家庭太難管理,因此家族成員都在尋找彼此而不是忙著上船逃生。

    • 救生船 C 有更高的幸存率。有趣的是,大部分頭等艙的乘客乘坐的就是救生船 C。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Jekaterina 繪制的反映船艙等級和救生船的圖表

    Deja Vu 的 EDA 在分析的每一步都記錄了一個準確的數字,就每個特征對最終預測的重要性提供了一個很好的反饋。

    特征工程

    三位 kernel 作者的特征工程存在很多可變性。

    每位作者選擇不同數量的 bucket 作為連續變量,如年齡和票價。與此同時,他們都以不同的方式處理家庭關系,I,Coder 建立了一個 SibSip(血親關系)——是獨自一人還是與家人(配偶或兄弟姐妹)一起(family_size 和 alone),Jekaterina 則列出了一個客艙bin,并提出以 child(兒童)或 adult(成人)作為特征。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Jekaterina 列出的客艙等級字母

    I,Coder 在剔除不相關的列時特別激進:

    名稱 —>我們不需要名稱特征,因為它不能轉換為任何分類值。

    年齡 —>我們有 Age_band 特征,所以不需要這個。

    船票 —>它是不能被分類的隨機字符串。

    票價 —>我們有 Fare_cat 特征,所以不需要。

    客艙 —>有許多缺失值,也有許多乘客有多個艙位。所以這是一個無用特征。

    票價范圍 —>我們有 Fare_cat 特征。

    乘客身份 —>無法分類。

    對于填補步驟,Jekaterina 寫道:

    • 上的救生船:用一個主要類來填充

    • 船艙等級:因為票價中只有一個缺失值,我們將用相應船艙等級的中值進行填充

    • 年齡:有幾種輸入技術,我們將使用均值上下范圍內的隨機數進行填充

    她確保新的填充數據不會破壞平均值,進行了總結了:

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Jekaterina 檢測新輸入值是否破壞均值

    點評

    三位作者都有檢查數據并描述整體形狀。

    I,Coder 考慮了整體的缺失值,而 Jekaterina 在接近尾聲時才開始考慮。

    每個人都著眼于幸存者的分類,然后按性別分類幸存者。交叉列表、因子圖和小提琴圖都是常用的圖表。Jekaterina 還繪制了一些非常有趣的圖表。

    當涉及到特征工程時,作者們有些分歧。作者在構建新特征的問題上存在差異,一些人將其視為一個獨立的步驟,另一些人則在初步數據分析時對其進行處理。圍繞分箱的選擇各不相同,隨著年齡、產權和票價的不同,所收到的 bucket 數量都不同,并且只有 Jekaterina 構建了一個離散的 child/adult(兒童/成人)特征。

    對于缺失值的填充方法也不同。I,Coder 建議查看現有數據以預測估算值,而 Jekaterina 確保她的估算數據不影響均值。

    他們在思考和處理數據上有一些明顯的相似之處,主要是在可視化和特征工程上有些差異。

    房價

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    該圖由美國顧問團提供

    房價預測是另一種結構化數據比賽。它比上面的 Titanic 比賽有更多的變量,包括分類、順序和一些連續特征。

    我所選擇的用來分析的 EDA 是 Pedro Marcelino 的 Comprehensive Data Exploration with Python,Angela的 Detailed Data Exploration in Python,以及Sangeon Park的 Fun Python EDA Step by Step

    雖然這些數據在類型上類似 Titanic,但實際上復雜得多。

    在愛荷華州埃姆斯住宅問題中,有 79 個解釋變量用來描述這些房子的方方面面。該競賽要求你預測每間房的價格。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Pedro 描繪了售價

    Angela 和 Pedro 花了一些時間來研究與 Titanic 比賽中類似的原始數據。Angela 在直方圖上畫出了售價,并繪制了關于這些特征的熱圖。而 Pedro 也描繪了售價,并得出了以下結論:

    • 偏離了正態分布

    • 有明顯的正偏態

    • 出現了尖峰態

    之后,Pedro 將自己置于買家的角度,猜測哪些特性對他來說很重要,從而來看他的選擇和售價之間的關系。之后,他建立了一個熱圖,讓自己對特征有更加客觀的觀察。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    與售價相關的特征圖

    相比之下,Angela 以一種更加客觀的方式來描述,她通過相關關系列出了數字特征,也描繪了與售價相關的特征圖,從數據中尋找模型。

    Sang-eon 果斷剔除了缺失值和離群值(并使用線性回歸估算了臨界線附近的異常值),之后才開始描繪與售價相關的多方面特征。

    Pedro 一直在尋找數據之間的相關性,以檢查數據丟失問題。他提出:

    • 丟失數據有多普遍?

    • 丟失數據是隨機的還是有模式的?


    這些問題的答案對于實踐很重要,缺少數據可能意味著樣本容量的減少。這會阻止我們進一步的分析。從真實性的角度來看,我們需要確保數據丟失不會導致偏頗。

    為解決這些問題,Pedro 繪制了缺失單元的總數以及百分比,并選擇刪除了 15% 或是更多包含缺失數據的單元格所在的列。他再次依賴主觀選擇來決定移除哪些特征:

    ……我們會錯過這些數據嗎?我不這么想。這些變量似乎都不是很重要,因為它們中的大多數都不是我們在購買房子時所要考慮的方面。此外,通過仔細觀察變量,比如「PoolQC」、「MiscFeature」和「fireplacery」等變量很有可能導致異常值出現,因此我們很樂意刪除它們。

    Pedro 對缺失數據的處理方法是,要么刪除整個列(如果它們包含有大量缺失值),要么刪除只有少數缺失值的行。他還建立了一個啟發式的解決異常值的方法:

    最主要是設定一個閾值來定義觀測值是否為異常值。為此,我們將數據標準化。在這種情況下,數據標準化意味著將數據值轉換為平均值為 0,標準差為 1 的數據。

    他的結論是,從靜態的角度來看,沒什么可擔心的。但在重新審查了數據之后,他刪除了一些覺得可疑的數據點。

    特征工程

    Sangeon 檢查了數據的偏態和峰度,并做了一個 wilxocc -rank 測試。他用一個非常好看的 3D 圖進行總結:

       數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Sang-eon 的 3D 特征圖

    與此同時,Pedro 討論了這些數據的正態性、同方差性、線性度和無相關誤差,他將數據歸一化,并發現其他三個問題也得到了很好的解決。

    點評

    這三個 kernel 的作者都沒有做過多的特征工程分析,可能是因為數據集中已經有很多的特性了。

    有很多策略來決定如何處理這些數據,有些作者采用了主觀策略,有些則直接采用更加客觀的測量。對于何時以及如何剔除缺失數據或異常值,他們沒有達成明確的共識。

    與之前 Titanic 競賽相比,這里更多的關注于統計方法和完整性。可能是因為有更多的特征需要處理,也有可能是無效的統計結果會對整體產生更大的影響。

    自然語言處理

    自然語言或 NLP 數據集包含單詞或句子。雖然核心數據類型與結構化數據競賽中的相同,但用于自然語言分析的工具——文本是特定的,這會導致不同的分析策略。

    在其原始形式中,語言不易被機器學習模型識別。為了將其轉換為適合神經網絡的格式,需要對其進行變形。一種流行的技術是 Bag of Words(詞袋),其中句子被有效地轉換為 0 或 1 的集合,即特定單詞是否出現。(不出現為 0,出現為 1)

    由于需要轉換數據,大多數 Notebook 的前幾個步驟傾向于將文本轉換為機器可讀的內容,并且這一步驟都趨于相似。之后,大家的方法會出現很大差異,并對特征工程應用各種不同的可視化和技術。

    惡意評論分類

    我看到的第一個 NLP 比賽是 Toxic Comment Classifcation Competition(惡意評論分類),包括一個數據集,其中大量數據來自維基百科討論頁面的評論,通過評論在等級上的得分,來區分是侮辱、淫穢,還是惡意評論等。參與者面臨的挑戰是預測給定評論的惡意標簽。

    我選擇用于分析的 EDA 是 Jagan 的 Stop the S@#$ - Toxic Comments EDA,Rhodium Beng 的 Classifying Multi-label Comments 和 Francisco Mendez 的 Don't Mess With My Mothjer

    三位作者都從描述數據集開始,隨機抽取了一些評論。雖然沒有缺失值,但評論中有很多噪音,并且不清楚這種噪音在最終的數據分析中是否有用。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Jagan 繪制的惡意分類分布圖

    惡意程度在各個類別之中不是均勻分布的。因此,我們可能會遇到分類失衡問題。—— Jagan

    Francisco 剔除掉無實際意義的詞(例如「and」或「the」)。他用雙標圖繪制出一個特定單詞最適合的類別。

    雙標圖中,大多數單詞都是正常排列的,也有一些例外,肥胖與厭惡有相關性,這很令人驚訝,因為它是圖表底部唯一的非種族詞語,圖表中有一些通用的冒犯性詞語,像die(死亡)這樣的詞語只與威脅有關。

    Francisco 之后提出錯別字和惡意之間是否存在關聯。

    顯然是有的,而且令人驚訝的是,當 mother 這個單詞拼寫錯誤的時候從來都不會跟厭惡或威脅扯上關系,但當它拼寫正確時,就會有一些關于厭惡和威脅的評論。是不是人們傾向于在威脅某人或表達厭惡的時候下筆更謹慎一些呢?

    隨著 Francisco 進一步的挖掘,他發現在很多情況下,惡意評論中包括一遍又一遍復制粘貼的短語。在刪除重復的單詞,重新分析后,他發現了一組新的相關性。

    普通的惡意評論中一般使用溫和的詞,如母親、地獄、槍、愚蠢、白癡和閉嘴等,一些惡意的淫穢評論中會使用 f-word。從雙標圖中也可以知道惡意和侮辱是相似的,至少是有攻擊性的,而更嚴重就是厭惡和威脅。

    這三位作者都利用數據可視化取得了很好的效果。

    Rhodium 創建一個字符長度直方圖和分類類別之間的熱圖,并發現了一些標簽之間高度相關,例如,侮辱評論有 74% 的可能也是淫穢的。

    Jagan 繪制了一些詞云、熱圖和交叉表,觀察到:

    非常惡意的評論可以被歸納為惡意標簽

    除了少數例外情況,其他分類似乎是惡意評論的一個子集

    特征工程

    Rhodium 將文本變成小寫,手動將句法結構變成事物,并手動清除標點符號。

    Jagan 繪制了各種與惡意相關的特征來尋找相關性。他發現,垃圾郵件經常存在惡意。 數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    對于單個單詞和單詞對,Jagan 和 Rhodium 都使用 TF-IDF 繪制頂部單詞。

    點評

    他們似乎都遵循了所關注領域內的幾個最佳實踐步驟,包括小寫文本、處理結構和清理標點符號。然而,也有認為這些可能是潛在的特征方向,而不僅僅是噪音(例如,Francesco 發現錯字和惡意之間的相關性)。

    恐怖小說家身份識別

    Spooky Author Identification (恐怖小說家身份識別)競賽提供了三個恐怖主題作家 Edgar Allan Poe, HP Lovecraft 和 Mary Wollstonecraft Shelley 寫的一些文本片段,要求參賽者構建一個能夠將作家和特定文本進行匹配的預測模型。

    我選擇用于分析的 EDA 是 Anisotropic 的Spooky NLP and Topic Modelling Tutorial ,Bukun 的 Tutorial Detailed Spooky Fun EDA and Modelling 和 Heads or Tails 的 Treemap House of Horror Spooky EDA LDA Features

    這個數據集的有趣之處在于它的簡單性,除了作家之外,文本中幾乎沒有其他非結構化的數據。因此,所有的 EDA 都只關注用不同的方法來解析和分析語言。

    大家首先檢查數據集,然后挑出幾行來繪制每位作家的故事數目。Bukun 還研究了每位作家文章中的單詞長度,而 Anisotropic 繪制了一張整體單詞數目的條形圖。

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

     Anisotropic 表示,這些詞都是常見的詞,不僅僅出現在三位作家的恐怖故事和小說里,還有報紙、兒童讀物、宗教文本——幾乎所有其他的英語文本里都可以找到。因此,我們必須找到一種方法來對數據集進行預處理。首先去掉通常不會帶來太多信息的單詞 。

    他們都構建了詞云圖來顯示出現最頻繁的單詞:

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上) 

    Heads or Tails 根據 50 個最常見詞構建的詞云

    Heads or Tails 也對每位作家的整體句子、單個句子和字詞長度進行繪制,并發現作家之間的細微差異。

    Anisotropic 和 Bukun 討論了分詞并且移除了停用詞。他表示,這個階段的工作是嘗試將類似單詞的不同變體減少到一個單獨的術語(一個單詞不同的分支都被簡化為單個詞干)。因此,如果文中有「running」、「runs」和「run」,將變成「run」。(當然,會失去過去、現在或將來時態)。

    在分詞之后,Anisotropic 刪除了停用詞,還原了詞性并重新建立出現頻次排在前 50 的單詞的詞頻柱狀圖:

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Bukun 繪制了出現頻次前 10 的單詞的詞頻圖,并發現了一個不同的集合:

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Heads or Tails 也這樣做了,另外,還通過作家來看分詞和詞干化之后詞頻排在前面的單詞。

    Bukun 和 Heads or Tails 都使用 TF-IDF 值來查對于特定作者來說最「重要」的單詞。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Heads or Tails 將作者最重要的詞繪制在一張不同的圖表中

    Bukun 觀察到頻率最高的二元模型和三元模型(分別是兩個和三個單詞的集合)。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Heads or Tails 繪制了二元模型之間的詞關系

    Bukun 和 Heads or Tails 都進行了情緒分析,并觀察了每位作家的整體負面情緒。

    Bukun 使用了一種叫做「NRC 情感詞匯」的詞典來檢測每個文本片段中的「恐懼」、「驚喜」和「快樂」的數量,并利用詞云圖、表格、條形圖來可視化作家們的情緒。

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Bukun 繪制的與開心匹配的詞云

    特征工程

    Bukun 建議增加一些可能的特性,包括逗號、分號、冒號、空格的數量以及包含大寫字母的單詞或是以大寫字母開頭的單詞,并繪制每一種的圖像。

    Heads or Tails 強調:

    我們已經注意到,可以通過知名人物來識別這三位作家。Mary Shelley 寫了「Raymond」,Lovecraft 寫了「Herbert West」。但是對于一般的名字呢?一些作家在某些特定的情況下更樂意使用名字嗎?這是在研究完句子或字符長度之后,我們要關注的重點。

    從這個角度來看,Heads or Tails 依賴于 babynames 包,它以每年最受歡迎的名字為特征,為數據添加一個額外的特性。

    Bukun 和 Heads or Tails 都注意到作家之間性別代詞的分類問題,Heads or Tails 也注意到句子的主題、作者的首字母、尾字母以及特殊單詞的數量、每一個句子里面特殊單詞所占的比重、對話的標簽和押韻。(這是一個很酷的想法)

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Heads or Tails  繪制的各種測量值

    Heads or Tails 繪制了一張圖總結,展示了特征的相互作用:

     數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    Heads or Tails 的圖展示了特征交互

    點評

    這是一項值得研究的競賽。因為文本片段更長,而且不依賴于結構化的數據。

    他們傾向于利用小寫單詞、詞干和分詞等 NLP 常見應用,同時他們也傾向于使用比 Toxic 中更先進的技術,比如情感分析和二元、三元模型分析技術。

    在這兩個競賽中,他們都用到了 TF-IDF

    在特征工程階段,他們設計了各種各樣新特征。包括每個句子的平均單詞數、標點符號的選擇、以及單詞是否重復等。

    via:thekevinscott.com

    雷鋒網 AI 研習社編譯整理。

    雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

    數據分析秘籍在這里:Kaggle 六大比賽最全面解析(上)

    分享:
    相關文章

    知情人士

    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說