網格搜索、管道、決策樹、支持向量機、Hyperparameter調優、混淆矩陣、ROC曲線,如果你三個月前向我提起這些術語,我絕對不知道你在說什么。
然而我剛剛完成了一個項目,使用了所有這些技術、方法和工具。我的大腦已經接受了每天都會被新概念淹沒的事實,并期待著能夠立即將它們投入使用。
Flatiron School數據科學項目的第三個主要項目是一個專門關注分類的監督機器學習項目。與之前的其他項目不同,我們被要求構建預測離散目標變量的模型,而不是連續或數值目標變量。
與預測票房、電影價值或房屋銷售價格不同,我們可以在幾個不同的分類數據集中選擇,也可以選擇我們自己的一個。在搜索存儲庫和數據收集數天之后,我最終確定了一個符合我興趣的,并提出了一個需要解決的現實問題。
當我聽同伴們討論話題時,我意識到我錯過了一個難得的機會,為這個項目選擇一些積極向上、引人入勝的東西來進行調查。
我聽到學生們談論他們很想做出的與體育相關的不同預測,還有人計劃使用算法來預測電子游戲中的音樂類型或評分。非常多有趣的想法!輪到我介紹我的主題時,我深深地嘆了口氣,笨拙地解釋說,我選擇了一個有關胎兒健康結果和死亡率的數據集。是的。不知何故,無憂無慮的我挑了一個最嚴肅、最令人沮喪的話題。
然而,我的項目本身和數據的目標實際上是相當有希望和樂觀的。這一切的前提是美國持續存在的公共健康問題即胎兒死亡率。這是我非常關心的一個話題,這促使我花了幾個小時尋找用于這個目的的正確數據。
我發現這個數據集包含超過2000行患者的心電圖(CTG)記錄,包含諸如胎兒心率、子宮收縮、胎兒運動等特征。然后,每一份記錄都由“專業產科醫生”分類為正常、可疑或病理胎兒健康結果。
我將其調整為一個二元分類問題,將可疑結果和病理結果合并到一個類別中,并將其標記為“危險”。我打算證明,僅憑CTG檢查的指標就可以預測胎兒健康結果,這意味著這種預測可以自動化,而醫療服務提供商只需通過閱讀報告,就可以采取更積極的挽救生命措施。
我在著手這個項目時首先意識到的一件事是,管道基本上是一種神奇的東西,它簡化了將分類器與數據匹配的過程。
管道承擔了擴展、預處理和設置分類器的所有步驟,并將它們組合到單個對象中,從而干凈地完成流程并消除一些人為錯誤。
因為有很多不同的算法我想探索,所以我寫了一個函數。這個函數輸入一個分類器并且返回一個管道對象。(請注意,我class_weight參數設置為‘balanced’,因為我的目標變量不平衡;在我的數據中,健康狀況正常的嬰兒比危險嬰兒要多得多。)
現在,可以說比管道搜索更令人驚奇的是網格搜索的能力。
GridSearchCV允許你為一個模型檢查許多不同的超參數,并通過選擇最佳參數為所選的度量優化你的模型。
在這種情況下,我優先考慮的指標是召回率。通過對召回率進行優化,我最小化了模型預測中錯誤否定或第二類錯誤的數量。
雖然我對模型有時錯誤地預測嬰兒處于危險中沒有意見,但我對模型有時錯誤地預測嬰兒是健康的就不那么滿意了。召回率指標是這個項目最重要的指標,遠遠超過精度、準確性或其他任何評估指標。
為此我編寫了一個函數,它接受一個管道對象(例如,來自上面的函數)和一組要調優的超參數,并返回一個網格搜索對象。如果你要優化的不是召回率,比如準確性,那么你只需要更改評分參數來反映這一點。
最后,我編寫了一個函數來接收網格搜索對象(如上面的函數所創建的對象)并返回用于評估的相關信息。這才是真正神奇的地方。最后一個函數接受上面的網格搜索對象,并對模型進行優化,結果:
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.