svm预测结果为同一个值_实战:用SVM算法进行乳腺癌预测
支持向量機(Support Vector Machine, SVM)是一類按監(jiān)督學習(supervised learning)方式對數(shù)據(jù)進行二元分類(binary classification)的廣義線性分類器(generalized linear classifier),其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane)
SVM,通俗來講,它是一種二類分類模型,其基本模型定義為特征空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規(guī)劃問題的求解。
下面開始用python進行算法預測
下面是分析流程圖:
本次項目的目的是使用SVM算法對美國威斯康星州的乳腺癌診斷進行預測
獲得數(shù)據(jù)
數(shù)據(jù)集來自美國威斯康星州的乳腺癌診斷數(shù)據(jù)集
下載網(wǎng)址:
https://github.com/xiujiayou/svm?github.com理解數(shù)據(jù)
字段信息:
mean代表平均值,se代表標準差,worst代表最大值(三個最大值的平均值)30個特征值中(不包括ID字段和分類標識結果字段diagnosis),實際上只有10個特征值(
radius,texture,perimeter,area,smoothness,compactness,concavity,concave points,symmetry,fractal_dimension_mean)的三個維度(均值,標準差和最大值)
569個患者中有357個良性,212個是惡性
清洗數(shù)據(jù)
先導入數(shù)據(jù)集和各種需要用到的包
然后查看數(shù)據(jù)的基本信息
然后我們發(fā)現(xiàn)特征太多沒辦法全部顯示,所以我們用下面的方法把列名都顯示出來
信息太多,圖中只截取一部分然后我們將字段分成三段(mean/se/worst)
數(shù)據(jù)清洗
數(shù)據(jù)集沒有缺失值
id列沒有用,故刪除
將結果列的良性替換成0,惡性替換成1
特征選擇
接下來進行特征字段的篩選,首先需要觀察下features_mean各個變量之間的關系??梢杂胏orr()的函數(shù)
圖中顏色越淺表示相關性越大。所以我們能發(fā)現(xiàn):radius_mean、perimeter_mean,area_mean這三個相關性大,而compactness_mean、concavity_mean,concave_points_mean這三個特征相關性大。
下面來進行特征選擇 特征選擇的目的是降維,用少量的特征代表數(shù)據(jù)的特性,這樣也可以增強分類器的泛化能力,避免數(shù)據(jù)過擬合。 mean/se/worst這三組特征是對同一組內(nèi)容的不同度量。我們可以只保留mean這組特征。 另外,在mean這組特征中,radius_mean,perimeter_mean,area_mean這三個屬性相關性大, 而compactness_mean、concavity_mean,concave_points_mean這三個特征相關性大。 我們可以分別從這2類中選擇一個屬性作為代表,比如radius_mean和compactness_mean
那么我們就可以把原來的10個屬性縮減為6個屬性
模型訓練和評估
準備訓練集和測試集
30%為測試集,70%為訓練集
訓練之前,需要對數(shù)據(jù)進行規(guī)范化,讓數(shù)據(jù)在同一個量級上,避免因為維度問題造成數(shù)據(jù)誤差。
數(shù)據(jù)規(guī)范化
模型準確率為0.91左右,效果還可以。
數(shù)據(jù)集和具體代碼已上傳到github上,有興趣的小伙伴可以下載自己操作一遍。
總結
以上是生活随笔為你收集整理的svm预测结果为同一个值_实战:用SVM算法进行乳腺癌预测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑死机的原因如何查看电脑死机原因
- 下一篇: 兼谈国产操作系统的收费困境兼谈国产操作系