日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

svm 交叉验证 python_【python机器学习笔记】SVM实例:有毒蘑菇预测

發布時間:2025/3/19 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svm 交叉验证 python_【python机器学习笔记】SVM实例:有毒蘑菇预测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

假如我手上有一個未知的蘑菇,我知道它的一系列特征(傘蓋形狀、發現地點、顏色、氣味等等),但是僅僅依靠個人的經驗判斷能不能吃難免會翻車,這就要用到更多的經驗。大數據就很好地解決了這個個人經驗缺乏的問題:如果你已經閱盡了10000個蘑菇,那么你就能做出更加準確的判斷了。

SVM支持向量機

SVM是機器學習中的一種方法,在2011年前后深度學習爆發之前曾統治機器學習數十年。它實現簡單,在很多情況下表現優秀,需要的數據量小,因此成為機器學習的經典方法之一。

SVM定位:線性分類器,也就是用一條直線劃分二維平面上的數據(或用n-1維的不彎曲物體劃分n維的數據),另一個著名的線性分類器是邏輯回歸模型(區別可以自行百度)。

假設處理二維的數據,數據有一個變量x,一個預測值y。在平面中的分割直線則設為kx+b=0。如果找到一條直線,它離兩個類別中的點距離最大,則為最好的直線。有了這樣一條分割線,就可以計算坐標中的點是在這條線的哪一邊,也就是屬于哪一類。

如何找到這條直線:畫與這條直線距離相等的兩條平行線(讓這條直線它又長又寬),使它們與平面上的點有接觸(也可以理解成這條直線寬到與平面上的點接觸),兩邊首次接觸到的平行直線之間的中線就是最佳的直線。兩條平行直線接觸到的至少3個點為支持向量。

為什么是3個點:兩條平行直線分別通過兩個不同的點并不能確定它們的斜率,而一條直線通過兩個點、另一條直線通過另一個點且與之平行就能確定兩條直線的位置。

但是在實際情況中,數據的類別之間并不是分的那么明顯,有可能有極端情況,也就是一個標號為A類別的數據實際上離B類別的樣本更近,卻與A類別相差大。那么這里就引進了一個松弛參數C。它可以調整對極端值的懲罰力度,控制兩條線之間間隔大小。再根據交叉驗證可以找到效果最好的C。

實例:SVM建模——藍瘦香菇到底有沒有毒

數據集:8000多條蘑菇的數據,有23個特征。其中是否有毒是因變量,其余特征為自變量。Mushroom Data Set

特征舉例

{傘蓋形狀:鐘形/平面/圓錐/凸出/圓球/凹進};

{氣味:杏仁味/魚腥味/臭味/泥土味/無味/刺鼻/辣味};

{地點:草地/樹葉/牧場/道路/城市/垃圾場/樹木}

……

數據預處理

import pandas as pd

import numpy as np

%matplotlib inline

import numpy as np

from scipy import stats

mush_df = pd.read_csv('mushrooms.csv')

mush_df_encoded = pd.get_dummies(mush_df)

把分類特征轉化為one-hot表示,這樣雖然特征數量增加了幾倍,但是保證每個特征對應的值為0或1。用pandas包里的get_dummies(data)可以很輕松地實現。

這樣特征維度就從23變成了119,其中因變量(有毒/無毒)也被拆分為兩個特征,第一列是'無毒',1表示無毒,0表示有毒;第二列只是反過來表示。因此在后續訓練的時候自變量只有119-2=117個,因變量依然是一個。

# 將特征和類別標簽分別賦值給 X 和 y,因變量y選擇第二列(1有毒,0無毒)

X_mush = mush_df_encoded.iloc[:,2:]#所有行、第三列及往后

y_mush = mush_df_encoded.iloc[:,1]#所有行、第二列(第二列是‘有毒’,1表示有毒,0表示無毒)

訓練SVM

from sklearn.svm import SVC

from sklearn.decomposition import PCA

from sklearn.pipeline import make_pipeline

pca = PCA(n_components=117, whiten=True, random_state=42)

n_components可將數據壓縮為n維向量,發現在這個案例中n最多取117(自變量的維度數量)。這個降維功能多用于上萬維度的向量,可以壓縮為千維簡便計算。但是如果在這個案例中設置n=2,壓縮為2維,準確率下降較大。

考慮到這個數據維度也不是很大,完全可以不降維。因此n_components=117。

svc = SVC(kernel='linear', class_weight='balanced')

kernel設置為線性可分(而非核函數,核函數是一個類別的數據被另一個類別包圍,而蘑菇數據一般不會這樣)

建立模型:

model = make_pipeline(pca, svc)

劃分訓練數據和測試數據。隨機數種子用來確保每一次建立的訓練集/測試集數據固定:

from sklearn.model_selection import train_test_split

Xtrain, Xtest, ytrain, ytest = train_test_split(X_mush, y_mush, random_state=41)

調參:通過交叉驗證尋找最佳的松弛參數C

from sklearn.model_selection import GridSearchCV

param_grid = {'svc__C':[1,2,5,10]}#設置的C可能的值是1,2,5,10,可以自由設置

grid = GridSearchCV(model,param_grid)

%time grid.fit(Xtrain, ytrain)

print(grid.best_params_)

print結果是1,也就是說C=1的時候訓練效果最好,分割最高效

model=grid.best_estimator_

因此把model參數設置為C=1

訓練好的svm儲存在model里,那么這個訓練好的模型到底好不好用呢?

現在把它調用來做預測:

yfit=model.predict(Xtest)

預測過程就相當于遮住測試集蘑菇的真實情況(有毒/無毒),只看117個自變量特征,預測這個蘑菇是不是有毒,然后和真實情況做對比。

預測結果怎樣?生成報告:

from sklearn.metrics import classification_report

print(classification_report(ytest, yfit))

結果是100%正確!0代表無毒蘑菇,1047個全都預測出來了;1代表有毒蘑菇,984個也全都預測出來了。而且機器沒有把一個有毒蘑菇的當成無毒的。可以放心地食用啦!

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的svm 交叉验证 python_【python机器学习笔记】SVM实例:有毒蘑菇预测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中出 在线| 国产精品网页 | 色小说在线 | 最新中文字幕在线 | 日日爱886 | 美女大bxxxxn内射 | 2019中文字幕在线 | 国产夫妻精品 | 日本人和亚洲人zjzjhd | 亚州av综合色区无码一区 | 欧美激情 亚洲 | 国产精品免费看 | 亚洲一区二区久久久 | 国产成人自拍视频在线观看 | 在线观看黄av | 亚洲AV无码精品久久一区二区 | 西西4444www大胆无码 | 韩国日本在线 | 性大片潘金莲裸体 | 亚洲婷婷一区 | 日本精品在线视频 | 激情导航 | 久久久久久国产精品三区 | 国产精品福利在线播放 | 91九色在线观看 | 国产一区二区不卡在线 | 美女一区二区三区 | freesexvideos第一次 | 最新在线视频 | 欧美久操 | 久久国产经典视频 | 色乱码一区二区三区 | 中文一区二区在线播放 | 免费观看理伦片在线播放视频软件 | 免费成人av | 午夜日韩av | 蜜臀一区二区三区精品免费视频 | 国产精品suv一区二区69 | 一区二区三区免费在线观看视频 | 一区二区色 | 5566毛片 | av动漫免费观看 | a级欧美| 男人的天堂在线播放 | 午夜日韩欧美 | 欧美xxxⅹ性欧美大片 | 裸体一区二区 | 我要色综合网 | 超碰2023| 色校园| 国产精品传媒在线观看 | 日韩在线观看免费av | 亚洲第一天堂 | 精品无码久久久久久久 | 又大又粗欧美黑人aaaaa片 | 欧美老女人性视频 | 亚洲精品系列 | 91嫩草视频在线观看 | 蜜桃视频一区 | 日韩一区免费观看 | 91艹| 亚洲av熟女国产一区二区性色 | www.夜夜夜 | 4色av| www国产www | 色原网| 97精品国产97久久久久久粉红 | 亚洲一二三在线 | 国产一区二区a | 中国特级黄色片 | 两女双腿交缠激烈磨豆腐 | 视频在线一区 | 樱桃视频一区二区三区 | 久久无码国产视频 | 91久久综合亚洲鲁鲁五月天 | 日本毛片在线看 | 中国美女乱淫免费看视频 | 另类少妇人与禽zozz0性伦 | 天天曰天天干 | 亚洲一区二区三区高清视频 | 色婷婷成人网 | 人妖和人妖互交性xxxx视频 | 亚洲精品欧美激情 | 丰满多毛的大隂户视频 | 成人漫画网站 | 97超级碰碰 | 亚洲天堂免费看 | 爽爽影院免费观看 | 亚洲国产精品成人无久久精品 | 国产精品一卡 | 另类综合在线 | 91国在线观看 | 成人区人妻精品一区二区网站 | 日韩在线播放视频 | 无码h黄肉3d动漫在线观看 | 一女二男一黄一片 | www在线播放 | 亚洲不卡中文字幕 | 欧美在线播放视频 |