<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          獨家 | 基于癌癥生存數(shù)據(jù)建立神經(jīng)網(wǎng)絡(luò)(附鏈接)

          共 6058字,需瀏覽 13分鐘

           ·

          2021-05-09 18:54

          作者:Jason Brownlee

          翻譯:wwl

          校對:車前子


          本文約4000字,建議閱讀3分鐘
          本文介紹了haberman乳腺癌生存二分類數(shù)據(jù)集,進行神經(jīng)網(wǎng)絡(luò)模型擬合。包含數(shù)據(jù)準備、MLP模型學習機制、模型穩(wěn)健性評估。

           

          根據(jù)新數(shù)據(jù)集開發(fā)神經(jīng)網(wǎng)絡(luò)預測模型是一個挑戰(zhàn)。

          一種方法是先對數(shù)據(jù)集進行探查,然后思考什么模型適用于這個數(shù)據(jù)集,先嘗試一些簡單的模型,最后再開發(fā)并調(diào)優(yōu)一個穩(wěn)健的模型。

          這個流程適用于為分類、回歸預測模型問題開發(fā)高效的神經(jīng)網(wǎng)絡(luò)。

          本教程中,你將學習如何開發(fā)一個多層感知機神經(jīng)網(wǎng)絡(luò)模型,用于癌癥生存二分類數(shù)據(jù)集。

          完成本教程后,你將了解到:

          • 如何加載和匯總癌癥生存數(shù)據(jù)集,根據(jù)結(jié)果來進行數(shù)據(jù)準備和模型配置。

          • 如何探索MLP模型擬合數(shù)據(jù)的學習機制。

          • 如何得到穩(wěn)健的模型,調(diào)優(yōu)并做預測。


          開始吧!

          Bernd Thaller拍攝

          概覽

          本教程分為4部份:

          • Haberman 乳腺癌生存數(shù)據(jù)集

          • 神經(jīng)網(wǎng)絡(luò)學習機制

          • 模型魯棒性評估

          • 最終的模型及預測


          Haberman 乳腺癌生存數(shù)據(jù)集

          首先,定義數(shù)據(jù)集并作數(shù)據(jù)探查。

          我們使用的是“haberman”標準二分類數(shù)據(jù)集。

          數(shù)據(jù)集描述的是乳腺癌患者的數(shù)據(jù),結(jié)局事件是患者生存,具體是指病人是否生存了五年活以上,或患者是否存活。

          這是學習不平衡數(shù)據(jù)分類問題的標準的數(shù)據(jù)集。數(shù)據(jù)集的背景描述表明,研究是在1958年到1970年期間,在芝加哥大學的Billings醫(yī)院開展的。

          數(shù)據(jù)集有306個樣本,3個輸入變量:

          • 病人在手術(shù)期間的年齡;

          • 手術(shù)的兩位數(shù)年份;

          • 檢測到的腋窩淋巴結(jié)陽性數(shù),這是衡量癌癥是否已擴散的一種手段。

           
          我們只有以上數(shù)據(jù),無法選擇組成數(shù)據(jù)集合的病例,以及病例的特征。

          盡管這個數(shù)據(jù)集描述的是乳腺癌患者的生存情況,但考慮到數(shù)據(jù)集的樣本量少,以及這些數(shù)據(jù)是基于發(fā)生在幾十年前的乳腺癌病例,因此基于這個數(shù)據(jù)集的模型并不具備泛化能力。

          備注:聲明,我們不是要治愈乳腺癌,而是在探索一種標準的分類數(shù)據(jù)集。

          以下是數(shù)據(jù)集的前5行的抽樣。


          從以下鏈接,可以對這個數(shù)據(jù)集有更多了解:


          Haberman Survival Dataset (haberman.csv)(https://github.com/jbrownlee/Datasets/blob/master/haberman.csv)


          Haberman Survival Dataset Details (haberman.names)(https://github.com/jbrownlee/Datasets/blob/master/haberman.names)


          可以直接從URL中加載數(shù)據(jù)集,保存為pandas DataFrame,如下:



          執(zhí)行這個例子,可以直接從這個URL加載數(shù)據(jù),獲得數(shù)據(jù)集的維度。

          本例中,我們可以確定,數(shù)據(jù)集有4個變量(3個輸入1個輸出變量),有306行數(shù)據(jù)。

          對于一個神經(jīng)網(wǎng)絡(luò)來說,這個數(shù)據(jù)量不算大,因此一個小的、并適當加入正則項的網(wǎng)絡(luò),可能更合適。

          另外,相對于直接拆分為訓練集和測試集,k折交叉驗證有助于生成一個更值得信賴的模型結(jié)果,因為單一的模型只需要幾秒鐘就可以擬合得到。


          接下來,可以看一看數(shù)據(jù)的總結(jié)信息,并可視化數(shù)據(jù)。


          執(zhí)行這個例子,首先加載了數(shù)據(jù),接著打印了對每個變量的統(tǒng)計信息。

          我們可以看到每個變量的均值和不同,或許在建模之前,需要先進行標準化。

          接下來,對每個變量繪制直方圖。

          我們發(fā)現(xiàn),第一個變量符合高斯分布,另外兩個輸入變量可能是指數(shù)分布。

          在每個變量上使用冪變換可以減少概率分布的偏差,從而提高模型的性能。

          我們可以看到兩個類之間的示例分布有一些偏差,這意味著分類是不平衡的。這是不平衡數(shù)據(jù)。

          有必要了解數(shù)據(jù)集不平衡的程度。

          可以用Counter對象統(tǒng)計每個分類下的樣本量,用這個統(tǒng)計結(jié)果總結(jié)分布的特征。

          完整的例子如下:

          執(zhí)行這個例子,會對數(shù)據(jù)集中類別的分布做一個總結(jié)。

          類別1包含225個樣本,約為數(shù)據(jù)集的74%,是最多的分類。類別2是未存活的樣本,只有81個,占26%。

          這個類別的分布是偏態(tài)的,但不是非常嚴重的不平衡。


          當我們評估分類準確性的時候,考慮以上信息是有幫助的,因為任何準確度在73.5%以下的模型在這個數(shù)據(jù)集上都是沒有價值的。

          現(xiàn)在我們已經(jīng)熟悉了這個數(shù)據(jù)集,接下來,一起開發(fā)神經(jīng)網(wǎng)絡(luò)模型吧。

          神經(jīng)網(wǎng)絡(luò)學習機制

          我們將用TensorFlow根據(jù)這個數(shù)據(jù)集擬合多層感知機模型。

          我們無法知道,在這個數(shù)據(jù)集上表現(xiàn)最好的超參數(shù)是多少,所以我們需要經(jīng)過實驗尋找適合的超參數(shù)。

          考慮到這是個小數(shù)據(jù)集,用小批尺寸進行批量訓練可能是個好主意,例如16或32行。開始時使用Adam版本的隨機梯度下降,因為它將自動調(diào)整學習速率,并在大多數(shù)數(shù)據(jù)集上運行良好。

          在我們認真評估模型之前,先回顧下學習機制并調(diào)整模型架構(gòu)和學習配置,直到我們有了穩(wěn)定的學習機制,然后看看如何最大限度地利用模型。

          可以通過簡單地將數(shù)據(jù)劃分為測試集和訓練集,并查看學習曲線來實現(xiàn)以上目標。這個可以幫助我們了解模型過擬合還是欠擬合,接下來,我們可以根據(jù)結(jié)果調(diào)整配置。

          首先需要確保,輸入變量都是浮點值,目標變量是0/1的整型值。

          接著,我們把數(shù)據(jù)集劃分為輸入變量和輸出變量,劃分成比例為67/33的訓練集和測試集。

          還需要保證,訓練集和測試集上不同類別數(shù)據(jù)的分布和整個數(shù)據(jù)集是一致的。

          本例中,我們可以定義一個小的MLP模型,包含一個10節(jié)點的隱藏層,一個輸出層(這個是任意選擇的)。隱藏層的激活函數(shù)用ReLu函數(shù),和he_normal 權(quán)重初始化函數(shù) ,通常這些設(shè)定在實踐中表現(xiàn)優(yōu)秀。

          ReLu函數(shù)

          https://machinelearningmastery.com/rectified-linear-activation-function-for-deep-learning-neural-networks/


          權(quán)重初始化函數(shù)

          https://machinelearningmastery.com/weight-initialization-for-deep-learning-neural-networks/


          模型的輸出是sigmoid激活后的二分類結(jié)果,我們將最小化二分類交叉熵損失函數(shù)。

          二分類交叉熵損失函數(shù)

          https://machinelearningmastery.com/how-to-choose-loss-functions-when-training-deep-learning-neural-networks/



          我們將擬合這個模型,由于是小樣本數(shù)據(jù),使用200個訓練epoch(任意選擇的),每個批量是16個樣本。

          我們認為在原始數(shù)據(jù)上擬合模型可能是個好主意,但這是個重要的起點。


          訓練結(jié)束,我們將在測試集上評估模型表現(xiàn),報告分類準確度。


          最后,我們將繪制訓練過程中的反映交叉熵損失的學習曲線。


          把以上操作整合,得到了在癌癥生存數(shù)據(jù)集上的第一個MLP模型的完整代碼示例。


          運行該示例首先在訓練數(shù)據(jù)集上擬合模型,然后在測試數(shù)據(jù)集上報告分類準確度。

          跟隨我的新書 Data Preparation for Machine Learning(https://machinelearningmastery.com/data-preparation-for-machine-learning/),開啟你的項目,其中包括所有示例的分步教程和Python源代碼文件。

          本例中,我們可以看到模型準確度超過73.5%,比上文提到的全預測為一類的準確度高。


          在訓練集和測試集上的損失值的曲線圖如下。我們可以看到模型擬合的很好,沒有出現(xiàn)欠擬合和過擬合。

          我們已經(jīng)對這個數(shù)據(jù)集上簡單的MLP模型有了一些概念,我們可以尋求更穩(wěn)健的模型評估。

          模型穩(wěn)健性評估

          K折交叉驗證的過程可以對模型效果提供更可靠的評估,雖然執(zhí)行會慢一點。

          這是因為k模型必須進行擬合和評估。當數(shù)據(jù)集很小時,這不是問題,例如癌癥生存數(shù)據(jù)集。

          我們可以用StratifiedKFold這個類,手動循環(huán)每個折子,擬合模型,得到模型評估結(jié)果,然后整個流程結(jié)束后,得到模型評估的平均值。

          https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html



          我們可以應(yīng)用這個框架得到一個可信賴的MLP模型的結(jié)果,對于不同的數(shù)據(jù)準備、模型架構(gòu)、學習配置,這個框架都適用。

          關(guān)鍵的是,在使用k-折交叉驗證前,我們先對模型在這個數(shù)據(jù)集上的學習機制有了了解。如果我們直接對模型調(diào)優(yōu) ,可能我們會一下子就得到好的結(jié)果,但如果沒有的話,我們可能不知道為什么,比如說為什么模型會過擬合或者欠擬合。

          如果我們又對模型進行了大的修改,有必要返回去確認模型是在適當收斂的。

          上文中評估MLP模型的完整代碼示例如下。

          運行示例,報告了評價過程的每次迭代模型性能,并報告了運行結(jié)束時分類準確度的均值和標準偏差。

          跟隨我的新書 Data Preparation for Machine Learning(https://machinelearningmastery.com/data-preparation-for-machine-learning/),開啟你的項目,其中包括所有示例的分步教程和Python源代碼文件。

          這個例子中,MLP模型的平均準確度是75.2%,和我們上一部分的模型結(jié)果接近。

          這證實了我們的期望,即對于這個數(shù)據(jù)集,基本模型配置可能比簡單的模型工作得更好。


          但這是個好的結(jié)果嗎?

          事實上,這是個具有挑戰(zhàn)的分類問題,74.5%的準確度結(jié)果已經(jīng)不錯了。

          接下來,讓我們看看我們?nèi)绾螖M合最終的模型并用它來預測

          最終的模型和預測

          當我們選擇了模型參數(shù),我們可以在所有數(shù)據(jù)上訓練一個最終的模型,并用模型對新數(shù)據(jù)進行預測。

          在本例中,我們將使用帶dropout的模型,和小批量訓練。

          數(shù)據(jù)準備和模型擬合按上文實現(xiàn),盡管是在整個數(shù)據(jù)集上,而不是在數(shù)據(jù)集的訓練子集上。


          我們可以利用這個模型對新的數(shù)據(jù)進行預測。

          首先,定義一行新數(shù)據(jù)。


          備注:我是提取的數(shù)據(jù)集的第一行數(shù)據(jù),預期輸出結(jié)果是‘1’。


          可以做出預測。


          然后對預測結(jié)果進行轉(zhuǎn)置,得到正確形式下可解釋的結(jié)果(是一個整數(shù))。


          本例中,我們簡單的報告下預測結(jié)果。


          把以上步驟整合起來,對haberman數(shù)據(jù)集上進行擬合最終模型,并對新數(shù)據(jù)進行預測的完整代碼示例如下所示。


          執(zhí)行示例代碼在整個數(shù)據(jù)集上擬合模型,并對新數(shù)據(jù)進行預測。
           
          跟隨我的新書 Data Preparation for Machine Learning(https://machinelearningmastery.com/data-preparation-for-machine-learning/),開啟你的項目,其中包括所有示例的分步教程和Python源代碼文件。

          本例中,我們可以看到預測結(jié)果是1


          擴展閱讀

          如果你想在這個方向繼續(xù)探索,本節(jié)提供了更多學習資源

          教程


          • How to Develop a Probabilistic Model of Breast Cancer Patient Survival

          https://machinelearningmastery.com/how-to-develop-a-probabilistic-model-of-breast-cancer-patient-survival/


          • How to Develop a Neural Net for Predicting Disturbances in the Ionosphere

          https://machinelearningmastery.com/predicting-disturbances-in-the-ionosphere/


          • Best Results for Standard Machine Learning Datasets

          https://machinelearningmastery.com/results-for-standard-classification-and-regression-machine-learning-datasets/


          • TensorFlow 2 Tutorial: Get Started in Deep Learning With tf.keras

          https://machinelearningmastery.com/tensorflow-tutorial-deep-learning-with-tf-keras/

          • A Gentle Introduction to k-fold Cross-Validation

           https://machinelearningmastery.com/k-fold-cross-validation/

          總結(jié)

          在本教程中,您了解了如何應(yīng)用癌癥生存二分類數(shù)據(jù)集開發(fā)多層感知器神經(jīng)網(wǎng)絡(luò)模型。

          具體來說,你學到了:

          • 如何加載和匯總癌癥生存數(shù)據(jù)集,并使用結(jié)果來建議要使用的數(shù)據(jù)準備和模型配置。

          • 如何在數(shù)據(jù)集上探索簡單MLP模型的學習動態(tài)。

          • 如何開發(fā)模型性能的穩(wěn)健估計,調(diào)整模型性能并對新數(shù)據(jù)進行預測。


          原標題:
          Develop a Neural Network for Cancer Survival Dataset
          原文鏈接:
          https://machinelearningmastery.com/neural-network-for-cancer-survival-dataset/

          編輯:王菁
          校對:林亦霖

          譯者簡介

          wwl

          翻譯組招募信息

          工作內(nèi)容:需要一顆細致的心,將選取好的外文文章翻譯成流暢的中文。如果你是數(shù)據(jù)科學/統(tǒng)計學/計算機類的留學生,或在海外從事相關(guān)工作,或?qū)ψ约和庹Z水平有信心的朋友歡迎加入翻譯小組。

          你能得到:定期的翻譯培訓提高志愿者的翻譯水平,提高對于數(shù)據(jù)科學前沿的認知,海外的朋友可以和國內(nèi)技術(shù)應(yīng)用發(fā)展保持聯(lián)系,THU數(shù)據(jù)派產(chǎn)學研的背景為志愿者帶來好的發(fā)展機遇。

          其他福利:來自于名企的數(shù)據(jù)科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的伙伴。


          點擊文末“閱讀原文”加入數(shù)據(jù)派團隊~




          轉(zhuǎn)載須知

          如需轉(zhuǎn)載,請在開篇顯著位置注明作者和出處(轉(zhuǎn)自:數(shù)據(jù)派ID:DatapiTHU),并在文章結(jié)尾放置數(shù)據(jù)派醒目二維碼。有原創(chuàng)標識文章,請發(fā)送【文章名稱-待授權(quán)公眾號名稱及ID】至聯(lián)系郵箱,申請白名單授權(quán)并按要求編輯。

          發(fā)布后請將鏈接反饋至聯(lián)系郵箱(見下方)。未經(jīng)許可的轉(zhuǎn)載以及改編者,我們將依法追究其法律責任。



          點擊“閱讀原文”擁抱組織


          瀏覽 62
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品中字幕久久久人妻 | 日本黄色电影网站视频 | 影音先锋成人在线资源站 | 黄色毛片儿 | 黄片网在线观看 |