Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第6章 機(jī)器學(xué)習(xí)與實(shí)現(xiàn)_第1頁(yè)
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第6章 機(jī)器學(xué)習(xí)與實(shí)現(xiàn)_第2頁(yè)
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第6章 機(jī)器學(xué)習(xí)與實(shí)現(xiàn)_第3頁(yè)
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第6章 機(jī)器學(xué)習(xí)與實(shí)現(xiàn)_第4頁(yè)
Python大數(shù)據(jù)分析與挖掘?qū)崙?zhàn):微課版(第2版)課件 第6章 機(jī)器學(xué)習(xí)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第6章機(jī)器學(xué)習(xí)與實(shí)現(xiàn)一元線性回歸多元線性回歸線性回歸應(yīng)用舉例一元線性回歸第6章

變量之間的相互關(guān)系,主要有3種:①確定的函數(shù)關(guān)系,y=f(x)。②不確定的統(tǒng)計(jì)相關(guān)關(guān)系,y=f(x)+??。③沒(méi)有關(guān)系,不用分析。比如:引例1:旅游總收入(y),居民平均收入(x)引例2:子女的身高(y),父母的身高(x)引例3:圓的半徑(r),圓的面積(s)一元線性回歸第6章

一元線性回歸模型y為因變量(隨機(jī)變量),x為自變量(確定的變量),

為模型系數(shù),

每給定一個(gè)x,就得到y(tǒng)的一個(gè)分布。對(duì)回歸模型兩邊取數(shù)學(xué)期望,得到以下回歸方程:回歸方程的估計(jì)形式:一元線性回歸第6章

(1)參數(shù)估計(jì)如何對(duì)這些觀測(cè)值給出最合適的擬合直線呢?使用最小二乘法。其基本思路是真實(shí)觀測(cè)值與預(yù)測(cè)值(均值)總的偏差平方和最小,計(jì)算公式如下:求解以上最優(yōu)化問(wèn)題,即得到:其中最后得到了基于經(jīng)驗(yàn)的回歸方程一元線性回歸第6章

(2)模型評(píng)價(jià):擬合優(yōu)度(判定系數(shù)),值越大表明直線擬合程度越好。指標(biāo)公式:其中:RSS反映回歸方程解釋原始變量波動(dòng)的比例。多元線性回歸第6章

將一元線性回歸模型推廣為多元線性回歸模型,即自變量為多個(gè)時(shí):對(duì)于總體的n個(gè)觀測(cè)值,方程組的模型形式:其中

相互獨(dú)立,且矩陣的模型形式為,其中

即為待估計(jì)的向量多元線性回歸第6章

則回歸方程:其一般的形式如下其中

分布為期望值及回歸系數(shù)的估計(jì)的參數(shù)估計(jì)(最小二乘法,過(guò)程略)為擬合優(yōu)度(判定系數(shù))公式為:線性回歸應(yīng)用舉例第6章

在發(fā)電場(chǎng)中電力輸出(PE)與溫度(AT)、壓力(V)、濕度(AP)、壓強(qiáng)(RH)有關(guān),相關(guān)測(cè)試數(shù)據(jù)(部分)如表所示ATVAPRHPE8.3440.771010.8490.01480.4823.6458.491011.474.2445.7529.7456.91007.1541.91438.7619.0749.691007.2276.79453.09…………………………需實(shí)現(xiàn)的功能如下:(1)利用線性回歸分析命令,求出PE與AT、V、AP、RH之間的線性回歸關(guān)系式系數(shù)

向量(包括常數(shù)項(xiàng))和擬合優(yōu)度(判定系數(shù)),并在命令窗口輸出。(2)現(xiàn)有某次測(cè)試數(shù)據(jù)AT=28.4、V=50.6、AP=1011.9、RH=80.54,試預(yù)測(cè)其PE值。線性回歸應(yīng)用舉例第6章

1.讀取數(shù)據(jù),確定自變量x和因變量yimportpandasaspddata=pd.read_excel('發(fā)電場(chǎng)數(shù)據(jù).xlsx')x=data.iloc[:,0:4].valuesy=data.iloc[:,4].values線性回歸應(yīng)用舉例第6章

(1)導(dǎo)入線性回歸模塊(簡(jiǎn)稱LR)。

fromsklearn.linear_modelimportLinearRegressionasLR(2)利用LR創(chuàng)建線性回歸對(duì)象lr。

lr=LR()(3)調(diào)用lr對(duì)象中的fit()方法,對(duì)數(shù)據(jù)進(jìn)行擬合訓(xùn)練。

lr.fit(x,y)(4)調(diào)用lr對(duì)象中的score()方法,返回其擬合優(yōu)度,觀察線性關(guān)系是否顯著。

Slr=lr.score(x,y)#判定系數(shù)R2(5)取lr對(duì)象中的coef_、intercept_屬性,返回x對(duì)應(yīng)的回歸系數(shù)和回歸系數(shù)常數(shù)項(xiàng)。

c_x=lr.coef_#x對(duì)應(yīng)的回歸系數(shù)

c_b=ercept_#回歸系數(shù)常數(shù)項(xiàng)2.線性回歸分析線性回歸應(yīng)用舉例第5章

(1)可以利用lr對(duì)象中的predict()方法進(jìn)行預(yù)測(cè)。

importnumpyasnp

x1=np.array([28.4,50.6,1011.9,80.54])

x1=x1.reshape(1,4)

R1=lr.predict(x1)(2)也可以利用線性回歸方程式進(jìn)行預(yù)測(cè),這個(gè)方法需要自行計(jì)算。

r1=x1*c_x

R2=r1.sum()+c_b#計(jì)算預(yù)測(cè)值3.利用線性回歸模型進(jìn)行預(yù)測(cè)執(zhí)行結(jié)果為:x回歸系數(shù)為:[-1.97751311-0.233916420.06208294-0.1580541]回歸系數(shù)常數(shù)項(xiàng)為:454.609274315判定系數(shù)為:0.928696089812樣本預(yù)測(cè)值為:[436.70378447](3)輸出相關(guān)結(jié)果。

print('x回歸系數(shù)為:',c_x)print('回歸系數(shù)常數(shù)項(xiàng)為:',c_b)print('判定系數(shù)為:',Slr)print('樣本預(yù)測(cè)值為:',R1)第6章機(jī)器學(xué)習(xí)與實(shí)現(xiàn)邏輯回歸模型邏輯回歸模型應(yīng)用舉例邏輯回歸第6章

線性回歸模型處理的因變量是數(shù)值型變量。然而在許多實(shí)際問(wèn)題中,我們需要研究的因變量y不是數(shù)值型變量,而是名義變量或者分類變量,如0、1變量問(wèn)題。邏輯回歸模型是使用一個(gè)函數(shù)來(lái)歸一化y值,使y的取值在區(qū)間(0,1)內(nèi),這個(gè)函數(shù)稱為L(zhǎng)ogistic函數(shù),公式如下:其中這樣就將線性回歸預(yù)測(cè)問(wèn)題轉(zhuǎn)化為一個(gè)概率問(wèn)題,一般以0.5為界,如果預(yù)測(cè)值大于0.5,我們判斷此時(shí)y更可能為1,否則為y=0邏輯回歸應(yīng)用舉例第6章

取UCI公共測(cè)試數(shù)據(jù)庫(kù)中的澳大利亞信貸批準(zhǔn)數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有14個(gè)特征,1個(gè)分類標(biāo)簽y(1—同意貸款,0—不同意貸款),共690個(gè)申請(qǐng)者記錄。x1x2x3x4x5x6x7x8x9x10x11x12x13x14y122.0811.462441.5850001210012130022.6772840.1650000216010029.581.751441.250001228010021.6711.51530111112011120.178.172641.96111402601591015.830.5852881.51120210011117.426.52340.12500002601010058.674.4621183.0411602435611……以前600個(gè)申請(qǐng)者作為訓(xùn)練數(shù)據(jù),后90個(gè)申請(qǐng)者作為測(cè)試數(shù)據(jù),利用邏輯回歸模型預(yù)測(cè)準(zhǔn)確率。邏輯回歸應(yīng)用舉例第6章

1.?dāng)?shù)據(jù)獲取

importpandasaspd

data=pd.read_excel('credit.xlsx')2.訓(xùn)練樣本與測(cè)試樣本劃分

訓(xùn)練用的特征數(shù)據(jù)用x表示,預(yù)測(cè)變量用y表示,測(cè)試樣本則分別記為x1和y1。

x=data.iloc[:600,:14]

y=data.iloc[:600,14]

x1=data.iloc[600:,:14]

y1=data.iloc[600:,14]邏輯回歸應(yīng)用舉例第6章

(1)導(dǎo)入邏輯回歸模塊(簡(jiǎn)稱LR)。

fromsklearn.linear_modelimportLogisticRegressionasLR(2)利用LR創(chuàng)建邏輯回歸對(duì)象lr。

lr=LR()(3)調(diào)用lr中的fit()方法進(jìn)行訓(xùn)練。

lr.fit(x,y)(4)調(diào)用lr中的score()方法返回模型準(zhǔn)確率。

r=lr.score(x,y);#模型準(zhǔn)確率(針對(duì)訓(xùn)練數(shù)據(jù))(5)調(diào)用lr中的predict()方法,對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),獲得預(yù)測(cè)結(jié)果。

R=lr.predict(x1)3.邏輯回歸分析邏輯回歸應(yīng)用舉例第6章

邏輯回歸分析完整示例代碼如下:importpandasaspddata=pd.read_excel('credit.xlsx')x=data.iloc[:600,:14]y=data.iloc[:600,14]x1=data.iloc[600:,:14]y1=data.iloc[600:,14]fromsklearn.linear_modelimportLogisticRegressionasLRlr=LR()#創(chuàng)建邏輯回歸模型類lr.fit(x,y)#訓(xùn)練數(shù)據(jù)r=lr.score(x,y);#模型準(zhǔn)確率(針對(duì)訓(xùn)練數(shù)據(jù))R=lr.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print('預(yù)測(cè)結(jié)果為:',R)print('預(yù)測(cè)準(zhǔn)確率為:',Rs)預(yù)測(cè)結(jié)果為:[0111100101100011000101101110100010010

0010110101011100100100010110001001101

0001010110110110]預(yù)測(cè)準(zhǔn)確率為:0.8333333333333334第6章機(jī)器學(xué)習(xí)與實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模擬思想神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型神經(jīng)網(wǎng)絡(luò)分類與回歸應(yīng)用舉例神經(jīng)網(wǎng)絡(luò)模擬思想第6章

人工神經(jīng)網(wǎng)絡(luò)是一種模擬大腦神經(jīng)系統(tǒng)結(jié)構(gòu)處理信息的數(shù)學(xué)模型,在工業(yè)界和學(xué)術(shù)界也常直接將其簡(jiǎn)稱為神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)可以用于分類問(wèn)題,也可以用于回歸問(wèn)題,特別是預(yù)測(cè)非線性關(guān)系問(wèn)題。理解為n個(gè)輸入信號(hào)(信息),理解為對(duì)n個(gè)輸入信號(hào)的加權(quán)值,神經(jīng)元將信息整合為綜合信號(hào):神經(jīng)元需要對(duì)這個(gè)綜合信號(hào)做出反應(yīng),即引入一個(gè)閾值

并與綜合信號(hào)比較,根據(jù)比較的結(jié)果做出不同的反應(yīng),即輸出。這里用一個(gè)被稱為激發(fā)函數(shù)的函數(shù)

來(lái)模擬其反應(yīng)。神經(jīng)網(wǎng)絡(luò)模擬思想第6章

舉例:你蒙上眼睛,要判斷面前的人是男孩,還是女孩??梢宰鲆粋€(gè)簡(jiǎn)單假設(shè)(大腦只有一個(gè)神經(jīng)元),只用一個(gè)輸入信號(hào)x1=頭發(fā)長(zhǎng)度(如50cm),權(quán)重為1,則其綜合信號(hào)為

我們用一個(gè)二值函數(shù)作為激發(fā)函數(shù):假設(shè)閾值

=12,由于

,故

,由此我們可以得到輸出1為女孩,0為男孩。那么如何確定閾值是12,輸出1表示女孩,而0表示男孩呢?這就要通過(guò)大量實(shí)踐認(rèn)識(shí)。在模型中主要是通過(guò)樣本數(shù)據(jù)來(lái)訓(xùn)練,從而獲得模型的參數(shù)并應(yīng)用。例如,可以選擇1000個(gè)人,其中500個(gè)人是男孩,500個(gè)人是女孩,分別量其頭發(fā)長(zhǎng)度,輸入以上模型進(jìn)行訓(xùn)練,訓(xùn)練的準(zhǔn)則是判別正確率最大化。(1)取閾值=1,這時(shí)判別正確率應(yīng)該非常低。(2)取值依次增加,假設(shè)閾值=12時(shí)為最大,判別準(zhǔn)確率達(dá)到0.95,當(dāng)閾值>12時(shí),判別的正確率開始下降。

故可以認(rèn)為閾值=12時(shí)達(dá)到判別正確率最大。神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型第6章

x為m維向量,y為n維向量,隱含層有q個(gè)神經(jīng)元。假設(shè)有N個(gè)樣本數(shù)據(jù),從輸入層到隱含層的權(quán)重記為從隱含層到輸出層的權(quán)重記為記第t個(gè)樣本輸入網(wǎng)絡(luò)時(shí),隱含層單元的輸出為輸出層單元的輸出為,則:這里

為對(duì)應(yīng)輸入神經(jīng)元的閾值,

通常為1,

為對(duì)應(yīng)隱含層神經(jīng)元的閾值,

通常為1,

分別為隱含層、輸出層神經(jīng)元的激發(fā)函數(shù)。常用的激發(fā)函數(shù)如下神經(jīng)網(wǎng)絡(luò)數(shù)學(xué)模型第6章

選定隱含層及輸出層神經(jīng)元的個(gè)數(shù)和激發(fā)函數(shù)后,這個(gè)神經(jīng)網(wǎng)絡(luò)就只有輸入層至隱含層、隱含層至輸出層的參數(shù)未知了。一旦確定了這些參數(shù),神經(jīng)網(wǎng)絡(luò)就可以工作了。如何確定這些參數(shù)呢?基本思路如下:通過(guò)輸入層的N個(gè)樣本數(shù)據(jù),使得真實(shí)的y值與網(wǎng)絡(luò)的預(yù)測(cè)值的誤差最小即可,它變成了一個(gè)優(yōu)化問(wèn)題,記

,則優(yōu)化問(wèn)題如下:如何求解這個(gè)優(yōu)化問(wèn)題獲得最優(yōu)的

呢?常用的有BP算法,這里不再介紹該算法的具體細(xì)節(jié),本節(jié)著重介紹如何利用Python進(jìn)行神經(jīng)網(wǎng)絡(luò)模型應(yīng)用。神經(jīng)網(wǎng)絡(luò)分類應(yīng)用舉例第6章

取UCI公共測(cè)試數(shù)據(jù)庫(kù)中的澳大利亞信貸批準(zhǔn)數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有14個(gè)特征,1個(gè)分類標(biāo)簽y(1—同意貸款,0—不同意貸款),共690個(gè)申請(qǐng)者記錄。x1x2x3x4x5x6x7x8x9x10x11x12x13x14y122.0811.462441.5850001210012130022.6772840.1650000216010029.581.751441.250001228010021.6711.51530111112011120.178.172641.96111402601591015.830.5852881.51120210011117.426.52340.12500002601010058.674.4621183.0411602435611……以前600個(gè)申請(qǐng)者作為訓(xùn)練數(shù)據(jù),后90個(gè)申請(qǐng)者作為測(cè)試數(shù)據(jù),利用神經(jīng)網(wǎng)絡(luò)分類模型預(yù)測(cè)準(zhǔn)確率。神經(jīng)網(wǎng)絡(luò)分類應(yīng)用舉例第6章

1.?dāng)?shù)據(jù)獲取、訓(xùn)練樣本與測(cè)試樣本的劃分

importpandasaspd

data=pd.read_excel('credit.xlsx')

#訓(xùn)練用的特征數(shù)據(jù)用x表示,預(yù)測(cè)變量用y表示,測(cè)試樣本則分別記為x1和y1。

x=data.iloc[:600,:14]

y=data.iloc[:600,14]

x1=data.iloc[600:,:14]

y1=data.iloc[600:,14]神經(jīng)網(wǎng)絡(luò)分類應(yīng)用舉例第6章

(1)導(dǎo)入神經(jīng)網(wǎng)絡(luò)分類模塊MLPClassifier。

fromsklearn.neural_networkimportMLPClassifier(2)利用MLPClassifier創(chuàng)建神經(jīng)網(wǎng)絡(luò)分類對(duì)象clf。

clf=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5,2),random_state=1)

參數(shù)說(shuō)明如下:

solver:神經(jīng)網(wǎng)絡(luò)優(yōu)化求解算法,包括lbfgs、sgd、adam3種,默認(rèn)值為adam。

alpha:模型訓(xùn)練誤差,默認(rèn)值為0.0001。

hidden_layer_sizes:隱含層神經(jīng)元個(gè)數(shù)。單層神經(jīng)元設(shè)置具體數(shù)值即可,本例隱含層有兩層,即5×2。

random_state:默認(rèn)設(shè)置為1即可。(3)調(diào)用clf對(duì)象中的fit()方法進(jìn)行網(wǎng)絡(luò)訓(xùn)練。

clf.fit(x,y)(4)調(diào)用clf對(duì)象中的score()方法,獲得神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)準(zhǔn)確率(針對(duì)訓(xùn)練數(shù)據(jù))。

rv=clf.score(x,y)(5)調(diào)用clf對(duì)象中的predict()方法可以對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),獲得預(yù)測(cè)結(jié)果。

R=clf.predict(x1)2.神經(jīng)網(wǎng)絡(luò)分類模型構(gòu)建神經(jīng)網(wǎng)絡(luò)分類應(yīng)用舉例第6章

importpandasaspddata=pd.read_excel('credit.xlsx')x=data.iloc[:600,:14].valuesy=data.iloc[:600,14].valuesx1=data.iloc[600:,:14].valuesy1=data.iloc[600:,14].valuesfromsklearn.neural_networkimportMLPClassifierclf=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5,2),random_state=1)clf.fit(x,y);rv=clf.score(x,y)R=clf.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print('預(yù)測(cè)結(jié)果為:',R)print('預(yù)測(cè)準(zhǔn)確率為:',Rs)預(yù)測(cè)結(jié)果為:[011110010110001100010110100000000000000001101011010001001000101000000000000000010010110010]預(yù)測(cè)準(zhǔn)確率為:0.8222222222222222神經(jīng)網(wǎng)絡(luò)回歸應(yīng)用舉例第6章

在發(fā)電場(chǎng)中電力輸出(PE)與溫度(AT)、壓力(V)、濕度(AP)、壓強(qiáng)(RH)有關(guān),相關(guān)測(cè)試數(shù)據(jù)(部分)如表所示ATVAPRHPE8.3440.771010.8490.01480.4823.6458.491011.474.2445.7529.7456.91007.1541.91438.7619.0749.691007.2276.79453.09…………………………需實(shí)現(xiàn)的功能如下:(1)構(gòu)建神經(jīng)網(wǎng)絡(luò)回歸預(yù)測(cè)模型。(2)現(xiàn)有某次測(cè)試數(shù)據(jù)AT=28.4、V=50.6、AP=1011.9、RH=80.54,試預(yù)測(cè)其PE值。神經(jīng)網(wǎng)絡(luò)回歸應(yīng)用舉例第6章

1.?dāng)?shù)據(jù)獲取及訓(xùn)練樣本構(gòu)建

#訓(xùn)練樣本的特征輸入變量用x表示,輸出變量用y表示。

importpandasaspd

data=pd.read_excel('發(fā)電場(chǎng)數(shù)據(jù).xlsx')

x=data.iloc[:,0:4]

y=data.iloc[:,4]2.預(yù)測(cè)樣本的構(gòu)建

#預(yù)測(cè)樣本的輸入特征變量用x1表示。

importnumpyasnp

x1=np.array([28.4,50.6,1011.9,80.54])

x1=x1.reshape(1,4)神經(jīng)網(wǎng)絡(luò)回歸應(yīng)用舉例第6章

(1)導(dǎo)入神經(jīng)網(wǎng)絡(luò)回歸模塊MLPRegressor。

fromsklearn.neural_networkimportMLPRegressor(2)利用MLPRegressor創(chuàng)建神經(jīng)網(wǎng)絡(luò)回歸對(duì)象clf。

clf=MLPRegressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=8,random_state=1)

參數(shù)說(shuō)明如下:

solver:神經(jīng)網(wǎng)絡(luò)優(yōu)化求解算法,包括lbfgs、sgd、adam3種,默認(rèn)為adam。

alpha:模型訓(xùn)練誤差,默認(rèn)為0.0001。

hidden_layer_sizes:隱含層神經(jīng)元個(gè)數(shù)。單層神經(jīng)元設(shè)置具體數(shù)值即可。如果是多層,如隱含層有兩層5×2。

random_state:默認(rèn)設(shè)置為1即可。(3)調(diào)用clf對(duì)象中的fit()方法進(jìn)行網(wǎng)絡(luò)訓(xùn)練。

clf.fit(x,y)(4)調(diào)用clf對(duì)象中的score()方法,獲得神經(jīng)網(wǎng)絡(luò)回歸的擬合優(yōu)度(判決系數(shù))。

rv=clf.score(x,y)(5)調(diào)用clf對(duì)象中的predict()可以對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),獲得預(yù)測(cè)結(jié)果。

R=clf.predict(x1)3.神經(jīng)網(wǎng)絡(luò)回歸模型構(gòu)建神經(jīng)網(wǎng)絡(luò)回歸應(yīng)用舉例第6章

importpandasaspddata=pd.read_excel('發(fā)電場(chǎng)數(shù)據(jù).xlsx')x=data.iloc[:,0:4]y=data.iloc[:,4]fromsklearn.neural_networkimportMLPRegressorclf=MLPRegressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=8,random_state=1)clf.fit(x,y);rv=clf.score(x,y)importnumpyasnpx1=np.array([28.4,50.6,1011.9,80.54])x1=x1.reshape(1,4)R=clf.predict(x1)print('樣本預(yù)測(cè)值為:',R)樣本預(yù)測(cè)值為:[439.27258187]第6章

機(jī)器學(xué)習(xí)與實(shí)現(xiàn)支持向量機(jī)原理支持向量機(jī)應(yīng)用舉例支持向量機(jī)原理第6章

基本思想是:對(duì)給定有限數(shù)量訓(xùn)練樣本的學(xué)習(xí)任務(wù),通過(guò)在原空間或投影后的高維空間構(gòu)造分離超平面,將給定的兩類訓(xùn)練樣本分開。分離超平面可以記為:位于分離超平面上方的點(diǎn)滿足:位于分離超平面下方的點(diǎn)滿足:通過(guò)調(diào)整權(quán)重

,邊緣超平面可以記為:正類負(fù)類綜合所得最優(yōu)分離超平面,優(yōu)化問(wèn)題:則邊緣間隔最大化,邊緣間隔表示為:分離超平面有多,哪個(gè)最優(yōu)?判定的標(biāo)準(zhǔn)就是要找到一個(gè)超平面,使得樣本對(duì)分離超平面的距離是最大的。支持向量機(jī)原理第6章

以上是線性可分的情形,對(duì)于非線性可分的情形,可以通過(guò)非線性映射將原數(shù)據(jù)變換到更高維空間,在新的高維空間中實(shí)現(xiàn)線性可分。這種非線性映射可以通過(guò)核函數(shù)來(lái)實(shí)現(xiàn),常用的核函數(shù)包括。1.高斯核函數(shù)2.多項(xiàng)式核函數(shù)3.sigmoid核函數(shù)支持向量機(jī)應(yīng)用舉例第6章

取自UCI公共測(cè)試數(shù)據(jù)庫(kù)中的汽車評(píng)價(jià)數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有6個(gè)特征、1個(gè)分類標(biāo)簽,共1728條記錄a1a2a3a4a5a6d442232344223334422313442222344222334422213……其中特征a1~a6的含義及取值依次為:buyingv-high,high,med,lowmaintv-high,high,med,lowdoors2,3,4,5-morepersons2,4,morelug_bootsmall,med,bigsafetylow,med,high分類標(biāo)簽d的取值情況為:unacc、acc、good、v-good,分別用1、2、3、4來(lái)表示。取數(shù)據(jù)集的前1690條記錄作為訓(xùn)練集,余下的作為測(cè)試集,計(jì)算預(yù)測(cè)準(zhǔn)確率。支持向量機(jī)應(yīng)用舉例第6章

1.?dāng)?shù)據(jù)獲取importpandasaspddata=pd.read_excel('car.xlsx')2.訓(xùn)練樣本與測(cè)試樣本劃分#訓(xùn)練用的特征數(shù)據(jù)用x表示,預(yù)測(cè)變量用y表示,測(cè)試樣本則分別記為x1和y1。x=data.iloc[:1690,:6].valuesy=data.iloc[:1690,6].valuesx1=data.iloc[1691:,:6].valuesy1=data.iloc[1691:,6].values支持向量機(jī)應(yīng)用舉例第6章

(1)導(dǎo)入支持向量機(jī)模塊svm。

fromsklearnimportsvm(2)利用svm創(chuàng)建支持向量機(jī)對(duì)象svm。

clf=svm.SVC(kernel='rbf')

其中核函數(shù)可以選擇線性核函數(shù)、多項(xiàng)式核函數(shù)、高斯核函數(shù)、sigmoid核,

分別用linear、poly、rbf、sigmoid表示,默認(rèn)情況下選擇高斯核函數(shù)。(3)調(diào)用svm中的fit()方法進(jìn)行訓(xùn)練。

clf.fit(x,y)(4)調(diào)用svm中的score()方法,獲得模型準(zhǔn)確率。

rv=clf.score(x,y);#模型準(zhǔn)確率(針對(duì)訓(xùn)練數(shù)據(jù))(5)調(diào)用svm中的predict()方法,對(duì)測(cè)試樣本進(jìn)行預(yù)測(cè),獲得預(yù)測(cè)結(jié)果。

R=clf.predict(x1)3.支持向量機(jī)分類模型構(gòu)建支持向量機(jī)應(yīng)用舉例第6章

支持向量機(jī)完整示例代碼如下:importpandasaspddata=pd.read_excel('car.xlsx')x=data.iloc[:1690,:6].valuesy=data.iloc[:1690,6].valuesx1=data.iloc[1691:,:6].valuesy1=data.iloc[1691:,6].valuesfromsklearnimportsvmclf=svm.SVC(kernel='rbf')clf.fit(x,y)rv=clf.score(x,y);R=clf.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print('預(yù)測(cè)結(jié)果為:',R)print('預(yù)測(cè)準(zhǔn)確率為:',Rs)預(yù)測(cè)結(jié)果為:[4311314314333333333331314314331314314]預(yù)測(cè)準(zhǔn)確率為:0.7027027027027027第6章機(jī)器學(xué)習(xí)與實(shí)現(xiàn)聚類思想K-均值聚類K-均值聚類應(yīng)用舉例聚類思想第6章

聚類分析主要是通數(shù)學(xué)方法對(duì)樣本進(jìn)行分類,使類內(nèi)的樣本盡可能相似,而類之間的樣本盡可能相異。設(shè)有n個(gè)樣本的

維觀測(cè)數(shù)據(jù)組成一個(gè)數(shù)據(jù)矩陣為:其中,每一行表示一個(gè)樣本,每一列表示一個(gè)指標(biāo),xij表示第i個(gè)樣本關(guān)于第j項(xiàng)指標(biāo)的觀測(cè)值。聚類分析刻畫“相似”的統(tǒng)計(jì)量主要是距離。距離越小,相似度越高,關(guān)系越緊密;距離越大,相似度越低,關(guān)系越疏遠(yuǎn)。K-均值聚類方法第6章

K-均值聚類是一種基于原型的、根據(jù)距離劃分組的算法,其時(shí)間復(fù)雜度比其他聚類算法低,用戶需指定劃分組的個(gè)數(shù)K。其中,K-均值聚類常見(jiàn)距離測(cè)度包括歐幾里得距離(也稱歐氏距離)、曼哈頓距離、切比雪夫距離等。K-均值聚類默認(rèn)采用歐氏距離進(jìn)行計(jì)算,其公式如下:(表示第個(gè)i樣本與第個(gè)j樣本之間的歐氏距離)K-均值聚類算法的直觀理解如下:Step1:隨機(jī)初始化K個(gè)聚類中心,即K個(gè)類中心向量。Step2:對(duì)每個(gè)樣本,計(jì)算其與各個(gè)類中心向量的距離,并將該樣本指派給距離最小的類。Step3:更新每個(gè)類的中心向量,更新的方法為取該類所有樣本的向量均值。Step4:直到各個(gè)類的中心向量不再發(fā)生變化為止,作為退出條件。K-均值聚類方法第6章

xi1.51.71.62.12.22.42.51.8yi2.51.32.26.25.27.16.81.9將8個(gè)數(shù)據(jù)樣本聚為兩類,其算法執(zhí)行如下Step1:初始化兩個(gè)類的聚類中心,這里取前兩個(gè)樣本分別為聚類中心。C1=(1.5,2.5),C2=(1.7,1.3)到達(dá)C1的距離:0

1.22

0.32

3.75

2.79

4.69

4.41

0.67到達(dá)C2的距離:1.22

0

0.91

4.92

3.93

5.84

5.56

0.61各樣本所屬類:

1

2

1

1

1

1

1

2Step2:分別計(jì)算每個(gè)樣本到達(dá)兩個(gè)聚類中心的距離:Step3:更新聚類中心,更新方法為計(jì)算所屬類的向量均值C1=((1.5+1.6+2.1+2.2+2.4+2.5)/6,(2.5+2.2+6.2+5.2+7.1+6.8)/6)=(2.05,5)C2=((1.7+1.8)/2,(1.3+1.9)/2)=(1.75,1.6)K-均值聚類算法應(yīng)用舉例第6章

對(duì)表所示的31個(gè)地區(qū)2016年農(nóng)村居民人均可支配收入情況做聚類分析地區(qū)工資性收入(X1)經(jīng)營(yíng)凈收入(X2)財(cái)產(chǎn)凈收入(X3)轉(zhuǎn)移凈收入(X4)北京16637.52061.91350.12260天津12048.15309.4893.71824.4河北6263.23970257.51428.6山西5204.42729.91491999.1內(nèi)蒙古2448.96215.7452.62491.7…………………………1.?dāng)?shù)據(jù)獲取及標(biāo)準(zhǔn)化處理importpandasaspddata=pd.read_excel('農(nóng)村居民人均可支配收入來(lái)源2016.xlsx')X=data.iloc[:,1:]fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()scaler.fit(X)X=scaler.transform(X)K-均值聚類算法應(yīng)用舉例第6章

(1)導(dǎo)入K-均值聚類模塊KMeans。

fromsklearn.clusterimportKMeans(2)利用KMeans創(chuàng)建K-均值聚類對(duì)象model。

model=KMeans(n_clusters=K,random_state=0,max_iter=500)

參數(shù)說(shuō)明如下:

n_clusters:設(shè)置的聚類個(gè)數(shù)K。

random_state:隨機(jī)初始狀態(tài),設(shè)置為0即可。

max_iter:最大迭代次數(shù)。(3)調(diào)用model對(duì)象中的fit()方法進(jìn)行擬合訓(xùn)練。

model.fit(X)(4)獲取model對(duì)象中的labels_屬性,可以返回其聚類的標(biāo)簽。

c=model.labels_2.K-均值聚類分析K-均值聚類算法應(yīng)用舉例第6章

完整代碼如下:importpandasaspddata=pd.read_excel('農(nóng)村居民人均可支配收入來(lái)源2016.xlsx')X=data.iloc[:,1:]fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()scaler.fit(X)X=scaler.transform(X)fromsklearn.clusterimportKMeansmodel=KMeans(n_clusters=4,random_state=0,max_iter=500)model.fit(X)c=model.labels_Fs=pd.Series(c,index=data['地區(qū)'])Fs=Fs.sort_values(ascending=True)第6章機(jī)器學(xué)習(xí)與實(shí)現(xiàn)關(guān)聯(lián)規(guī)則概念布爾關(guān)聯(lián)規(guī)則挖掘關(guān)聯(lián)規(guī)則概念第6章

假設(shè)有以下數(shù)據(jù),每行代表一個(gè)顧客在超市的購(gòu)買記錄。I1:西紅柿、排骨、雞蛋。I2:西紅柿、茄子。I3:雞蛋、襪子。I4:西紅柿、排骨、茄子。I5:西紅柿、排骨、襪子、酸奶。I6:雞蛋、茄子、酸奶。I7:排骨、雞蛋、茄子。I8:土豆、雞蛋、襪子。I9:西紅柿、排骨、鞋子、土豆。假如考慮關(guān)聯(lián)規(guī)則:西紅柿—排骨同時(shí)購(gòu)買西紅柿和排骨的4個(gè)顧客占總顧客數(shù)的4/9,定義為支持度(Support),反映了規(guī)則的覆蓋范圍。購(gòu)買西紅柿的5個(gè)顧客中4人購(gòu)買了排骨,即P(排骨/西紅柿)=

4/5,定義為置信度(Confidence),置信度反映了規(guī)則的可信程度。通過(guò)設(shè)定最小支持度和置信度閾值來(lái)判斷該關(guān)聯(lián)規(guī)則是否值得關(guān)注或者有意義。關(guān)聯(lián)規(guī)則概念第6章

一對(duì)一關(guān)聯(lián)規(guī)則的形式如下:,A、B滿足A、B是T的真子集,并且A和B的交集為空集。其中A稱為前件,B稱為后件。關(guān)聯(lián)規(guī)則有時(shí)也表示形如“如果……那么……”,前者是規(guī)則成立的條件,后者是條件下發(fā)生的結(jié)果。支持度和置信度有以下計(jì)算公式:支持度表示為項(xiàng)集A、B同時(shí)發(fā)生的概率,而置信度則表示為項(xiàng)集A發(fā)生的條件下項(xiàng)集B發(fā)生的概率。關(guān)聯(lián)規(guī)則概念第6章

多對(duì)一關(guān)聯(lián)規(guī)則的形式如下:,A、B、…、K滿足A、B、…、K是T的真子集,并且A、B、…、K的交集為空集。其中A,B,…稱為前件,K稱為后件,多對(duì)一關(guān)聯(lián)規(guī)則的支持度和置信度計(jì)算公式如下:支持度表示項(xiàng)集A、B、…、K同時(shí)發(fā)生的概率,而置信度則表示項(xiàng)集A、B、…發(fā)生的條件下項(xiàng)集K發(fā)生的概率。布爾關(guān)聯(lián)規(guī)則挖掘(一對(duì)一)第6章

布爾關(guān)聯(lián)規(guī)則挖掘是指將事務(wù)數(shù)據(jù)集轉(zhuǎn)化為布爾值(0或1)數(shù)據(jù)集,并在布爾數(shù)據(jù)集基礎(chǔ)上挖掘關(guān)聯(lián)規(guī)則的一種方法。1.事務(wù)數(shù)據(jù)集轉(zhuǎn)化為布爾(0或1)值數(shù)據(jù)表算法如下:首先,定義一個(gè)空的字典D和包含所有商品的列表item=['西紅柿','排骨','雞蛋','茄子','襪子','酸奶','土豆','鞋子'],其次,定義一個(gè)長(zhǎng)度與數(shù)據(jù)集長(zhǎng)度(事務(wù)個(gè)數(shù))相同的一維全零數(shù)組z。循環(huán)操作商品列表item,對(duì)每一個(gè)商品,搜索其所在事務(wù)序號(hào)(行號(hào)),并將事務(wù)序號(hào)對(duì)應(yīng)的z位置修改為1,同時(shí)以商品作為鍵,z作為值,添加到字典D中。最后,將D轉(zhuǎn)化為數(shù)據(jù)框。布爾關(guān)聯(lián)規(guī)則挖掘(一對(duì)一)第6章

代碼示例如下:I1:西紅柿、排骨、

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論