說明:這是一個機器學習實戰(zhàn)項目(附帶數(shù)據(jù)+代碼+文檔+代碼講解)啄枕,如需數(shù)據(jù)+代碼+文檔+代碼講解可以直接到文章最后獲取。
1.項目背景
在當今醫(yī)療健康領域为狸,乳腺癌作為威脅女性健康的主要惡性腫瘤之一辐怕,其早期診斷與精準治療對于提高患者生存率至關重要社搅。隨著醫(yī)學信息學與人工智能技術的飛速發(fā)展青扔,利用大數(shù)據(jù)分析逻炊、機器學習以及深度學習等先進手段構建乳腺癌分類預測模型佑淀,已成為研究熱點和臨床實踐的重要方向卷要。
近年來僧叉,全球乳腺癌發(fā)病率持續(xù)上升瓶堕,成為全球范圍內(nèi)女性癌癥發(fā)病率最高的疾病之一谭梗。盡管乳腺癌在早期發(fā)現(xiàn)時治療效果較為理想凄吏,但傳統(tǒng)的診斷方法如鉬靶攝影、超聲檢查及組織活檢等存在一定的局限性图柏,如誤診率蚤吹、漏診率問題以及對患者造成的身體與心理負擔随抠。因此拱她,開發(fā)高效、準確且便捷的乳腺癌分類預測模型诸蚕,不僅能夠提高診斷效率背犯,還能促進個性化醫(yī)療方案的制定漠魏,為患者帶來更為及時有效的干預措施妄均。
研究意義:
提升早期診斷率:通過分析乳腺影像學、生物標志物壤巷、遺傳學及臨床數(shù)據(jù)瞧毙,構建的預測模型能夠有效識別乳腺癌早期跡象宙彪,為患者爭取寶貴的治療時間释漆。
個性化醫(yī)療策略:結合患者的個體差異,預測模型能輔助醫(yī)生定制化治療方案檀训,實現(xiàn)精準醫(yī)療峻凫。
資源優(yōu)化配置:高效預測模型可減少不必要的檢查和治療览露,優(yōu)化醫(yī)療資源分配差牛,減輕公共衛(wèi)生系統(tǒng)的負擔偏化。
促進科研進展:模型的開發(fā)與驗證過程能夠深化對乳腺癌生物學機制的理解,推動相關基礎研究與技術創(chuàng)新驶冒。
基于以上背景骗污,本研究擬采用先進的機器學習算法沈条,結合豐富的乳腺癌臨床數(shù)據(jù)集,構建一個高度準確且具有臨床實用價值的乳腺癌分類預測模型涕烧。最終目標是為乳腺癌的早期篩查與精準管理提供科學依據(jù)议纯,進而改善患者預后仲翎,提升公眾健康水平溯香。?
本項目通過邏輯回歸分類模型玫坛、決策樹分類模型包晰、隨機森林分類模型和XGBoost分類模型實現(xiàn)乳腺癌分類預測伐憾。?????
2.數(shù)據(jù)獲取
本次建模數(shù)據(jù)來源于網(wǎng)絡(本項目撰寫人整理而成)树肃,數(shù)據(jù)項統(tǒng)計如下:
數(shù)據(jù)詳情如下(部分展示):
3.數(shù)據(jù)預處理
3.1?用Pandas工具查看數(shù)據(jù)
使用Pandas工具的head()方法查看前五行數(shù)據(jù):?
關鍵代碼:
3.2數(shù)據(jù)缺失查看
使用Pandas工具的info()方法查看數(shù)據(jù)信息:
從上圖可以看到,總共有31個變量乡话,數(shù)據(jù)中無缺失值耳奕,共569條數(shù)據(jù)屋群。
關鍵代碼:?
3.3數(shù)據(jù)描述性統(tǒng)計
通過Pandas工具的describe()方法來查看數(shù)據(jù)的平均值谓晌、標準差纸肉、最小值喊熟、分位數(shù)芥牌、最大值壁拉。
關鍵代碼如下:?
4.探索性數(shù)據(jù)分析
4.1 label變量柱狀圖
用Matplotlib工具的plot()方法繪制柱狀圖:
4.2?label=1樣本mean radius變量分布直方圖
用Matplotlib工具的hist()方法繪制直方圖:
4.3?相關性分析
從上圖中可以看到,數(shù)值越大相關性越強痘昌,正值是正相關辆苔、負值是負相關驻啤。
5.特征工程
5.1?建立特征數(shù)據(jù)和標簽數(shù)據(jù)
關鍵代碼如下:
5.2?數(shù)據(jù)均衡化
通過上圖可以看到骑冗,數(shù)據(jù)均衡化后沐旨,標簽兩種樣本的數(shù)量一致榨婆。
5.3?數(shù)據(jù)集拆分
通過train_test_split()方法按照80%訓練集良风、20%測試集進行劃分烟央,關鍵代碼如下:
6.構建分類模型?
主要使用邏輯回歸分類算法疑俭、決策樹分類算法、隨機森林分類算法和XGBoost分類算法啄寡,用于目標分類挺物。??
6.1?構建模型?
7.模型評估
7.1評估指標及結果?
評估指標主要包括準確率识藤、查準率痴昧、查全率、F1分值等等秧骑。
從上表可以看出,4個模型的F1分值都在0.9以上侵歇,說明這模型效果較好惕虑,其中邏輯回歸模型F1最高為0.9718磨镶。 ????
7.2?分類報告
邏輯回歸分類模型:
從上圖可以看出琳猫,分類為0的F1分值為0.97脐嫂;分類為1的F1分值為0.97账千。
決策樹分類模型:
從上圖可以看出,分類為0的F1分值為0.95鞭衩;分類為1的F1分值為0.94论衍。
隨機森林分類模型:
?從上圖可以看出饲齐,分類為0的F1分值為0.97捂人;分類為1的F1分值為0.96滥搭。
XGBoost分類模型:
從上圖可以看出瑟匆,分類為0的F1分值為0.97;分類為1的F1分值為0.96疾嗅。
7.3?混淆矩陣
邏輯回歸分類模型:
從上圖可以看出代承,實際為0預測不為0的 有4個樣本渐扮;實際為1預測不為1的 有0個樣本。?
決策樹分類模型:
從上圖可以看出膀估,實際為0預測不為0的 有5個樣本察纯;實際為1預測不為1的 有3個樣本捐寥。?
隨機森林分類模型:
從上圖可以看出握恳,實際為0預測不為0的 有2個樣本捺僻;實際為1預測不為1的 有3個樣本。
XGBoost分類模型:
從上圖可以看出拔稳,實際為0預測不為0的 有2個樣本巴比;實際為1預測不為1的 有3個樣本轻绞。
7.4?ROC曲線
邏輯回歸分類模型:
從上圖可以看出政勃,邏輯回歸分類模型的AUC值為1.0兼砖。
決策樹分類模型:
從上圖可以看出讽挟,決策樹分類模型的AUC值為0.94戏挡。
隨機森林分類模型:
從上圖可以看出褐墅,隨機森林分類模型的AUC值為0.99妥凳。
XGBoost分類模型:
從上圖可以看出逝钥,XGBoost分類模型的AUC值為1.0艘款。
8.結論與展望
綜上所述哗咆,本文采用了邏輯回歸益眉、決策樹、隨機森林和XGBoost算法來構建分類模型澈歉,最終證明了4種模型效果良好埃难,其中邏輯回歸模型效果最優(yōu)涤久。此模型可用于日常產(chǎn)品的預測拴竹。??
說明:進入作者個人主頁栓拜,可以查看更多文章內(nèi)容,點擊作者頭像挑势,可進入作者個人主頁:
項目代碼:
# label變量柱狀圖??
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認字體
plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題
# kind='bar' 繪制柱狀圖
df['label'].value_counts().plot(kind='bar') # 繪圖
plt.xlabel("label變量") # 設置x軸名稱
# 繪制直方圖 bins:控制直方圖中的區(qū)間個數(shù) auto為自動填充個數(shù) color:指定柱子的填充色
plt.hist(data_tmp, bins='auto', color='g') # 繪圖
# 項目資源如下:
#? ? https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2
# 數(shù)據(jù)均衡化
?from imblearn.over_sampling import RandomOverSampler, SMOTE # 導入過采樣工具
model_SMOTE = SMOTE(random_state=0) # 建立過采樣模型
x_SMOTE_resampled, y_SMOTE_resampled = model_SMOTE.fit_resample(X, y) # 過采樣后樣本結果
x_SMOTE_resampled = pd.DataFrame(x_SMOTE_resampled, columns=X.columns.values) # 構建DataFrame框架
y_SMOTE_resampled = pd.DataFrame(y_SMOTE_resampled, columns=['label']) # 構建DataFrame框架