版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第七章
機(jī)器學(xué)習(xí)基礎(chǔ)及醫(yī)學(xué)應(yīng)用機(jī)器學(xué)習(xí)基本概念scikit-learn庫簡介及常用API線性回歸K
N
N
算
法邏輯回歸樸素貝葉斯分類器決策樹與隨機(jī)森林支持向量機(jī)算法關(guān)聯(lián)規(guī)則算法K-means算法7.17.27.37.47.57.67.77.87.97
.
10○內(nèi)容導(dǎo)航CON
TEN
T
S●機(jī)器學(xué)習(xí)是人工智能的一個重要分支,專注于開發(fā)能夠從數(shù)據(jù)
中自動學(xué)習(xí)并構(gòu)建模型的方法和技術(shù)。這些模型被用來分析新
的數(shù)據(jù)集并做出預(yù)測或決策?!窈喍灾瑱C(jī)器學(xué)習(xí)就是通過數(shù)據(jù)驅(qū)動的方式,構(gòu)建模型以實
現(xiàn)對新數(shù)據(jù)的有效分析和預(yù)測。??
7.1機(jī)器學(xué)習(xí)基本概念
第七章
機(jī)器學(xué)習(xí)
3假定有一組患
者數(shù)據(jù)集,該
數(shù)據(jù)集包括患
者的年齡、性
別、身高、體
重、體溫、血
壓,以及是否
患病等信息,
我們用這組數(shù)
據(jù)來構(gòu)建疾病
預(yù)測模型。訓(xùn)練集劃分?jǐn)?shù)據(jù)集年齡性別身高體重體溫血壓患病未患病數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)屬性/特征/
自變量標(biāo)簽?
7.1機(jī)器學(xué)習(xí)基本概念第七章
機(jī)器學(xué)習(xí)
4評價結(jié)果模型評價模型訓(xùn)練測試集模型01OPTION數(shù)據(jù)采集指收集和獲取用于訓(xùn)練
模型的數(shù)據(jù)。04OPTION模型評估
使用測試數(shù)據(jù)評估模型性能。02OPTION數(shù)據(jù)預(yù)處理
指對原始數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換和整合的過程。05OPTION模型部署將模型部署到業(yè)務(wù)系統(tǒng)(如
疾病診斷小程序)進(jìn)行應(yīng)用。03OPTION模型訓(xùn)練
指使用訓(xùn)練數(shù)據(jù)對模型
(如決策樹、邏輯回歸、神經(jīng)網(wǎng)絡(luò)、
支持向量機(jī)、貝葉斯網(wǎng)絡(luò)等模型)進(jìn)行訓(xùn)練和優(yōu)化??
7.1機(jī)器學(xué)習(xí)基本概念
第七章機(jī)器學(xué)習(xí)
5數(shù)據(jù)預(yù)處理模型
評估模型
訓(xùn)練數(shù)據(jù)
采集模型
部署機(jī)器學(xué)習(xí)過程●
有監(jiān)督學(xué)習(xí)是指利用帶標(biāo)簽(如“是否患病”)的樣本來優(yōu)化
算法參數(shù)使其性能提高的過程?!?/p>
輸出變量為連續(xù)變量的預(yù)測問
題稱為回歸問題,如,通過房
屋面積預(yù)測房屋價格;●
輸出變量為有限個離散變量的
預(yù)測問題稱為分類問題,如,
通過患者癥狀預(yù)測疾病類型。●
有監(jiān)督算法常見的有:線性回
歸,神經(jīng)網(wǎng)絡(luò),決策樹,邏輯
回歸,支持向量機(jī),
KNN
等。●
半監(jiān)督學(xué)習(xí)是指在部分樣本帶
有標(biāo)簽而其他樣本沒有標(biāo)簽的
情況下進(jìn)行的學(xué)習(xí)過程。這種學(xué)習(xí)方法結(jié)合了有監(jiān)督學(xué)
習(xí)和無監(jiān)督學(xué)習(xí)的特點,旨在
利用少量的標(biāo)注數(shù)據(jù)和大量的
未標(biāo)注數(shù)據(jù)來改進(jìn)模型的性能。??
7.1機(jī)器學(xué)習(xí)基本概念
第七章
機(jī)器學(xué)習(xí)
6無監(jiān)督學(xué)習(xí)是指在沒有標(biāo)簽信
息的情況下對數(shù)據(jù)進(jìn)行建模和
分析的過程。在無監(jiān)督學(xué)習(xí)中,標(biāo)簽是模型
根據(jù)特征按某種規(guī)則歸納出來
的,聚類算法是典型的無監(jiān)督
學(xué)習(xí)算法。2.無監(jiān)督學(xué)習(xí)3.半監(jiān)督學(xué)習(xí)1.有監(jiān)督學(xué)習(xí)●●機(jī)器學(xué)習(xí)基本概念scikit-learn庫簡介及常用API線性回歸K
N
N
算
法邏輯回歸樸素貝葉斯分類器決策樹與隨機(jī)森林支持向量機(jī)算法關(guān)聯(lián)規(guī)則算法K-means算法7.1
●7.27.37.47.57.67.77.87.97
.
10○內(nèi)容導(dǎo)航CON
TEN
T
S●scikit-learn
是一個基于python
的機(jī)器學(xué)習(xí)庫,提供了簡單而高效的工具用于機(jī)器學(xué)習(xí)和
數(shù)據(jù)分析。它涵蓋了包括分類、回歸、聚類、降維、模型選擇和數(shù)據(jù)預(yù)處理在內(nèi)的多種機(jī)
器學(xué)習(xí)算法。●sklearn
庫是在Numpy
、Scipy
和matplotlib
的基礎(chǔ)上開發(fā)而成的,因此在安裝sklearn
前,
需要先安裝這些依賴庫。在安裝好依賴庫之后,可以使用pip
命令安裝scikit-learn庫:pip
install
scikit-learn?
7.2
scikit-learn
庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
8sklearn
庫共分為6大部分,分別用于完成分類任務(wù)、回歸任務(wù)、聚類任務(wù)、降維任務(wù)、模型選擇以及數(shù)據(jù)預(yù)處理。?7.2
scikit-learn
庫簡介及常用API
H
HH第七章機(jī)器學(xué)習(xí)
9●
7.2.1
scikit-learn庫
常
用API分類模型加載模塊最近鄰算法neighbors.NearestNeighbors支持向量機(jī)svm.SVC樸素貝葉斯naive_bayers.GussianNB決策樹tree.DecisionTreeClassifier集成方法ensemble.BaggingClassifier神經(jīng)網(wǎng)絡(luò)neural_network.MLPClassifier?
7.2
scikit-learn庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
10表1分類任務(wù)的常用API接口回歸模型加載模塊嶺回歸linear_model.RidgeLasso回歸linear_model.Lasso彈性網(wǎng)絡(luò)linear_model.ElasticNet最小角回歸linear_model.Lars貝葉斯回歸linear_model.BayesianRidge邏輯回歸linear_model.LogisticRegression多目標(biāo)回歸multioutput.MultiOutputRegressor?
7.2
scikit-learn庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
11表2回歸任務(wù)的常用API
接口回歸模型加載模塊K-meanscluster.KMeansA
P
聚
類cluster.AffinityPropagation均值漂移聚類cluster.MeanShift層次聚類cluster.AgglomerativeClusteringDBSCANcluster.DBSCANBIRCHcluster.Birch譜聚類cluster.SpectralCoclustering?
7.2
scikit-learn庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
12表3聚類任務(wù)的常用API接口回歸模型加載模塊主成分分析decomposition.PCA截
斷
S
V
D
和
L
S
Adecomposition.TruncatedSVD字典學(xué)習(xí)decomposition.DictionaryLearning因子分析decomposition.FactorAnalysis獨立成分分析decomposition.FastICA非負(fù)矩陣分解decomposition.NMFLDAdecomposition.LatentDirichletAllocation?
7.2
scikit-learn庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
13表4降維任務(wù)的常用API
接口數(shù)據(jù)集加載函數(shù)波士頓房價數(shù)據(jù)集load_boston鳶尾花數(shù)據(jù)集load_iris糖尿病數(shù)據(jù)集load_diabetes數(shù)字?jǐn)?shù)據(jù)集load_digitslinnerud物理鍛煉數(shù)據(jù)集load_linnerud葡萄酒數(shù)據(jù)集load_wine威斯康星州乳腺癌數(shù)據(jù)集load_breast_cancer?
7.2
scikit-learn庫簡介及常用API
第七章
機(jī)器學(xué)習(xí)
14表5
scikit-learn
庫內(nèi)置數(shù)據(jù)集●
7.2.2加載數(shù)據(jù)集案例實踐
●例7-1乳腺癌威斯康星診斷數(shù)據(jù)集(Wisconsin
Breast
Cancer
Dataset,WBCD)是機(jī)器學(xué)習(xí)領(lǐng)域常用的基準(zhǔn)數(shù)據(jù)集之一,用于研究乳腺癌的診斷問題。這個數(shù)據(jù)集最初
由美國威斯康星大學(xué)的研究者們收集整理,并于1990年代初首次公開使用。WBCD數(shù)據(jù)集包含了從乳房腫塊細(xì)胞樣本中提取的一系列特征,這些特征通過細(xì)針穿刺活檢
獲得,旨在幫助醫(yī)生判斷腫瘤是良性還是惡性。該數(shù)據(jù)集中的每個樣本代表一個病人
的腫瘤細(xì)胞核圖像分析結(jié)果,通常包括腫瘤平均半徑、平均平滑度、半徑標(biāo)準(zhǔn)差,面
積標(biāo)準(zhǔn)差等特征變量和結(jié)果變量
Diagnosis(即,診斷結(jié)果)。下面通過案例代碼加
載該數(shù)據(jù)集并顯示前5行和前5列數(shù)據(jù)。??
7.2
scikit-learn
庫簡介及常用API
第七章機(jī)器學(xué)習(xí)
15#將數(shù)據(jù)轉(zhuǎn)換為DataFrame格式,方便查看df
=pd.DataFrame(data=data.data,columns=data.feature
names)
#添加目標(biāo)列(即是否為惡性)df[target']=data.target#打印自變量(特征)print("輸出自變量(特征)和因變量(目標(biāo)):")#print(df.feature_names)print(df.columns)print()#打印數(shù)據(jù)集的前5行print("數(shù)據(jù)集的最后5行及部分列:")print(df.tail()['mean
radius'mean
texture''mean
perimeter','meanarea','target]])from
sklearn.datasets
importload
breast
cancerimport
pandas
as
pd#
加
載
乳
腺
癌
威
斯
康
星
診
斷
數(shù)
據(jù)
集data=load
breast_cancer()#
獲
取
數(shù)
據(jù)的
行
數(shù)
和
列
數(shù)num_rows,num_columns=data.data.shape#
打印
數(shù)
據(jù)的
行
數(shù)
和
列
數(shù)print(f"數(shù)擴(kuò)生的行數(shù):{num_rows}")print(f"數(shù)的列數(shù):{num_columns}")第七章
機(jī)器學(xué)習(xí)?7.2
scikit-learn庫簡介及常用API16?
7.2
scikit-learn
庫簡介及常用API
第七章機(jī)器學(xué)習(xí)
17這段代碼首先從sklearn.datasets
導(dǎo)入load_breast_cancer
函數(shù)并加載乳腺癌威斯康星診斷數(shù)據(jù)集,然后獲取并打印數(shù)據(jù)集的行信息和列信息。接著,將數(shù)據(jù)集轉(zhuǎn)換為
pandas
DataFrame格式,之后,打印數(shù)據(jù)集的特
征名稱和目標(biāo)名稱,最后打印數(shù)據(jù)集的前5行和前5列數(shù)據(jù),展示數(shù)據(jù)的結(jié)構(gòu)和內(nèi)容。數(shù)據(jù)集的行數(shù):569數(shù)據(jù)集的列數(shù):30輸出自變量(特征)和因變量(目標(biāo)):Index(['mean
radius','mean
texture','mean
perimeter','mean
area',
'mean
smoothness','mean
compactness','mean
concavity','meanconcavepoints','meansymmetry','meanfractaldimension','radius
error','texture
error','perimeter
error','area
error',
'smoothness
error','compactness
error','concavity
error','concavepointserror','symmetryerror','fractaldimensionerror',
'worst
radius','worst
texture','worst
perimeter','worst
area','worst
smoo
thness','worst
compactness','worst
concavity','worstconcavepoints','worstsymmetry','worstfractaldimension','target'],dtype='object')數(shù)據(jù)集的最后5行及部分列:mean
radius
mean
texture56421.5622.3956520.1328.25566
16.60
28.08
56720.6029.33568
7.7624.54mean
perimeter142.00
131.20
108.30
140.1047.92area1261.0
858.1
1265.0
181.0target00mean7.2scikit-learn庫簡介及常用API7.3線性回歸7.47.57.67.77.8K
N
N
算
法邏輯回歸樸素貝葉斯分類器決策樹與隨機(jī)森林支持向量機(jī)算法7.9關(guān)聯(lián)規(guī)則算法7.10○K-means算法內(nèi)容導(dǎo)航CON
TEN
T
S7.1
●機(jī)器學(xué)習(xí)基本概念回歸分析是一種研究因變量y
(或稱結(jié)果變量、被輸出變量、相應(yīng)變量)與自變量X(或稱解釋量、獨立變量、輸入變量)之間關(guān)系的數(shù)據(jù)分析方法,目的
在于建立數(shù)學(xué)模型以便通過自變量來預(yù)測因變量。如果這個模型是線性的,即因
變量可以表示為自變量的加權(quán)和,則稱為線性回歸模型。例如,用患者的年齡、
性別、體重、血壓等特征來預(yù)測患者未來的血糖水平。只有一個自變量的情況稱為簡單回歸,大于一個自變量情況的叫做多元回歸(Multivariable
LinearRegression)。??
7.3線性回歸
第七章機(jī)器學(xué)習(xí)
19●
7.3.1線性回歸的基本原理如果兩個變量之間的關(guān)系可以用一元一次方程y=bx+a
表示(即在圖像上呈
現(xiàn)出來的是一條直線),那么這兩個變量之間就是線性相關(guān)的。構(gòu)建基于這種關(guān)系
的數(shù)學(xué)模型就是線性回歸模型。一旦建立
了這樣的模型,給定一個變量x,就可以
預(yù)測另一個變量y
的值,我們將y的預(yù)測值標(biāo)記為?,其其
中
,x
為自變量;y
為因
變
量;
為給定x
時
y
的估計值;a為截距;b
為
回歸系數(shù)。在圖中,叉號表示真實數(shù)據(jù),直線y=
bx
+a為基于真實數(shù)據(jù)訓(xùn)練得到線性回歸方
程,將自
變
量x代入方程即可得到y(tǒng);
的預(yù)測值;
(線上的圓圈),預(yù)測值和真實值之間的
差值被稱為殘差,如下所示:ε=yi-
ia歸方程表示如下:b性線性回歸方程示意圖XX??
7.3線性回歸
第七章
機(jī)器學(xué)習(xí)
20為了評估這條直線對整個數(shù)據(jù)
集的擬合程度,我們計算所有
殘差的平方和,也就是所謂的“殘差平方和”(Residual
SumofSquares,RSS):RSS=
∑
:=1(yi
)2以上計算預(yù)測值和真實值總體
殘差的函數(shù)就被稱為損失函數(shù)。因此,RSS就是線性回歸的一個損失函數(shù)。這個損失函
數(shù)越小,預(yù)測結(jié)果與真實值之
間的誤差就越小,預(yù)測就越精
確。在構(gòu)建線性回歸模型時,我們
的目標(biāo)是通過反復(fù)迭代訓(xùn)練模型來調(diào)整參數(shù)a
和
b
的值,找到能最小化
RSS的最佳擬合直
線。對于線性模型來講,最常用的
損失函數(shù)是均方誤差(MeanSquaredError,MSE),也
就
是對
n
個樣本的殘差平方和上
求得平均值:決定系數(shù)(coefficient
ofdetermination,R2)是另一項對線性回歸模型評估的重要指標(biāo),其值最大為1,最小為0,
當(dāng)值越接近于1,則說明回歸方程的擬合程度越好;值越接
近于0,則說明回歸方程的擬
合程度越差。決定系數(shù)的計算
公式:??線性回歸
第七章機(jī)器學(xué)習(xí)
21●以上僅介紹了只有一個自變量x的一元一次線性回歸方程及其損失函數(shù),真實世界中更多的是多元線性回歸方程,如下所示:=+bo+b?x?+b?x?……+bnxn??
7.3線性回歸
第七章
機(jī)器學(xué)習(xí)
22●
7.3.2線性回歸案例實踐●例7-2研究男青年前臂長和身高關(guān)系,從男青年中隨機(jī)抽
取11名人員分別測量其身高和前臂長,測量結(jié)果如下表所
示,試計算身高(x)
與前臂長(y)
之間的線性回歸方程。??7
.3線性回歸
第七章
機(jī)器學(xué)習(xí)23編號身高(x)前臂長(y)11704721734231604441554151734761885071784781834691804910165431116633??
7.3線性回歸第七章
機(jī)器學(xué)習(xí)
24import
matplotlib.pyplot
as
pltimport
numpy
as
npx=[155,160,165,166,170,173,173,178,180,183,188]##輸入身高數(shù)據(jù)y=[41,44,43,44,47,42,47,47,49,46,50]##輸入前臂長數(shù)據(jù)X=np.array(x)y=np.array(y)##將數(shù)據(jù)轉(zhuǎn)換為NumPy
數(shù)
組fig=plt.figure()##使用散點圖查看數(shù)據(jù)分布,查看是否存
在線性關(guān)系plt.scatter(x,y)plt.xlabel('Height
(cm)')plt.ylabel('ForearmLength
(cm)')plt.title('Scatt
erplot
of
Height
vs
Forearm
Length')linreg=LinearRegression()###擬合線性回歸模型linreg.fit(x.reshape(-1,1),y)y_hat
=linreg.predict(x.reshape(-1,1))print(線型模型的系數(shù)(a):{}.format(linreg.coef_)##輸出結(jié)果
print(線型模型的常數(shù)項(b):{:.3f}'.format(ercept_))
#計算決定系數(shù)R2r_squared
=linreg.score(x.reshape(-1,1),y)print('決定系數(shù)R2:{:.3f}'.format(r_squared))??
7.3線性回歸
第七章機(jī)器學(xué)習(xí)
25#在散點圖上繪制回歸直線#創(chuàng)建散點圖plt.figure()plt.scatter(x,y,color='blue',label='Data')#散點圖#在圖上繪制回歸直線plt.plot(x,y_hat,color='red',label='Regression
Line')
#添加標(biāo)簽和標(biāo)題plt.xlabel('Height(cm)')plt.ylabel('Forearm
Length(cm)')plt.title('Scatter
plot
of
Height
vs
Forearm
Length
withRegression
Line')plt.legend()#
添加圖例plt.show()#顯示圖形這段代碼輸入了男青年前臂長和身高的數(shù)據(jù),使用散點圖查看了數(shù)據(jù)分布,如圖7-3所示,確定數(shù)據(jù)之間
存在線性關(guān)系。隨后,根據(jù)數(shù)據(jù)擬合了一個線性回歸
模型,并且輸出回歸模型的系數(shù)以及常數(shù)項,最后,
在散點圖上可視化了線性回歸方程,如圖所示。??
7.3線性回歸
第七章
機(jī)器學(xué)習(xí)
26由圖可知,線型回歸模型的系數(shù)(a):[0.23024523],線型模型的常數(shù)項(b):5.873,
決定系數(shù)R2為
0.641,最終得到線性回歸方程:=5.873+
0.23x。??
7.3線性回歸
第七章機(jī)器學(xué)習(xí)
27Scatter
plot
of
Height
vs
Forearm
Length
with
Regression
Line線型模型的系數(shù)(a):[0.23024523]
線型模型的常數(shù)項(b):5.873決定系數(shù)
R2:0.641模型結(jié)果圖身高與前臂長散點圖線性回歸方程圖Foream
Length
(cm)7.1●
機(jī)器學(xué)習(xí)基本概念7.2
scikit-learn
庫簡介及常用API7.3
線性回歸7.4KNN
算法7.5
邏輯回歸7.6
樸素貝葉斯分類器7.7
決策樹與隨機(jī)森林7.8
●
支持向量機(jī)算法7.9
關(guān)聯(lián)規(guī)則算法7.10
○
K-means
算法內(nèi)容導(dǎo)航CON
TEN
T
SK
近
鄰(KNearestNeighbors,KNN)
算法是一種常見的監(jiān)督學(xué)習(xí)方法,
一般多用于分類任務(wù),也可用來處理回歸任務(wù)。下面詳細(xì)介紹KNN
算法的基本原理以及案例實踐。KNN
算法的核心思想是:在特征空間中,如果一個樣本的大部分近鄰都屬于某個類別,則該樣本也屬于這個類別。當(dāng)KNN
用于分類任務(wù)時一般采用“投票法”進(jìn)行預(yù)測,即k
個
鄰居中出現(xiàn)最多的類別作為預(yù)測結(jié)果。??
7.4KNN算法
第七章機(jī)器學(xué)習(xí)
29●
7.4.1KNN算法原理KNN
算法中
K
的選擇是非常關(guān)鍵的一個環(huán)節(jié)。假設(shè)圖7-6中的綠色正方形是我們要進(jìn)行預(yù)測的樣本。當(dāng)
k=3
時
,KNN
算法會根據(jù)距離計算出距離預(yù)測樣本最近的3個鄰居。在這3個鄰居中,
藍(lán)色三角形的數(shù)量最多。因此,根據(jù)“投票法”,KNN
算法會將該樣本預(yù)測為藍(lán)色三角形。??7.4KNN算法
第七章
機(jī)器學(xué)習(xí)30然而,當(dāng)k=5
時,即考慮距離預(yù)測樣本最近的5個鄰居時,結(jié)果與之前并不相同,此時會將樣本
預(yù)測為橙色圓形。對于
n
個樣本的數(shù)據(jù)集而言,k
的取值一般不超過√n,通常在20以內(nèi)。在實
際應(yīng)用中,可通過交叉驗證的方式,從最小的k
值不斷增加,計算不同k
值下的結(jié)果,從而選出
最佳k值,后續(xù)章節(jié)會詳細(xì)介紹交叉驗證相關(guān)知識。?7.4KNN算法第七章機(jī)器學(xué)習(xí)31??
7.4
KNN算法
第七章
機(jī)器學(xué)習(xí)
32計算量較大,對特征值敏感,以及需要選擇合適的k
值和距離度量方
法。簡單易懂,無需參數(shù)估計,以及適合多分類問題,具有廣泛的適用性?!?/p>
7.4.2
KNN算法案例實踐例7-3本案例采用Pima
印第安人糖尿病數(shù)據(jù)集。
Pima
Indians
糖尿病數(shù)據(jù)集來源于
美國國家糖尿病、消化和腎臟疾病研究所,包含了來自美國亞利桑那州皮馬印第安人
女性的醫(yī)療記錄數(shù)據(jù)。該數(shù)據(jù)集含
768條記錄,8個數(shù)值型特征和1個目標(biāo)變量。8
個數(shù)值型特征分別為懷孕次數(shù)(Pregnancies)、血糖(Glucose)、舒張壓(BloodPressure)
、三頭肌皮褶厚度(SkinThickness)
、胰島素水平(Insulin)、BMI、
糖尿病遺傳系數(shù)(DiabetesPedigreeFunction)
和年齡(Age),目標(biāo)變量outcome
為二分類變量(1表示患病,0表示未患病)。下面,我們使用KNN
算法來
構(gòu)建糖尿病預(yù)測模型,其目的是構(gòu)建分類模型來預(yù)測患者五年內(nèi)是否會發(fā)展成糖尿病。?7.4KNN算法
第七章
機(jī)器學(xué)習(xí)33importnumpy
as
npimportpandas
as
pdimport
matplotlib.pyplot
as
pltfrom
sklearn.model_selection
import
train
est_splitfromsklearn.neighborsimportKNeighborsClassifierfrom
sklearn.metrics
import
accuracy_scoredata=pd.read_csv("data.csv",encoding="utf-8")###數(shù)據(jù)
讀入X=data.iloc[:,0:8]###
獲取特征數(shù)據(jù)y=data.iloc[:,-1]##
獲取標(biāo)簽數(shù)據(jù)#數(shù)據(jù)集分割為訓(xùn)練集和測試集X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)#劃分?jǐn)?shù)據(jù)集為80%的訓(xùn)練集和20%的測試集#初始化
KNN
分類器并訓(xùn)練(使用8個特征)knn=KNeighborsClassifier(n_neighbors=8)#
創(chuàng)建一個
KNN
分類
器對象,設(shè)置鄰居數(shù)為8knn.fit(X_train,y_train)#使用訓(xùn)練集數(shù)據(jù)訓(xùn)練KNN
分類器#使用測試集進(jìn)行預(yù)測y_pred=knn.predict(X_test)#
使用訓(xùn)練好的KNN
分類器對測試集
進(jìn)行預(yù)測forx
in
zip(y_test,y_pred):#成對輸出真實值和預(yù)測值print(x,end="")print('nKNN分類的準(zhǔn)確率為:{}.format(accuracy_score(y_test,
y_pred)))##輸出KNN分類預(yù)測的準(zhǔn)確率:??
7.4
KNN算法
第七章機(jī)器學(xué)習(xí)3435(0,0)(0,0)(0,0)(0,0)(0,0)(0,1)(0,0)(0,0)(0,1)(0,1)(1,0)(0,1)(1,0)(0,0)(0,0)(1,1)(0,0)(0,0)(0,0)(0,1)(1,1)(0,0)(0,0)(1,0)(0,0)(1,1)(1,1)(1,1)(1,1)(0,0)(1,0)(1,1)(1,0)(0,0)(1,1)(0,0)(1,0)(0,0)(0,0)(0,1)(0,0)(1,1)(1,1)(1,0)(0,0)(0,0)(0,1)(0,0)(0,0)(1,1)(1,1)(0,0)(0,0)(1,0)(1,1)(0,0)(0,0)(0,0)(1,0)(0,0)(0,1)(0,0)(0,0)(0,0)(0,0)(1,1)(1,0)(0,0)(0,0)(0,0)(1,1)(1,1)(0,0)(1,1)(0,1)(0,0)(0,1)(0,0)(1,1)(0,0)(0,0)(0,0)(1,0)(0,0)(1,1)(0,0)(0,0)(1,1)(1,0)(1,1)(0,0)(1,1)(0,0)(0,0)(0,0)(0,0)(0,0)(1,0)(0,0)(0,0)(0,1)(1,0)(1,1)(1,1)(0,1)(1,1)(1,0)(0,0)(1,1)(0,0)(0,0)(0,0)(0,0)(0,1)(0,0)(0,0)(1,0)(0,0)(0,0)(1,1)(0,0)(0,0)(1,0)(0,0)
KNN分類的準(zhǔn)確率為:0.7467532467532467(1,1)(1,0)(0,0)(0,0)(0,0)(0,1)(0,1)(1,1)(0,0)(1,0)(0,0)(0,1)(0,0)(1,1)(0,0)(1,0)(0,0)(0,0)(0,0)(0,0)(0,0)(0,1)(0,0)(1,1)(0,1)(1,1)(1,1)(0,0)(1,0)(1,1)代碼運行結(jié)果這段代碼加載了皮馬印第安人糖尿病數(shù)據(jù)集,按照8:2的比例劃分訓(xùn)練集和測試集。
隨后,它初始化了一個
K=7
的KNN
分類器,并使用訓(xùn)練集執(zhí)行分類器訓(xùn)練。最后,
它對測試集進(jìn)行預(yù)測并輸出分類預(yù)測的準(zhǔn)確率。??
7.4
KNN算法第七章機(jī)器學(xué)習(xí)7.1●
機(jī)器學(xué)習(xí)基本概念7.2
scikit-learn
庫簡介及常用API7.3
線性回歸7.4
KNN
算法7.5
邏輯回歸7.6
樸素貝葉斯分類器7.7
決策樹與隨機(jī)森林7.8
●
支持向量機(jī)算法7.9
關(guān)聯(lián)規(guī)則算法7.10
○
K-means
算法內(nèi)容導(dǎo)航CON
TEN
T
S核心思想:邏輯回歸是一種經(jīng)典的分類算法,用于預(yù)測某一事件發(fā)生的概率,特別適用于二元分類問題。醫(yī)學(xué)領(lǐng)域應(yīng)用:●疾病預(yù)測與診斷:判斷患者是否患有某種疾病(如糖尿病、癌癥)?!裼绊懸蛩胤治觯鹤R別與疾病相關(guān)的危險因素(如年齡、BMI)
或保護(hù)因素(如健康飲食)特
點
:●
模型簡單,易于解釋,計算效率高?!?/p>
輸出結(jié)果為0到1之間的概率值,直觀易懂。??
7.5邏輯回歸
第七章機(jī)器學(xué)習(xí)
371.
線性模型的問題●
線性回歸z=βo+β?X?+...+β□x□的輸出是連續(xù)值,無法直接用于分類。2.
引入Sigmoid函數(shù)●
為了將連續(xù)值映射到(0,1)的概率區(qū)間,邏輯回歸使用Sigmoid函數(shù)。●
公
式
:f(z)=1/(1+e?2)3.
邏輯回歸模型●
將線性輸出
z
代入Sigmoid函數(shù),得到概率P?!馪>0.5,則預(yù)測為正類(1);P≤0.5,則預(yù)測為負(fù)類(0)Sigmoid
Function—Sigmoid
function1.0
---Th
r
oPl
(i
t.
)0.80.6-0.5-0.4-0.20.02.5
5.07.5
10.0ohesZre??
7.5邏輯回歸
第七章機(jī)器學(xué)習(xí)
38基本原理import
pandas
as
pdfrom
sklearn.model_selection
import
train_test_split#訓(xùn)練集測試集劃分from
sklearn.linear_model
import
LogisticRegression#導(dǎo)入邏輯回歸模型data=pd.read_csv("diabetes.csv")#劃分自變量和結(jié)果變量X=data[["Pregnancies","Glucose","BloodPressure","SkinThickness","Insulin","BMI","DiabetesPedigreeFunction","Age"]]Y=data[["Outcome"]]#劃分?jǐn)?shù)據(jù)集X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size=0.2)#測試集占總樣本20%??
7.5邏輯回歸
第七章
機(jī)器學(xué)習(xí)
39邏輯回歸算法案例實踐第一步,數(shù)據(jù)準(zhǔn)備,導(dǎo)入數(shù)據(jù)集,并將其劃分為訓(xùn)練集和測試集。log_reg=LogisticRegression()#用邏輯回歸處理二分類問題第三步,模型訓(xùn)練,調(diào)用sklearn
中的
fit
函數(shù)實現(xiàn)log_reg.fit(X_train,y_train)#擬合分類器第二步,模型初始化(初始化邏輯回歸模型)和模型訓(xùn)練??
7.5邏輯回歸邏輯回歸算法案例實踐第四步模型預(yù)測和性能評估clf_y_predict
=log_reg.predict(X_test)print(clf_y_predict)scorce=log_reg.score(X_test,y_test)scorce_1
=log_reg.score(X_train,y_train)
print(測試集的評分:',scorce)print('訓(xùn)練集的評分',scorce_1)[0011001001000001100110101000000000011001001000110001000010010001110100010000001100100000001000001000110010000101101000000000011101000011111000100000001010]測試集的評分:0.7532467532467533訓(xùn)練集的評分0.7801302931596091第七章機(jī)器學(xué)習(xí)
40第五步查看預(yù)測概率值和對應(yīng)類別clf_y_predict
=log_reg.predict(X_test)print(clf_y_predict)scorce
=log_reg.score(X_test,y_test)scorce_1
=log_reg.score(X_train,y_train)
print(測試集的評分:'scorce)print('訓(xùn)練集的評分'scorce_1)[0.892038930.10796107]0
[0.395352820.60464718]1[0.082474740.91752526]1
[0.696274020.30372598]0[0.757792370.24220763]0??
7.5邏輯回歸
第七章機(jī)器學(xué)習(xí)
41邏輯回歸算法案例實踐第五步最終輸出結(jié)果如下:7.1●
機(jī)器學(xué)習(xí)基本概念7.2
scikit-learn
庫簡介及常用API7.3
線性回歸7.4
KNN
算法7.5
邏輯回歸7.6
樸素貝葉斯分類器7.7
決策樹與隨機(jī)森林7.8
●
支持向量機(jī)算法7.9●
關(guān)聯(lián)規(guī)則算法7.10
○
K-means
算法內(nèi)容導(dǎo)航CON
TEN
T
S核心思想
:基于貝葉斯定理和特征條件獨立假設(shè)的一種簡易概率分類器?!皹闼?Naive)”
的含義:●
它假設(shè)所有特征之間是相互獨立的,互不影響。●這是一個很強(qiáng)的假設(shè),現(xiàn)實中往往不成立,但模型在很多情況下依然表現(xiàn)出色。優(yōu)
點
:●
模型簡單,易于解釋,計算效率高?!?/p>
輸出結(jié)果為0到1之間的概率值,直觀易懂。?
?
7.6樸素貝葉斯分類器
第七章機(jī)器學(xué)習(xí)
43基本原理1.
目
標(biāo)
:對于給定的樣本X,
計算它屬于每個類別C□
的后驗概率P(C□X),并選擇概率最大的類別。2.
貝葉斯定理:P(C□|X)=(P(X|C□)*P(C□))/P(X)3.
利用“樸素”假設(shè)進(jìn)行簡化:P(X|C□)=P(x?|C□)*P(x?|C□)*.….*P(x□|C□)4.
最終分類模型:?=argmax_{C□}P(C□)*πP(x□|C口)(尋找能使“先驗概率”與“條件概率連乘積”最大的那個類別)??
7.6樸素貝葉斯
第七章機(jī)器學(xué)習(xí)
44樸素貝葉斯分類器案例實踐第一步,加載數(shù)據(jù)集,并將其劃分為訓(xùn)練集和測試集:importpandas
as
pdimport
numpyas
npfrom
sklearn.metrics
import
accuracy_score,classification_reportfrom
sklearn.model_selection
import
train_test_split
#
劃分訓(xùn)練集與測試集的
函數(shù)fromsklearn.naive_bayesimportGaussianNB#
導(dǎo)入高斯樸素貝葉斯模型data=pd.read_csv("diabetes.csv")#加載數(shù)據(jù)集diabetes.csvX=data[["Pregnancies","Glucose","BloodPressure","SkinThickness","Insulin","BMI","DiabetesPedigreeFunction","Age"]]#
加載自變量X和因變量YY=data[["Outcome"]]Y=np.ravel(Y)#
將多維數(shù)組展平為一維數(shù)組X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size=0.2)#按8:2劃分訓(xùn)練集和測試集?
7.6樸素貝葉斯
第七章
機(jī)器學(xué)習(xí)
45nb=GaussianNB()#各特征變量均為連續(xù)值,適用高斯樸素貝葉斯算法第三步,模型訓(xùn)練nb.fit(X_train,y_train)#
擬合分類器(訓(xùn)練模型)第二步,模型初始化y_pred_nb=nb.predict(X_test)#
預(yù)測測試集樣本類別print("GaussianNB
Accuracy:",accuracy_score(y_test,y_pred_nb))#輸出準(zhǔn)確率print("GaussianNB
Classification
Report:\n",classification_report(y_test,
y_pred_nb))#輸出分類報告??
7.6樸素貝葉斯樸素貝葉斯分類器案例實踐第四步,樣本預(yù)測及模型評估GaussianNB
Accuracy:0.7272727272727273GaussianNB
Classification
Report:precision
recall
f1-score
support01accuracymacro
avg
weightedavg0.76
0.660.71
0.720.84
0.540.69
0.730.79
0.600.73
0.70
0.729757154154154第七章機(jī)器學(xué)習(xí)
467.1●
機(jī)器學(xué)習(xí)基本概念7.2
scikit-learn
庫簡介及常用API7.3
線性回歸7.4
KNN
算法7.5
邏輯回歸7.6
樸素貝葉斯分類器7.7
決策樹與隨機(jī)森林7.8
支持向量機(jī)算法7.9●關(guān)聯(lián)規(guī)則算法7.10
○
K-means
算法內(nèi)容導(dǎo)航CON
TEN
T
S核心思想:構(gòu)建一個樹形結(jié)構(gòu)的決策圖,每個內(nèi)部節(jié)
點代表一個特征判斷,每個分支代表一個
判斷結(jié)果,每個葉節(jié)點代表一個最終決策
(
類
別
)
。優(yōu)
點
:●
可解釋性強(qiáng):決策過程直觀,符合人
類思維,是“白盒”模型?!?/p>
應(yīng)用廣泛:在醫(yī)療領(lǐng)域常用于輔助診
斷和病情評估。根節(jié)點23456葉子節(jié)點
葉子節(jié)點
葉子節(jié)點隨機(jī)森林核心思想
:集成學(xué)習(xí)(EnsembleLearning)的一種。它構(gòu)建多棵決策樹,并將它們的結(jié)果進(jìn)行綜合,以獲得比單一決策樹更好的預(yù)測性能。工
作
原
理
:●隨機(jī)采樣:從原始數(shù)據(jù)中隨機(jī)抽取樣本和特征,構(gòu)建多棵不同的決策樹?!窦w決策:對于一個新樣本,每棵樹都進(jìn)行一次預(yù)測(投票)?!褡罱K結(jié)果:采用“少數(shù)服從多數(shù)”的原則,得票最多的類別即為最終預(yù)測結(jié)果。優(yōu)
點:●高準(zhǔn)確率:通常比單棵決策樹性能更好?!窨惯^擬合:集成多個模型可以有效降低過擬合風(fēng)險。●特征重要性評估:能夠評估每個特征對預(yù)測的貢獻(xiàn)度??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)
49根節(jié)點:年齡>21歲?否->預(yù)測“未患病”是-
>進(jìn)入下一節(jié)點內(nèi)部節(jié)點:
BMI>32?否->預(yù)測“未患病”是-
>進(jìn)入下一節(jié)點..
以此類推,直到葉節(jié)點給出最終預(yù)測。年齡>21歲?否
是預(yù)測未患病
BMI>32.0?否
是預(yù)測未患病
收縮壓>134mmHg?否
是預(yù)則未患病預(yù)測患病??
7.7決策樹與隨機(jī)森林
第七章
機(jī)器學(xué)習(xí)
50糖尿病診斷決策樹基本原理1.
目
標(biāo)
:對于給定的樣本X,
計算它屬于每個類別C□
的后驗概率P(C□X),并選擇概率最大的類別。2.
貝葉斯定理:P(C□|X)=(P(X|C□)*P(C□))/P(X)3.
利用“樸素”假設(shè)進(jìn)行簡化:P(X|C□)=P(x?|C□)*P(x?|C□)*.….*P(x□|C□)4.
最終分類模型:?=argmax_{C□}P(C□)*πP(x□|C口)(尋找能使“先驗概率”與“條件概率連乘積”最大的那個類別)??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)
51例7-6使用例7-3中的PimaIndians糖尿病數(shù)據(jù)集,分別基于決策樹與隨機(jī)森林算法構(gòu)建糖尿病預(yù)測模型。代碼如下:#導(dǎo)入所需的庫和模塊importnumpyasnpimportpandasas
pd#導(dǎo)入
pandas庫importmatplotlib.pyplotasplt#導(dǎo)入用于繪圖的Matplotlib庫fromsklearn.model_selectionimporttrain_test_split#導(dǎo)入劃分訓(xùn)練集和測試集
的庫fromsklearn.treeimportDecisionTreeClassifier#導(dǎo)入決策樹分類器fromsklearnimporttree
#
導(dǎo)入
tree
模塊fromsklearn.ensembleimportRandomForestClassifier#導(dǎo)入隨機(jī)森林分類器
fromsklearn.metricsimportaccuracy_score#
導(dǎo)入用于計算預(yù)測準(zhǔn)確性的庫y=data[["Outcome"]#
設(shè)置目標(biāo)變量#按8:2劃分訓(xùn)練集和測試集X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,
random_state=42)??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)
52data=pd.read_csv("diabetes.csv")#
加載本地數(shù)據(jù)集column_names=["Pregnancies","Glucose","BloodPressure',"SkinThickness","Insulin","BMI',"DiabetesPedigreeFunction","Age"]X=data[column_names]#
設(shè)置特征變量決策樹與隨機(jī)森林案例實踐第1步,數(shù)據(jù)加載和訓(xùn)練集/測試集劃分第4步,可視化決策樹plt.figure(figsize=(19,7))#設(shè)置圖形參數(shù)#繪制決策樹tree.plot_tree(dt_classifier,feature_names=column_names,class_names=['No
Diabetes','Diabetes'],filled=True,rounded=True,fontsize=12)plttitle('DecisionTreeforPimaIndianDiabetesDataset)#
添加圖標(biāo)題pltshow()#初始化決策樹分類器dt_classifier=DecisionTreeClassifier(max_depth=3,random_state=42)
#訓(xùn)練決策樹模型dt_classifier.fit(X_train,y_train)第3步,模型評估y_pred_dt=dt_classifier.predict(X_test)#
使用測試集進(jìn)行預(yù)測accuracy_dt=accuracy_score(y_test,y_pred_dt)#
計算準(zhǔn)確率print(f"DecisionTreeAccuracy:{accuracy_dt:.2f}")#打印決策樹的準(zhǔn)確率??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)
53決策樹與隨機(jī)森林案例實踐第2步,模型訓(xùn)練決策樹與隨機(jī)森林案例實踐DecisionTreeforPima
Indian
Diabetes
DatasetGl
ci
i
1
4.5v
l
7188]class=No
Diabetes349s=53emuaas55nogu
MinIi
2458.
5class-DiabetesDiabetesPedigreeFunction<=1.428class-DiabetesgBGlucose<=127.5samples=238class-No
Diabetes
Min
2468.
50=gBs
i
i
le
3
sa
=.value-[40.3]
value【89.84]1735lei=pn43mnagclassNoDiabeteslclass=No
Diabetes
class=NoDiabetes
class-No
DiabetesAge<=28.5class=No
Diabetesgini=0.469class=No
Diabetesgini=0.0
samples=4class-Diabetesgini=0.14class-Diabetesgini=0.247class=Diabetesgini=0.476v
al
s28,1=84]6epumasgini=0.48samples
5value=[2.3]
class-Diabetesgini=0.117samples-192samples=216value=[129.87]class
-No
Diabetesvalue
=[208,30]value=[180,12】gini=0.383samples=454value=[337.117]samples=83value=[12,711gini=0.178samples
=71value=[7,64]samples-12value=[5,71samples=
66value-15,61]samples=8value=[5,3]第3步,可視化隨機(jī)森林的特征重要性importances
=rf_classifier.feature_importances_indices=np.argsort(importances)[::-1]plt.figure(figsize=(10,5))plt.title("Feature
importances")plt.bar(range(X.shape[1]),importances[indices],align="center")plt.xticks(range(X.shape[1]),X.columns[indices],rotation=90)plt.xlim([-1,X.shape[1]])y_pred_rf
=rf_classifier.predict(X_test)#使用測試集進(jìn)行預(yù)測accuracy_rf
=accuracy_score(y_test,y_pred_rf)#
計算準(zhǔn)確率print(f"RandomForestAccuracy:{accuracy_rf:.2f}")#打印隨機(jī)森林的準(zhǔn)確率#初始化隨機(jī)森林分類器rf_classifier=RandomForestClassifier(n_estimators=100,random_state=42)
rf_classifier.fit(X_train,y_train)#訓(xùn)練隨機(jī)森林模型??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)決策樹與隨機(jī)森林案例實踐二
、隨機(jī)森林示例第1步,訓(xùn)練隨機(jī)森林模型55第2步,模型性能評估0.250.200.150.100.05決策樹與隨機(jī)森林案例實踐Feature
importances??
7.7決策樹與隨機(jī)森林
第七章機(jī)器學(xué)習(xí)
56skinThicknessBoodPressureegnanciesDiabetesPdigreFunctionGluco5e0.00Age-7.1
●
機(jī)器學(xué)習(xí)基本概念7.2
scikit-learn
庫簡介及常用API7.3
線性回歸7.4
KNN
算法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GBT 14141-2009硅外延層、擴(kuò)散層和離子注入層薄層電阻的測定 直排四探針法》專題研究報告
- 2026年電氣工程師崗位面試題及電氣知識考核要點含答案
- 2026年金融投資崗面試常見問題與專業(yè)答案集
- 2026年醫(yī)療設(shè)備技術(shù)支持顧問面試題
- 2026年新媒領(lǐng)域求職全攻略媒介專員面試題目集
- 2026年投資部投資分析師考試題含答案
- 2025 WSES國際共識意見書:吲哚菁綠熒光在急診手術(shù)中的應(yīng)用解讀課件
- (新教材)2026年人教版一年級上冊數(shù)學(xué) 2.1.1 6~9的認(rèn)識 課件
- (新教材)2026年冀教版一年級下冊數(shù)學(xué) 4.2.1兩位數(shù)減兩位數(shù)(不退位) 課件
- 人教A版必修第二冊高一(下)數(shù)學(xué)6.2.4向量的數(shù)量積【課件】
- 教師三筆字培訓(xùn)課件
- 河南省百師聯(lián)盟2025-2026學(xué)年高一上12月聯(lián)考英語試卷(含解析含聽力原文及音頻)
- 2025廣東深圳市光明區(qū)事業(yè)單位選聘博士20人筆試備考試題及答案解析
- 租戶加裝充電樁免責(zé)補(bǔ)充合同(房東版)
- 2026年海南衛(wèi)生健康職業(yè)學(xué)院單招職業(yè)技能考試題庫參考答案詳解
- 黨的二十屆四中全會精神丨線上知識有獎競答題庫
- JJF 1759-2019衰減校準(zhǔn)裝置校準(zhǔn)規(guī)范
- 群文閱讀把數(shù)字寫進(jìn)詩
- 醫(yī)用設(shè)備EMC培訓(xùn)資料課件
- 鍋爐防磨防爆工作專項檢查方案
- 氣田后期開發(fā)技術(shù)負(fù)壓采氣技術(shù)
評論
0/150
提交評論