小派看數據 | 實戰演練:影響乳腺腫瘤性質的顯著因子發掘——數據可視化

前言:

小派終於和大家再見面了,在沒更新的這段時間裡,小派認真地學習了更多數據分析方向的內容,有非常多的乾貨在接下來的日子裡會和大家分享。

此外,以後和大家分享的文章將會分為<小派看數據 | 乾貨筆記><小派看數據 | 實戰案例>兩個系列。前者將對種類繁多的數據分析方法進行深入淺出的介紹、比較和解讀;後者則是通過對真實數據案例的分布詳解,和大家一起從紛繁複雜的數據中挖掘最大的價值。

如果有想要分析的數據或者討論的方法,歡迎給小派留言,我會儘力滿足大家的要求。接下來我們就一起進入本期案例,用數據可視化的方法找到判別乳腺腫瘤良惡性的顯著因子。

案例背景:

乳腺癌細胞

乳腺癌是發生在乳腺腺上皮組織的惡性腫瘤,是女性中排名第一的常見惡性腫瘤,男性患者僅佔1%。在中國,每年因乳腺癌死亡的人數佔全球的9.6%,乳腺癌已成為當前社會的重大公共衛生問題。然而很多女性在患病後並沒有癥狀可循。以傲人身材著稱的美國女星安吉麗娜-朱莉因為有家族病史,寧可將乳腺切除來防患於未然。

因此,若是能通過數據分析找到惡性腫瘤相關的顯著因子,那麼對於降低誤診率和相關藥物的研發都可能會有很大幫助。

本期案例中,我們將用數據可視化的方法探索一份來自UCI資料庫的乳腺腫瘤活檢與診斷數據。在後續的的文章中,我們還會通過使用假設檢驗、決策樹等方法來發掘影響乳腺腫瘤的顯著因子。通過對比不同方法的結果,一起找出最優的數據分析方式。

數據源:UCI乳腺腫瘤數據

涉及工具:Python;AtomPai

預計耗時:15-25分鐘

數據詳情:

在之前分享過的AdaBoost模型分析案例中,我們曾經使用過這份來自UCI的乳腺腫瘤數據:

數據展示-工具:AtomPai

這份569個觀察值的數據中包含了乳腺腫瘤病變組織的細胞核的十個量化特徵。這十個特徵分別是:細胞核半徑(radius)、質地(texture)、周長(perimeter)、面積(area)、光滑度(smoothness)、緊密度(compactness)、凹陷度(concavity)、凹陷點數(concave points)、對稱度(symmetry)、分形維數(fractal dimension)。這些數據是通過對乳腺腫塊細針穿刺活檢(FNA)圖片計算得來的。診斷(Diagnosis)變數為標籤變數,1代表惡性,0代表良性。我們將根據以上十個特徵值來分析腫瘤是否為惡性。

顯微鏡下細針穿刺(FNA)抽取的乳腺細胞

了解數據:

拿到一組新數據後,往往第一步是去了解我們的數據,熟悉數據的每一個變數與特徵。這份數據一共11列變數,其中10個特徵變數,1個標籤變數。數據一共569個觀察值。0個缺失值。

數據統計-工具:AtomPai

值得注意的是,有13個觀察值之中,Concavity(凹陷度)和Concave Point(凹陷點數)兩個特徵全部為0。由於年代久遠,這13個"0"值究竟是真實數據,還是作為缺失值的一種填充方式難以得知。在這裡我們以凹凸程度為0來處理。

有了宏觀的了解後,我們來看一下數據的分布圖,首先是標籤變數Diagnosis(診斷)的分布:

柱狀圖-工具:Python

標籤變數Diagnosis(診斷)顯示良性腫瘤為357個,惡性腫瘤為212個,這樣的比例比較均衡,有利於之後的模型訓練。如果二元因變數中一個值數量很多而另一個值數量很少,在數據總量不多的情況下模型訓練起來會有bias(傾向性)。接下來再來看下特徵變數的分布圖:

直方圖-工具:AtomPai

果然,直方圖中出現了值得注意的地方。我們發現Radius(半徑), Texture(質地), Perimeter(周長), Area(面積), Compactness(緊密度), Concavity(凹陷度), Concave Point(凹陷點數)這7個變數出現了正偏態分布-Positive Skewed(以上展示Radius和Texture兩個變數的直方圖為例)。那麼長尾部分的數據就需要在我們仔細分析了。

一般離中心較遠的值有兩種情況,一種是確實出現了不尋常的值,另一種則是數據採集時發生了錄入錯誤等來自外界的問題。最好的異常值處理方法,是去聯絡到數據錄入的部門,核實數據,若正確則保留,錯誤則修改。刪除異常值是不推薦的一種方法。

信息挖掘:

了解了數據概況與各變數的分布,下一步就可以探索一下整個數據內部之間的關係了。首先,我們需要甄別哪些變數真的可以影響Diagnosis(診斷)變數,散點圖在體現多個變數的相關性時是十分方便的工具:

散點圖-工具:AtomPai

在這裡我們選取了三個對Diagnosis(診斷)變數有影響的自變數的散點圖,分別是Radius(半徑), Compactness(緊密度)和Concavity(凹陷度)。從散點圖中可以清晰地看到當這三個變數越小,Diagnosis趨向於0,反之Diagnosis趨向於1。我們可以再利用網格圖來驗證一下這個結論:

網格圖-工具:Python

以Radius(半徑)變數為例,在網格圖中該變數對於Diagnosis(診斷)的分布的影響更加明顯,因此,我們可以假設它們為影響腫瘤是否為惡性的顯著因子。

為什麼不直接肯定?因為從統計學的角度上來說,只有經過假設檢驗後,檢驗統計量處於拒絕域的情況下我們才能更有信心地說它是影響腫瘤性質的顯著因子。我們在後續的文章中還會講到,決策樹模型往往就是通過這這種方式來確認具有顯著性的自變數。

特徵工程:

接下來還有重要的一步,就是分析各個特徵變數之間的關係。想必大家早就想到了,特徵變數中,Radius(半徑)和Perimeter(周長),Area(面積)這些變數不應該是相關的嗎?如果具有強線性關係的自變數共同存在於模型中的話,則會使整個模型的質量下降,在預測因變數的過程中產生過多雜訊,所以降維在大部分建模的過程中是非常重要的一步。我們用散點圖來驗證一下各變數的關係:

散點圖-工具:AtomPai

果然,Radius(半徑)和Perimeter(周長)、Area(面積)具有一定的線性相關性(這裡只展示Radius和Area的散點圖),這是我們可以預測到的常識。值得注意的是,Radius(半徑)和Concave Point(凹陷點數)也具有一定得線性關係,半徑越大,凹凸點數也呈上升趨勢。這是我們通過散點圖得到的寶貴信息。

相關性表-工具:Python

從相關性表中可以看到,Radius(半徑)和Concave Point(凹陷點數)的相關係數為0.82,驗證了我們從散點圖中得到的結論。在建立機器學習模型的過程中,這些相關性較強的自變數一起存在時可能會降低模型預測的準確度,所以特徵工程是建模前一個非常重要的步驟。

總結:

到這裡我們已經完成了使用可視化的方法探索這份數據,小派來做一下要點總結:

  1. 數據一共569行觀察值,10列特徵變數與1列標籤變數;
  2. 10列特徵變數中,Radius, Texture, Perimeter, Area, Compactness, Concavity, Concave Point這7個變數出現了正偏態分布,在未來建模時有可能要用到對數轉換;
  3. 通過散點圖,發現Radius與Perimeter,Area,Concave Point,Concavity具有正相關的線性相關性;
  4. 通過散點圖和網格圖兩個工具,發現Radius, Compactness和Concavity這三個變數對腫瘤是否為惡性有明顯的影響,我們假設它們是影響腫瘤是否為惡性的顯著因子;

很多時候我們理所當然地認為搭建模型是探索數據最好的方法,其實只要用對了有針對性的方法,同樣也可以從繁複的數據中發掘有價值的重要信息。最後我們對幾個常用的數據可視化方法和使用場景做一個歸納:

直方圖(Histgram)——數據分布

熱圖(Heatmap)——數據分布、數據相關性

折線圖(Line chart)——數據趨勢

散點圖(Scatter plot)——數據相關性

餅狀圖(Pie chart)——數據比例

下一期小派將會在<小派看數據 | 實戰演練:影響乳腺腫瘤性質的顯著因子發掘——決策樹>中通過建立決策樹模型,和大家一起用另一種方法尋找影響乳腺腫瘤性質的顯著因子。

參考資料:

[1] 乳腺癌介紹


推薦閱讀:

預測:國內可視化數據分析工具2018功能趨勢
大眾點評數據分析
小白數據分析之「IMDB電影」

TAG:數據分析 | 機器學習 | 數據可視化 |