數(shù)據(jù)分析秘籍在這里:Kaggle六大比賽最全面解析(上)
筆者按,Kaggle 上有各式各樣的數(shù)據(jù)挖掘類比賽,很多參賽者也樂于分享自己的經(jīng)驗(yàn),從他人的經(jīng)驗(yàn)中進(jìn)行總結(jié)歸納,對(duì)自己的實(shí)踐也非常重要。
本文將以 Kaggle 上 6 個(gè)不同的比賽為例,介紹常見的三類數(shù)據(jù)(結(jié)構(gòu)化數(shù)據(jù),NLP 數(shù)據(jù),圖像數(shù)據(jù))分析經(jīng)驗(yàn),以助力大家提升數(shù)據(jù)分析能力。此文為上篇,主要介紹結(jié)構(gòu)化數(shù)據(jù)和 NLP 數(shù)據(jù),包含 Titanic 比賽,房?jī)r(jià)預(yù)測(cè)比賽,惡意評(píng)論分類,恐怖小說家身份識(shí)別。下篇將會(huì)介紹兩個(gè)極具特色的圖像類比賽——樹葉分類競(jìng)賽(Leaf Classification)和肺癌檢測(cè)比賽(Data Science Bowl 2017)。
正文如下,編譯整理:
建立準(zhǔn)確模型的關(guān)鍵是全面了解正在使用的數(shù)據(jù),但數(shù)據(jù)通常是混亂的。在我自學(xué)機(jī)器學(xué)習(xí)的前幾個(gè)月,對(duì)如何理解數(shù)據(jù)并沒有很多的想法。我假設(shè)數(shù)據(jù)來自一個(gè)自底向上組織完好的包,或者至少有一組明確的步驟可以遵循。
查看別人的代碼之后,我發(fā)現(xiàn)大家理解、可視化和分析相同數(shù)據(jù)集的方式是不同的,對(duì)此我很震驚。我決定通讀幾種不同的數(shù)據(jù)分析方式,找出其中的異同點(diǎn),并提煉出一套理解數(shù)據(jù)集的最佳實(shí)踐或策略,以便更好地利用它們進(jìn)行數(shù)據(jù)分析。
本文中,我選擇了一些在 Kaggle 上公開的探索性數(shù)據(jù)分析(EDA)。這些分析將交互式代碼片段與文章結(jié)合在一起,有助于提供數(shù)據(jù)的鳥瞰圖或梳理數(shù)據(jù)中的模式。
我同時(shí)研究了特征工程,這是一種獲取現(xiàn)有數(shù)據(jù)并用一些方法將其轉(zhuǎn)化,賦予數(shù)據(jù)其他含義的技術(shù)(例如,獲取時(shí)間戳并提取 DAY_OF_WEEK 列,這些列可用于預(yù)測(cè)商店中的銷售情況)。
我想看看各種不同的數(shù)據(jù)集,所以我選擇了:
- 結(jié)構(gòu)化數(shù)據(jù)
- NLP(自然語言)
- 數(shù)據(jù)圖像數(shù)據(jù)
結(jié)構(gòu)化數(shù)據(jù)
結(jié)構(gòu)化數(shù)據(jù)集是包含訓(xùn)練和測(cè)試數(shù)據(jù)的電子表格。電子表格可能包含分類變量(顏色,如綠色、紅色和藍(lán)色),連續(xù)變量(年齡,如 4、15 和 67)和序數(shù)變量(教育程度,如小學(xué)、高中、大學(xué))。
訓(xùn)練數(shù)據(jù)表中包括一個(gè)嘗試解決的目標(biāo)列,這些列不會(huì)出現(xiàn)在測(cè)試數(shù)據(jù)中。我所研究的大部分 EDA 都側(cè)重于梳理出目標(biāo)變量與其他列之間的潛在關(guān)聯(lián)性。
我們的主要目的是尋找不同變量之間的關(guān)聯(lián)性,有很多切分?jǐn)?shù)據(jù)的方法。可視化的選擇更多。
特征工程可以讓你充分發(fā)揮想象力,不同參賽選手在合成特征或?qū)⒎诸愄卣骱喜樾绿卣鲿r(shí),都有不同的方法。
讓我們更深入地看看 Titanic competition 和 House Prices competition 這兩項(xiàng)比賽。
Titanic
Titanic 比賽非常受初學(xué)者歡迎,很多 Kaggle 用戶都不斷參與這個(gè)比賽。因此,這個(gè)比賽的 EDA 往往寫得很好,并且有詳細(xì)記錄,是我看到的最清晰的。
數(shù)據(jù)集包括一個(gè)訓(xùn)練集電子表格,其中包含一列「Survived」,表示乘客是否幸存,以及其他補(bǔ)充數(shù)據(jù),如年齡、性別、票價(jià)等等。
我選擇用于分析的 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 都以原始指標(biāo)開始。
數(shù)據(jù)預(yù)處理過程中對(duì)空值或缺失值進(jìn)行處理是關(guān)鍵一步。本文選取的三個(gè) EDA,一個(gè)在前期處理了這一問題,另外兩個(gè)在特征工程階段進(jìn)行處理。
I,Coder 反對(duì)指定一個(gè)隨機(jī)數(shù)來填補(bǔ)缺失的年齡:
正如我們前面看到的,Age 特征有 177 個(gè)空值。要替換這些 NaN 值,我們可以為它們指定數(shù)據(jù)集的平均年齡。但問題是,有許多不同年齡段的人,我們不能把 4 歲小孩的平均年齡分配到 29 歲。有什么方法可以找出乘客的年齡段?我們可以檢查名稱特征。在這個(gè)特征中,我們可以看到像先生或夫人的稱呼,我們可以將先生和夫人的平均值分配給各個(gè)年齡組。
I,Coder 將特征工程作為純數(shù)據(jù)分析的一部分,然而其他兩位作者認(rèn)為它是一個(gè)獨(dú)立的步驟。
這三位 kernel 作者在深入了解數(shù)據(jù)、找出數(shù)據(jù)間潛在相關(guān)性時(shí),都非常依賴圖表和可視化。他們使用的圖表包括因子圖、交叉表、條形圖、餅圖和小提琴圖(結(jié)合箱線圖和密度圖特征的一種圖)等等。
你可能對(duì)泰坦尼克號(hào)中的「女性與兒童優(yōu)先」這句話很熟悉。在最初的數(shù)據(jù)分析中,對(duì)每位作者來說,年齡和性別這兩個(gè)特征很重要。也可以對(duì)收入背景(如票價(jià)所示)進(jìn)行一些詳細(xì)的檢測(cè)。
船上的男性比女性多很多。盡管如此,幸存的女性幾乎是幸存男性的兩倍。女性在船上的幸存率約為75%,而男性約為18-19%。——I,Coder
Jekaterina 和 I,Coder 都是基于對(duì)圖表和數(shù)據(jù)的視覺檢測(cè)得出結(jié)論,如 Jekaterina 所寫:
- 性別:女性的幸存機(jī)會(huì)更高。
- 船艙等級(jí):擁有頭等艙票更有可能幸存。
- 血親關(guān)系和規(guī)模:中等規(guī)模的家庭比獨(dú)自旅行的人或大家庭的幸存率更高。原因可能是單獨(dú)的人會(huì)想犧牲自己去幫助別人。對(duì)于大家庭,我認(rèn)為是整個(gè)家庭太難管理,因此家族成員都在尋找彼此而不是忙著上船逃生。
救生船 C 有更高的幸存率。有趣的是,大部分頭等艙的乘客乘坐的就是救生船 C。
Deja Vu 的 EDA 在分析的每一步都記錄了一個(gè)準(zhǔn)確的數(shù)字,就每個(gè)特征對(duì)最終預(yù)測(cè)的重要性提供了一個(gè)很好的反饋。
特征工程
三位 kernel 作者的特征工程存在很多可變性。
每位作者選擇不同數(shù)量的 bucket 作為連續(xù)變量,如年齡和票價(jià)。與此同時(shí),他們都以不同的方式處理家庭關(guān)系,I,Coder 建立了一個(gè) SibSip(血親關(guān)系)——是獨(dú)自一人還是與家人(配偶或兄弟姐妹)一起(family_size 和 alone),Jekaterina 則列出了一個(gè)客艙bin,并提出以 child(兒童)或 adult(成人)作為特征。
I,Coder 在剔除不相關(guān)的列時(shí)特別激進(jìn):
- 名稱 —>我們不需要名稱特征,因?yàn)樗荒苻D(zhuǎn)換為任何分類值。
- 年齡 —>我們有 Age_band 特征,所以不需要這個(gè)。
- 船票 —>它是不能被分類的隨機(jī)字符串。
- 票價(jià) —>我們有 Fare_cat 特征,所以不需要。
- 客艙 —>有許多缺失值,也有許多乘客有多個(gè)艙位。所以這是一個(gè)無用特征。
- 票價(jià)范圍 —>我們有 Fare_cat 特征。
- 乘客身份 —>無法分類。
對(duì)于填補(bǔ)步驟,Jekaterina 寫道:
- 上的救生船:用一個(gè)主要類來填充
- 船艙等級(jí):因?yàn)槠眱r(jià)中只有一個(gè)缺失值,我們將用相應(yīng)船艙等級(jí)的中值進(jìn)行填充
- 年齡:有幾種輸入技術(shù),我們將使用均值上下范圍內(nèi)的隨機(jī)數(shù)進(jìn)行填充
她確保新的填充數(shù)據(jù)不會(huì)破壞平均值,進(jìn)行了總結(jié)了:
點(diǎn)評(píng)
三位作者都有檢查數(shù)據(jù)并描述整體形狀。
I,Coder 考慮了整體的缺失值,而 Jekaterina 在接近尾聲時(shí)才開始考慮。
每個(gè)人都著眼于幸存者的分類,然后按性別分類幸存者。交叉列表、因子圖和小提琴圖都是常用的圖表。Jekaterina 還繪制了一些非常有趣的圖表。
當(dāng)涉及到特征工程時(shí),作者們有些分歧。作者在構(gòu)建新特征的問題上存在差異,一些人將其視為一個(gè)獨(dú)立的步驟,另一些人則在初步數(shù)據(jù)分析時(shí)對(duì)其進(jìn)行處理。圍繞分箱的選擇各不相同,隨著年齡、產(chǎn)權(quán)和票價(jià)的不同,所收到的 bucket 數(shù)量都不同,并且只有 Jekaterina 構(gòu)建了一個(gè)離散的 child/adult(兒童/成人)特征。
對(duì)于缺失值的填充方法也不同。I,Coder 建議查看現(xiàn)有數(shù)據(jù)以預(yù)測(cè)估算值,而 Jekaterina 確保她的估算數(shù)據(jù)不影響均值。
他們?cè)谒伎己吞幚頂?shù)據(jù)上有一些明顯的相似之處,主要是在可視化和特征工程上有些差異。
房?jī)r(jià)
房?jī)r(jià)預(yù)測(cè)是另一種結(jié)構(gòu)化數(shù)據(jù)比賽。它比上面的 Titanic 比賽有更多的變量,包括分類、順序和一些連續(xù)特征。
我所選擇的用來分析的 EDA 是 Pedro Marcelino 的 Comprehensive Data Exploration with Python,Angela的 Detailed Data Exploration in Python,以及Sangeon Park的 Fun Python EDA Step by Step。
雖然這些數(shù)據(jù)在類型上類似 Titanic,但實(shí)際上復(fù)雜得多。
在愛荷華州埃姆斯住宅問題中,有 79 個(gè)解釋變量用來描述這些房子的方方面面。該競(jìng)賽要求你預(yù)測(cè)每間房的價(jià)格。
Angela 和 Pedro 花了一些時(shí)間來研究與 Titanic 比賽中類似的原始數(shù)據(jù)。Angela 在直方圖上畫出了售價(jià),并繪制了關(guān)于這些特征的熱圖。而 Pedro 也描繪了售價(jià),并得出了以下結(jié)論:
- 偏離了正態(tài)分布
- 有明顯的正偏態(tài)
- 出現(xiàn)了尖峰態(tài)
之后,Pedro 將自己置于買家的角度,猜測(cè)哪些特性對(duì)他來說很重要,從而來看他的選擇和售價(jià)之間的關(guān)系。之后,他建立了一個(gè)熱圖,讓自己對(duì)特征有更加客觀的觀察。
相比之下,Angela 以一種更加客觀的方式來描述,她通過相關(guān)關(guān)系列出了數(shù)字特征,也描繪了與售價(jià)相關(guān)的特征圖,從數(shù)據(jù)中尋找模型。
Sang-eon 果斷剔除了缺失值和離群值(并使用線性回歸估算了臨界線附近的異常值),之后才開始描繪與售價(jià)相關(guān)的多方面特征。
Pedro 一直在尋找數(shù)據(jù)之間的相關(guān)性,以檢查數(shù)據(jù)丟失問題。他提出:
- 丟失數(shù)據(jù)有多普遍?
- 丟失數(shù)據(jù)是隨機(jī)的還是有模式的?
這些問題的答案對(duì)于實(shí)踐很重要,缺少數(shù)據(jù)可能意味著樣本容量的減少。這會(huì)阻止我們進(jìn)一步的分析。從真實(shí)性的角度來看,我們需要確保數(shù)據(jù)丟失不會(huì)導(dǎo)致偏頗。
為解決這些問題,Pedro 繪制了缺失單元的總數(shù)以及百分比,并選擇刪除了 15% 或是更多包含缺失數(shù)據(jù)的單元格所在的列。他再次依賴主觀選擇來決定移除哪些特征:
……我們會(huì)錯(cuò)過這些數(shù)據(jù)嗎?我不這么想。這些變量似乎都不是很重要,因?yàn)樗鼈冎械拇蠖鄶?shù)都不是我們?cè)谫徺I房子時(shí)所要考慮的方面。此外,通過仔細(xì)觀察變量,比如「PoolQC」、「MiscFeature」和「fireplacery」等變量很有可能導(dǎo)致異常值出現(xiàn),因此我們很樂意刪除它們。
Pedro 對(duì)缺失數(shù)據(jù)的處理方法是,要么刪除整個(gè)列(如果它們包含有大量缺失值),要么刪除只有少數(shù)缺失值的行。他還建立了一個(gè)啟發(fā)式的解決異常值的方法:
最主要是設(shè)定一個(gè)閾值來定義觀測(cè)值是否為異常值。為此,我們將數(shù)據(jù)標(biāo)準(zhǔn)化。在這種情況下,數(shù)據(jù)標(biāo)準(zhǔn)化意味著將數(shù)據(jù)值轉(zhuǎn)換為平均值為 0,標(biāo)準(zhǔn)差為 1 的數(shù)據(jù)。
他的結(jié)論是,從靜態(tài)的角度來看,沒什么可擔(dān)心的。但在重新審查了數(shù)據(jù)之后,他刪除了一些覺得可疑的數(shù)據(jù)點(diǎn)。
特征工程
Sangeon 檢查了數(shù)據(jù)的偏態(tài)和峰度,并做了一個(gè) wilxocc -rank 測(cè)試。他用一個(gè)非常好看的 3D 圖進(jìn)行總結(jié):
與此同時(shí),Pedro 討論了這些數(shù)據(jù)的正態(tài)性、同方差性、線性度和無相關(guān)誤差,他將數(shù)據(jù)歸一化,并發(fā)現(xiàn)其他三個(gè)問題也得到了很好的解決。
點(diǎn)評(píng)
這三個(gè) kernel 的作者都沒有做過多的特征工程分析,可能是因?yàn)閿?shù)據(jù)集中已經(jīng)有很多的特性了。
有很多策略來決定如何處理這些數(shù)據(jù),有些作者采用了主觀策略,有些則直接采用更加客觀的測(cè)量。對(duì)于何時(shí)以及如何剔除缺失數(shù)據(jù)或異常值,他們沒有達(dá)成明確的共識(shí)。
與之前 Titanic 競(jìng)賽相比,這里更多的關(guān)注于統(tǒng)計(jì)方法和完整性??赡苁且?yàn)橛懈嗟奶卣餍枰幚?,也有可能是無效的統(tǒng)計(jì)結(jié)果會(huì)對(duì)整體產(chǎn)生更大的影響。
自然語言處理
自然語言或 NLP 數(shù)據(jù)集包含單詞或句子。雖然核心數(shù)據(jù)類型與結(jié)構(gòu)化數(shù)據(jù)競(jìng)賽中的相同,但用于自然語言分析的工具——文本是特定的,這會(huì)導(dǎo)致不同的分析策略。
在其原始形式中,語言不易被機(jī)器學(xué)習(xí)模型識(shí)別。為了將其轉(zhuǎn)換為適合神經(jīng)網(wǎng)絡(luò)的格式,需要對(duì)其進(jìn)行變形。一種流行的技術(shù)是 Bag of Words(詞袋),其中句子被有效地轉(zhuǎn)換為 0 或 1 的集合,即特定單詞是否出現(xiàn)。(不出現(xiàn)為 0,出現(xiàn)為 1)
由于需要轉(zhuǎn)換數(shù)據(jù),大多數(shù) Notebook 的前幾個(gè)步驟傾向于將文本轉(zhuǎn)換為機(jī)器可讀的內(nèi)容,并且這一步驟都趨于相似。之后,大家的方法會(huì)出現(xiàn)很大差異,并對(duì)特征工程應(yīng)用各種不同的可視化和技術(shù)。
惡意評(píng)論分類
我看到的第一個(gè) NLP 比賽是 Toxic Comment Classifcation Competition(惡意評(píng)論分類),包括一個(gè)數(shù)據(jù)集,其中大量數(shù)據(jù)來自維基百科討論頁面的評(píng)論,通過評(píng)論在等級(jí)上的得分,來區(qū)分是侮辱、淫穢,還是惡意評(píng)論等。參與者面臨的挑戰(zhàn)是預(yù)測(cè)給定評(píng)論的惡意標(biāo)簽。
我選擇用于分析的 EDA 是 Jagan 的 Stop the S@#$ - Toxic Comments EDA,Rhodium Beng 的 Classifying Multi-label Comments 和 Francisco Mendez 的 Don't Mess With My Mothjer。
三位作者都從描述數(shù)據(jù)集開始,隨機(jī)抽取了一些評(píng)論。雖然沒有缺失值,但評(píng)論中有很多噪音,并且不清楚這種噪音在最終的數(shù)據(jù)分析中是否有用。
惡意程度在各個(gè)類別之中不是均勻分布的。因此,我們可能會(huì)遇到分類失衡問題。—— Jagan
Francisco 剔除掉無實(shí)際意義的詞(例如「and」或「the」)。他用雙標(biāo)圖繪制出一個(gè)特定單詞最適合的類別。
雙標(biāo)圖中,大多數(shù)單詞都是正常排列的,也有一些例外,肥胖與厭惡有相關(guān)性,這很令人驚訝,因?yàn)樗菆D表底部唯一的非種族詞語,圖表中有一些通用的冒犯性詞語,像die(死亡)這樣的詞語只與威脅有關(guān)。
Francisco 之后提出錯(cuò)別字和惡意之間是否存在關(guān)聯(lián)。
顯然是有的,而且令人驚訝的是,當(dāng) mother 這個(gè)單詞拼寫錯(cuò)誤的時(shí)候從來都不會(huì)跟厭惡或威脅扯上關(guān)系,但當(dāng)它拼寫正確時(shí),就會(huì)有一些關(guān)于厭惡和威脅的評(píng)論。是不是人們傾向于在威脅某人或表達(dá)厭惡的時(shí)候下筆更謹(jǐn)慎一些呢?
隨著 Francisco 進(jìn)一步的挖掘,他發(fā)現(xiàn)在很多情況下,惡意評(píng)論中包括一遍又一遍復(fù)制粘貼的短語。在刪除重復(fù)的單詞,重新分析后,他發(fā)現(xiàn)了一組新的相關(guān)性。
普通的惡意評(píng)論中一般使用溫和的詞,如母親、地獄、槍、愚蠢、白癡和閉嘴等,一些惡意的淫穢評(píng)論中會(huì)使用 f-word。從雙標(biāo)圖中也可以知道惡意和侮辱是相似的,至少是有攻擊性的,而更嚴(yán)重就是厭惡和威脅。
這三位作者都利用數(shù)據(jù)可視化取得了很好的效果。
Rhodium 創(chuàng)建一個(gè)字符長(zhǎng)度直方圖和分類類別之間的熱圖,并發(fā)現(xiàn)了一些標(biāo)簽之間高度相關(guān),例如,侮辱評(píng)論有 74% 的可能也是淫穢的。
Jagan 繪制了一些詞云、熱圖和交叉表,觀察到:
- 非常惡意的評(píng)論可以被歸納為惡意標(biāo)簽
- 除了少數(shù)例外情況,其他分類似乎是惡意評(píng)論的一個(gè)子集
特征工程
Rhodium 將文本變成小寫,手動(dòng)將句法結(jié)構(gòu)變成事物,并手動(dòng)清除標(biāo)點(diǎn)符號(hào)。
Jagan 繪制了各種與惡意相關(guān)的特征來尋找相關(guān)性。他發(fā)現(xiàn),垃圾郵件經(jīng)常存在惡意。
對(duì)于單個(gè)單詞和單詞對(duì),Jagan 和 Rhodium 都使用 TF-IDF 繪制頂部單詞。
點(diǎn)評(píng)
他們似乎都遵循了所關(guān)注領(lǐng)域內(nèi)的幾個(gè)最佳實(shí)踐步驟,包括小寫文本、處理結(jié)構(gòu)和清理標(biāo)點(diǎn)符號(hào)。然而,也有認(rèn)為這些可能是潛在的特征方向,而不僅僅是噪音(例如,F(xiàn)rancesco 發(fā)現(xiàn)錯(cuò)字和惡意之間的相關(guān)性)。
恐怖小說家身份識(shí)別
Spooky Author Identification (恐怖小說家身份識(shí)別)競(jìng)賽提供了三個(gè)恐怖主題作家 Edgar Allan Poe, HP Lovecraft 和 Mary Wollstonecraft Shelley 寫的一些文本片段,要求參賽者構(gòu)建一個(gè)能夠?qū)⒆骷液吞囟ㄎ谋具M(jìn)行匹配的預(yù)測(cè)模型。
我選擇用于分析的 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。
這個(gè)數(shù)據(jù)集的有趣之處在于它的簡(jiǎn)單性,除了作家之外,文本中幾乎沒有其他非結(jié)構(gòu)化的數(shù)據(jù)。因此,所有的 EDA 都只關(guān)注用不同的方法來解析和分析語言。
大家首先檢查數(shù)據(jù)集,然后挑出幾行來繪制每位作家的故事數(shù)目。Bukun 還研究了每位作家文章中的單詞長(zhǎng)度,而 Anisotropic 繪制了一張整體單詞數(shù)目的條形圖。
Anisotropic 表示,這些詞都是常見的詞,不僅僅出現(xiàn)在三位作家的恐怖故事和小說里,還有報(bào)紙、兒童讀物、宗教文本——幾乎所有其他的英語文本里都可以找到。因此,我們必須找到一種方法來對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理。首先去掉通常不會(huì)帶來太多信息的單詞 。
他們都構(gòu)建了詞云圖來顯示出現(xiàn)最頻繁的單詞:
Heads or Tails 也對(duì)每位作家的整體句子、單個(gè)句子和字詞長(zhǎng)度進(jìn)行繪制,并發(fā)現(xiàn)作家之間的細(xì)微差異。
Anisotropic 和 Bukun 討論了分詞并且移除了停用詞。他表示,這個(gè)階段的工作是嘗試將類似單詞的不同變體減少到一個(gè)單獨(dú)的術(shù)語(一個(gè)單詞不同的分支都被簡(jiǎn)化為單個(gè)詞干)。因此,如果文中有「running」、「runs」和「run」,將變成「run」。(當(dāng)然,會(huì)失去過去、現(xiàn)在或?qū)頃r(shí)態(tài))。
在分詞之后,Anisotropic 刪除了停用詞,還原了詞性并重新建立出現(xiàn)頻次排在前 50 的單詞的詞頻柱狀圖:
Bukun 繪制了出現(xiàn)頻次前 10 的單詞的詞頻圖,并發(fā)現(xiàn)了一個(gè)不同的集合:
Heads or Tails 也這樣做了,另外,還通過作家來看分詞和詞干化之后詞頻排在前面的單詞。
Bukun 和 Heads or Tails 都使用 TF-IDF 值來查對(duì)于特定作者來說最「重要」的單詞。
Bukun 觀察到頻率最高的二元模型和三元模型(分別是兩個(gè)和三個(gè)單詞的集合)。
Bukun 和 Heads or Tails 都進(jìn)行了情緒分析,并觀察了每位作家的整體負(fù)面情緒。
Bukun 使用了一種叫做「NRC 情感詞匯」的詞典來檢測(cè)每個(gè)文本片段中的「恐懼」、「驚喜」和「快樂」的數(shù)量,并利用詞云圖、表格、條形圖來可視化作家們的情緒。
特征工程
Bukun 建議增加一些可能的特性,包括逗號(hào)、分號(hào)、冒號(hào)、空格的數(shù)量以及包含大寫字母的單詞或是以大寫字母開頭的單詞,并繪制每一種的圖像。
Heads or Tails 強(qiáng)調(diào):
我們已經(jīng)注意到,可以通過知名人物來識(shí)別這三位作家。Mary Shelley 寫了「Raymond」,Lovecraft 寫了「Herbert West」。但是對(duì)于一般的名字呢?一些作家在某些特定的情況下更樂意使用名字嗎?這是在研究完句子或字符長(zhǎng)度之后,我們要關(guān)注的重點(diǎn)。
從這個(gè)角度來看,Heads or Tails 依賴于 babynames 包,它以每年最受歡迎的名字為特征,為數(shù)據(jù)添加一個(gè)額外的特性。
Bukun 和 Heads or Tails 都注意到作家之間性別代詞的分類問題,Heads or Tails 也注意到句子的主題、作者的首字母、尾字母以及特殊單詞的數(shù)量、每一個(gè)句子里面特殊單詞所占的比重、對(duì)話的標(biāo)簽和押韻。(這是一個(gè)很酷的想法)
Heads or Tails 繪制了一張圖總結(jié),展示了特征的相互作用:
點(diǎn)評(píng)
這是一項(xiàng)值得研究的競(jìng)賽。因?yàn)槲谋酒胃L(zhǎng),而且不依賴于結(jié)構(gòu)化的數(shù)據(jù)。
他們傾向于利用小寫單詞、詞干和分詞等 NLP 常見應(yīng)用,同時(shí)他們也傾向于使用比 Toxic 中更先進(jìn)的技術(shù),比如情感分析和二元、三元模型分析技術(shù)。
在這兩個(gè)競(jìng)賽中,他們都用到了 TF-IDF。
在特征工程階段,他們?cè)O(shè)計(jì)了各種各樣新特征。包括每個(gè)句子的平均單詞數(shù)、標(biāo)點(diǎn)符號(hào)的選擇、以及單詞是否重復(fù)等。