




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章機器學習與實現(xiàn)缺失值處理數(shù)據(jù)規(guī)范化主成分分析缺失值處理第5章
在數(shù)據(jù)處理過程中,缺失值是常見的,需要對其進行處理。Pandas包中的fillna()函數(shù)并沒有充分利用數(shù)據(jù)集中的信息。這里介紹scikit-learn包中能充分利用數(shù)據(jù)信息的3種常用填充方法,即均值填充、中位數(shù)填充和最頻繁值填充。注意填充方式主要是按列填充均值填充:對某列中的所有缺失值用該列中非缺失部分的值的平均值來表示;中位數(shù)填充:取某列中非缺失部分的值的中位數(shù)來表示缺失值。最頻繁值填充:取某列中非缺失部分的值出現(xiàn)頻次最多的值來表示缺失值。(常用于分類型或離散型變量)缺失值處理第5章
(1)導入數(shù)據(jù)預處理中的填充模塊SimpleImputer
fromsklearn.imputeimportSimpleImputer(2)利用SimpleImputer創(chuàng)建填充對象impimp=SimpleImputer(missing_values=np.nan,strategy='mean')參數(shù)說明如下:strategy:均值(mean)、中位數(shù)(median)、最頻繁值(most_frequent)(3)調用填充對象imp中的fit()擬合方法,對待填充數(shù)據(jù)進行擬合訓練。
imp.fit(Data)#Data為待填充數(shù)據(jù)集變量(4)調用填充對象imp中的transform()方法,返回填充后的數(shù)據(jù)集。
FData=imp.transform(Data)#返回填充后的數(shù)據(jù)集FData需要注意的是填充的數(shù)據(jù)集結構要求為數(shù)組或數(shù)據(jù)框,類型為數(shù)值類型缺失值處理第5章
fromsklearn.imputeimportSimpleImputerfC=Cimp=SimpleImputer(missing_values=np.nan,strategy='mean')imp.fit(fC)fC=imp.transform(fC)數(shù)據(jù)規(guī)范化第5章
變量或指標的單位不同,導致有些指標數(shù)據(jù)值非常大,而有些指標數(shù)據(jù)值非常小,在模型運算過程中大的數(shù)據(jù)會把小的數(shù)據(jù)覆蓋,導致模型失真。因此,需要對這些數(shù)據(jù)規(guī)范化處理,或者說去量綱化。所謂均值-方差規(guī)范化,是指變量或指標數(shù)據(jù)減去其均值再除以標準差得到新的數(shù)據(jù)。新的數(shù)據(jù)均值為0,方差為1,其公式如下:極差規(guī)范化是指變量或指標數(shù)據(jù)減去其最小值,再除以最大值與最小值之差,得到新的數(shù)據(jù)。新的數(shù)據(jù)取值范圍在[0,1],其公式如下:數(shù)據(jù)規(guī)范化第5章
對數(shù)據(jù)集X(數(shù)組)做均值-方差規(guī)范化處理,基本步驟如下:(1)導入均值-方差規(guī)范化模塊StandardScaler。
fromsklearn.preprocessingimportStandardScaler(2)利用StandardScaler創(chuàng)建均值-方差規(guī)范化對象scaler。
scaler=StandardScaler()(3)調用scaler對象中的fit()擬合方法,對待處理的數(shù)據(jù)X進行擬合訓練。
scaler.fit(X)(4)調用scaler對象中的transform()方法,返回規(guī)范化后的數(shù)據(jù)集X(覆蓋原未規(guī)范化的X)。
X=scaler.transform(X)數(shù)據(jù)規(guī)范化第5章
fromsklearn.preprocessingimportStandardScalerX=datascaler=StandardScaler()scaler.fit(X)X=scaler.transform(X)數(shù)據(jù)規(guī)范化第5章
對數(shù)據(jù)集X1(數(shù)組)做極差規(guī)范化處理,基本步驟如下:(1)導入極差規(guī)范化模塊MinMaxScaler。
fromsklearn.preprocessingimportMinMaxScaler(2)利用MinMaxScaler創(chuàng)建極差規(guī)范化對象min_max_scaler。
min_max_scaler=MinMaxScaler()(3)調用min_max_scaler中的fit()擬合方法,對處理的數(shù)據(jù)X1進行擬合訓練。
min_max_scaler.fit(X1)(4)調用min_max_scaler中的transform()方法,返回處理后的數(shù)據(jù)集X1(覆蓋原未處理的X1)。
X1=min_max_scaler.transform(X1)數(shù)據(jù)規(guī)范化第5章
fromsklearn.preprocessingimportMinMaxScalerX1=datamin_max_scaler=MinMaxScaler()min_max_scaler.fit(X1)x1=min_max_scaler.transform(X1)主成分分析第5章
在數(shù)據(jù)分析與挖掘中,通常會遇到眾多變量,這些變量之間往往具有一定的相關性。例如,身高、體重這兩個指標,身高較高,其體重也相對較大;經(jīng)營收入、凈利潤這兩個指標,經(jīng)營收入越高,其凈利潤也相對較高,這就是指標之間相關性的一種體現(xiàn)。如果眾多指標之間具有較強的相關性,不僅會增加計算復雜度,也會影響模型的分析結果。一種思路就是把眾多的變量轉換為少數(shù)幾個互不相關的綜合變量,同時又不影響原來變量所反映的信息。這種方法在數(shù)學上稱為主成分分析我們通常看到各種各樣的排行榜,如綜合國力排名、省市經(jīng)濟發(fā)展水平排名、大學綜合排名等——綜合評價問題,就是主成分分析應用的一種體現(xiàn)。主成分分析第5章
怎樣對各地區(qū)2016年農(nóng)村居民人均可支配收入情況進行排名呢
地區(qū)工資性收入(X1)經(jīng)營凈收入(X2)財產(chǎn)凈收入(X3)轉移凈收入(X4)北京16637.52061.91350.12260天津12048.15309.4893.71824.4河北6263.23970257.51428.6山西5204.42729.91491999.1內蒙古2448.96215.7452.62491.7…………………………我們需要一個綜合指標來衡量,但是這個綜合指標該如何定義和計算呢?指標加權是一個通常的思路,例如: Y1=a11×X1+a12×X2+a13×X3+a14×X4Xi反映了地區(qū)農(nóng)村居民人均可支配收入某個方面的指標,僅代表某方面的信息,它在綜合指標Y1中,其重要程度可以通過對應的a1j來反映,可以稱a1j為信息系數(shù)。注意綜合變量Y1盡量不丟失原來變量反映的信息,如果一個綜合變量不夠,就繼續(xù)構造新的綜合變量Y2,……,同時要求綜合變量之間互不相關主成分分析第5章
Y1=a11×X1+a12×X2+a13×X3+a14×X4不丟失原來變量反映的信息(方差),其數(shù)學表達式為:
Var(X1)+…+Var(X4)=Var(Y1)如果Y1還不足以保留原來的信息,則再構造一個Y2:
Y2=a21×X1+a22×X2+a23×X3+a24×X4使得Y1和Y2不相關,同時:
Var(X1)+…+Var(X4)=Var(Y1)+Var(Y2)如果還不足以保留原來的信息,則繼續(xù)構造Y3。總之最多構造到Y4一定能滿足條件。一般地,前k個變換后的變量Y1…Yk,其方差之和與原變量總方差之比為:
(Var(Y1)+Var(Y2)+Var(Yk))/(Var(X1)+…+Var(X4))稱其為k個變換后變量的信息占比。在實際應用中只需取少數(shù)幾個變換后的變量。例如,它們的
信息占比為90%,就可以說采用變換后的變量反映了原來變量90%的信息。以上僅是方便理解,系數(shù)如何限制?系數(shù)向量如何計算?這些分析嚴格嗎?為了解決這些問題,需要給出嚴格的主成分分析數(shù)學模型(具體見課本)。主成分分析第5章
主成分分析的一般步驟(1)對原始數(shù)據(jù)進行標準化處理。(2)計算樣本相關系數(shù)矩陣。(3)求相關系數(shù)矩陣的特征值和相應的特征向量。(4)選擇重要的主成分,并寫出主成分表達式。(5)計算主成分得分。(6)依據(jù)主成分得分的數(shù)據(jù),進一步從事統(tǒng)計分析。主成分分析(應用舉例)第5章
#數(shù)據(jù)獲取importpandasaspdData=pd.read_excel('農(nóng)村居民人均可支配收入來源2016.xlsx')X=Data.iloc[:,1:]#數(shù)據(jù)規(guī)范化處理fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()scaler.fit(X)X=scaler.transform(X)(1)數(shù)據(jù)獲取及數(shù)據(jù)規(guī)范化處理主成分分析(應用舉例)第5章
①導入主成分分析模塊PCA。
fromsklearn.decompositionimportPCA②利用PCA創(chuàng)建主成分分析對象pca。
pca=PCA(n_components=0.95)③調用pca對象中的fit()方法,進行擬合訓練。
pca.fit(X)④調用pca對象中的transform()方法,返回提取的主成分。
Y=pca.transform(X)⑤通過pca對象中的相關屬性,返回相關結果。
tzxl=ponents_#返回特征向量
tz=pca.explained_variance_#返回特征值
#返回主成分方差百分比(貢獻率)
gxl=pca.explained_variance_ratio_(2)對標準化后的數(shù)據(jù)X做主成分分析,基本步驟如下:主成分分析(應用舉例)第5章
⑥主成分表達式及驗證。由前面分析,我們知道第i個主成分表示為:代表第i個主成分對應的特征向量。例如,可以通過程序驗證第1個主成分前面的4個分量的值。Y00=sum(X[0,:]*tzxl[0,:])Y01=sum(X[1,:]*tzxl[0,:])Y02=sum(X[2,:]*tzxl[0,:])Y03=sum(X[3,:]*tzxl[0,:])。主成分分析(應用舉例)第5章
(3)基于主成分進行綜合排名。記綜合排名指標為F,則F的計算公式如下其中m表示提取的主成分個數(shù),分別表示第i個主成分和其貢獻率F=gxl[0]*Y[:,0]+gxl[1]*Y[:,1]+gxl[2]*Y[:,2]dq=list(Data['省、直轄市及地區(qū)'].values)Rs=pd.Series(F,index=dq)
Rs=Rs.sort_values(ascending=False)
第5章機器學習與實現(xiàn)一元線性回歸多元線性回歸線性回歸應用舉例一元線性回歸第5章
引例1:有一則新聞:預計20××年中國旅游業(yè)總收入將超過3000億美元。這個數(shù)據(jù)是如何預測出來的呢?引例2:身高預測問題:子女的身高(y),父母的身高(x)旅游總收入(y)居民平均收入(x)……變量之間的相互關系,主要有3種:①確定的函數(shù)關系,。②不確定的統(tǒng)計相關關系,。③沒有關系,不用分析。以上兩個例子均屬于第(2)種情況。一元線性回歸第5章
一元線性回歸模型y為因變量(隨機變量),x為自變量(確定的變量),
為模型系數(shù),
每給定一個x,就得到y(tǒng)的一個分布。一元線性回歸第5章
對回歸模型兩邊取數(shù)學期望,得到以下回歸方程:每給定一個x,便有y的一個數(shù)學期望值與之對應,它們是一個函數(shù)關系。一般地,通過樣本觀測數(shù)據(jù),可以估計出以上回歸方程的參數(shù),一般形式為:其中為對期望值及兩個參數(shù)的估計一元線性回歸第5章
對總體(x,y)進行n次獨立觀測,獲得n個樣本觀測數(shù)據(jù),即(x1,y1),(x2,y2),…,(xn,yn),將其繪制在圖像上。如何對這些觀測值給出最合適的擬合直線呢?使用最小二乘法。其基本思路是真實觀測值與預測值(均值)總的偏差平方和最小,計算公式如下:求解以上最優(yōu)化問題,即得到:其中最后得到了基于經(jīng)驗的回歸方程一元線性回歸第5章
總離差平方和TSS、回歸平方和RSS、殘差平方和ESS,計算公式分別如下:可以證明:回歸方程的線性關系是否顯著,可以用一個指標公式來計算:稱為擬合優(yōu)度(判定系數(shù)),值越大表明直線擬合程度越好。多元線性回歸第5章
前文介紹了只有一個自變量和一個因變量的一元線性回歸模型,然而在現(xiàn)實中自變量通常包含多個,這時稱它為多元線性回歸模型對于總體的n個觀測值,滿足以下公式:其中
相互獨立,且記,則其矩陣形式為其中
即為待估計的向量多元線性回歸第5章
對
兩邊取期望值,即得到以下回歸方程:其一般的形式如下其中
分布為期望值及回歸系數(shù)的估計的參數(shù)估計(最小二乘法,過程略)為的參數(shù)估計(推導過程略)為其中,H稱為對稱冪等矩陣與一元線性回歸模型類似,擬合優(yōu)度(判定系數(shù))公式為:線性回歸應用舉例第5章
在發(fā)電場中電力輸出(PE)與溫度(AT)、壓力(V)、濕度(AP)、壓強(RH)有關,相關測試數(shù)據(jù)(部分)如表所示ATVAPRHPE8.3440.771010.8490.01480.4823.6458.491011.474.2445.7529.7456.91007.1541.91438.7619.0749.691007.2276.79453.09…………………………需實現(xiàn)的功能如下:(1)利用線性回歸分析命令,求出PE與AT、V、AP、RH之間的線性回歸關系式系數(shù)
向量(包括常數(shù)項)和擬合優(yōu)度(判定系數(shù)),并在命令窗口輸出。(2)現(xiàn)有某次測試數(shù)據(jù)AT=28.4、V=50.6、AP=1011.9、RH=80.54,試預測其PE值。線性回歸應用舉例第5章
1.讀取數(shù)據(jù),確定自變量x和因變量yimportpandasaspddata=pd.read_excel('發(fā)電場數(shù)據(jù).xlsx')x=data.iloc[:,0:4].valuesy=data.iloc[:,4].values線性回歸應用舉例第5章
(1)導入線性回歸模塊(簡稱LR)。
fromsklearn.linear_modelimportLinearRegressionasLR(2)利用LR創(chuàng)建線性回歸對象lr。
lr=LR()(3)調用lr對象中的fit()方法,對數(shù)據(jù)進行擬合訓練。
lr.fit(x,y)(4)調用lr對象中的score()方法,返回其擬合優(yōu)度,觀察線性關系是否顯著。
Slr=lr.score(x,y)#判定系數(shù)R2(5)取lr對象中的coef_、intercept_屬性,返回x對應的回歸系數(shù)和回歸系數(shù)常數(shù)項。
c_x=lr.coef_#x對應的回歸系數(shù)
c_b=ercept_#回歸系數(shù)常數(shù)項2.線性回歸分析線性回歸應用舉例第5章
(1)可以利用lr對象中的predict()方法進行預測。
importnumpyasnp
x1=np.array([28.4,50.6,1011.9,80.54])
x1=x1.reshape(1,4)
R1=lr.predict(x1)(2)也可以利用線性回歸方程式進行預測,這個方法需要自行計算。
r1=x1*c_x
R2=r1.sum()+c_b#計算預測值print('x回歸系數(shù)為:',c_x)print('回歸系數(shù)常數(shù)項為:',c_b)print('判定系數(shù)為:',Slr)print('樣本預測值為:',R1)3.利用線性回歸模型進行預測執(zhí)行結果為:x回歸系數(shù)為:[-1.97751311-0.233916420.06208294-0.1580541]回歸系數(shù)常數(shù)項為:454.609274315判定系數(shù)為:0.928696089812樣本預測值為:[436.70378447]第5章機器學習與實現(xiàn)邏輯回歸模型邏輯回歸模型應用舉例邏輯回歸第5章
線性回歸模型處理的因變量是數(shù)值型變量。然而在許多實際問題中,我們需要研究的因變量y不是數(shù)值型變量,而是名義變量或者分類變量,如0、1變量問題。邏輯回歸模型是使用一個函數(shù)來歸一化y值,使y的取值在區(qū)間(0,1)內,這個函數(shù)稱為Logistic函數(shù),公式如下:其中這樣就將線性回歸預測問題轉化為一個概率問題,一般以0.5為界,如果預測值大于0.5,我們判斷此時y更可能為1,否則為y=0邏輯回歸應用舉例第5章
取UCI公共測試數(shù)據(jù)庫中的澳大利亞信貸批準數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有14個特征,1個分類標簽y(1—同意貸款,0—不同意貸款),共690個申請者記錄。x1x2x3x4x5x6x7x8x9x10x11x12x13x14y122.0811.462441.5850001210012130022.6772840.1650000216010029.581.751441.250001228010021.6711.51530111112011120.178.172641.96111402601591015.830.5852881.51120210011117.426.52340.12500002601010058.674.4621183.0411602435611……以前600個申請者作為訓練數(shù)據(jù),后90個申請者作為測試數(shù)據(jù),利用邏輯回歸模型預測準確率。邏輯回歸應用舉例第5章
1.數(shù)據(jù)獲取
importpandasaspd
data=pd.read_excel('credit.xlsx')2.訓練樣本與測試樣本劃分
訓練用的特征數(shù)據(jù)用x表示,預測變量用y表示,測試樣本則分別記為x1和y1。
x=data.iloc[:600,:14]
y=data.iloc[:600,14]
x1=data.iloc[600:,:14]
y1=data.iloc[600:,14]邏輯回歸應用舉例第5章
(1)導入邏輯回歸模塊(簡稱LR)。
fromsklearn.linear_modelimportLogisticRegressionasLR(2)利用LR創(chuàng)建邏輯回歸對象lr。
lr=LR()(3)調用lr中的fit()方法進行訓練。
lr.fit(x,y)(4)調用lr中的score()方法返回模型準確率。
r=lr.score(x,y);#模型準確率(針對訓練數(shù)據(jù))(5)調用lr中的predict()方法,對測試樣本進行預測,獲得預測結果。
R=lr.predict(x1)3.邏輯回歸分析邏輯回歸應用舉例第5章
邏輯回歸分析完整示例代碼如下: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)#訓練數(shù)據(jù)r=lr.score(x,y);#模型準確率(針對訓練數(shù)據(jù))R=lr.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print('預測結果為:',R)print('預測準確率為:',Rs)預測結果為:[0111100101100011000101101110100010010
0010110101011100100100010110001001101
0001010110110110]預測準確率為:0.8333333333333334第5章機器學習與實現(xiàn)神經(jīng)網(wǎng)絡模擬思想與神經(jīng)元工作過程神經(jīng)網(wǎng)絡數(shù)學模型神經(jīng)網(wǎng)絡分類與回歸應用舉例神經(jīng)網(wǎng)絡模擬思想第5章
資料學習(孩子的日常辨識能力):一個孩子從生下來,就開始不斷地學習。他的大腦就好比一個能不斷接受新事物,同時能識別事物的龐大而復雜的模型,大腦模型不斷地接受外界的信息,并對其進行判斷和處理。小孩會說話后,總喜歡問這問那,并不斷地說出這是什么那是什么。即使很多是錯誤的,但經(jīng)過大人的糾正后,小孩終于能辨識日常中一些常見的事物了,這就是一個監(jiān)督學習的過程。某一天,大人帶著小孩,來到一個農(nóng)場,遠遠地就看到一大片綠油油的稻田,小孩興奮地說出“好大的一片稻田”,大人樂了。因為小孩的大腦已經(jīng)是一個經(jīng)過長時間學習訓練的“模型”,具備了一定的辨識能力。神經(jīng)元工作過程第5章
可以理解為n個輸入信號(信息),可以理解為對n個輸入信號的加權值,從而得到一個綜合信號(加權求和)神經(jīng)元需要對這個綜合信號做出反應,即引入一個閾值
并與綜合信號比較,根據(jù)比較的結果做出不同的反應,即輸出。這里用一個被稱為激發(fā)函數(shù)的函數(shù)
來模擬其反應。例如,你蒙上眼睛,要判斷面前的人是男孩,還是女孩。可以做一個簡單假設(大腦只有一個神經(jīng)元),只用一個輸入信號x1=頭發(fā)長度(如50cm),權重為1,則其綜合信號為
我們用一個二值函數(shù)作為激發(fā)函數(shù):假設閾值
=12,由于
,故
,由此我們可以得到輸出1為女孩,0為男孩。神經(jīng)元工作過程第5章
那么如何確定閾值是12,輸出1表示女孩,而0表示男孩呢?這就要通過日常生活中的大量實踐認識。數(shù)學模型不像人可以通過日常中漫長的學習和實踐訓練,它只能通過樣本數(shù)據(jù)來訓練,從而獲得模型的參數(shù)并應用。例如,可以選擇1000個人,其中500個人是男孩,500個人是女孩,分別量其頭發(fā)長度,輸入以上模型進行訓練,訓練的準則是判別正確率最大化。(1)取閾值=1,這時判別正確率應該非常低。(2)取值依次增加,假設閾值=12時為最大,達到0.95,當閾值>12時,判別的正確率開始下降,
故可以認為閾值=12時達到判別正確率最大。這個時候,其中95%的男孩對應的函數(shù)值為0,
同樣95%的女孩對應的函數(shù)值為1。如果選用這個模型進行判別,其判別正確率達到0.95。以上兩步訓練完成即得到參數(shù)閾值=12,有95%的可能性輸出1表示判別為女孩,輸出0表示判別為男孩神經(jīng)網(wǎng)絡數(shù)學模型第5章
x為m維向量,y為n維向量,隱含層有q個神經(jīng)元。假設有N個樣本數(shù)據(jù),從輸入層到隱含層的權重記為從隱含層到輸出層的權重記為記第t個樣本輸入網(wǎng)絡時,隱含層單元的輸出為輸出層單元的輸出為,則:這里
為對應輸入神經(jīng)元的閾值,
通常為1,
為對應隱含層神經(jīng)元的閾值,
通常為1,
和
分別為隱含層、輸出層神經(jīng)元的激發(fā)函數(shù)。常用的激發(fā)函數(shù)如下神經(jīng)網(wǎng)絡數(shù)學模型第5章
選定隱含層及輸出層神經(jīng)元的個數(shù)和激發(fā)函數(shù)后,這個神經(jīng)網(wǎng)絡就只有輸入層至隱含層、隱含層至輸出層的參數(shù)未知了。一旦確定了這些參數(shù),神經(jīng)網(wǎng)絡就可以工作了。如何確定這些參數(shù)呢?基本思路如下:通過輸入層的N個樣本數(shù)據(jù),使得真實的y值與網(wǎng)絡的預測值的誤差最小即可,它變成了一個優(yōu)化問題,記
,則優(yōu)化問題如下:如何求解這個優(yōu)化問題獲得最優(yōu)的
呢?常用的有BP算法,這里不再介紹該算法的具體細節(jié),本節(jié)著重介紹如何利用Python進行神經(jīng)網(wǎng)絡模型應用。神經(jīng)網(wǎng)絡分類應用舉例第5章
取UCI公共測試數(shù)據(jù)庫中的澳大利亞信貸批準數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有14個特征,1個分類標簽y(1—同意貸款,0—不同意貸款),共690個申請者記錄。x1x2x3x4x5x6x7x8x9x10x11x12x13x14y122.0811.462441.5850001210012130022.6772840.1650000216010029.581.751441.250001228010021.6711.51530111112011120.178.172641.96111402601591015.830.5852881.51120210011117.426.52340.12500002601010058.674.4621183.0411602435611……以前600個申請者作為訓練數(shù)據(jù),后90個申請者作為測試數(shù)據(jù),利用神經(jīng)網(wǎng)絡分類模型預測準確率。神經(jīng)網(wǎng)絡分類應用舉例第5章
1.數(shù)據(jù)獲取、訓練樣本與測試樣本的劃分
importpandasaspd
data=pd.read_excel('credit.xlsx')#訓練用的特征數(shù)據(jù)用x表示,預測變量用y表示,測試樣本則分別記為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)絡分類應用舉例第5章
(1)導入神經(jīng)網(wǎng)絡分類模塊MLPClassifier。
fromsklearn.neural_networkimportMLPClassifier(2)利用MLPClassifier創(chuàng)建神經(jīng)網(wǎng)絡分類對象clf。
clf=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5,2),random_state=1)
參數(shù)說明如下:
solver:神經(jīng)網(wǎng)絡優(yōu)化求解算法,包括lbfgs、sgd、adam3種,默認值為adam。
alpha:模型訓練誤差,默認值為0.0001。
hidden_layer_sizes:隱含層神經(jīng)元個數(shù)。單層神經(jīng)元設置具體數(shù)值即可,本例隱含層有兩層,即5×2。
random_state:默認設置為1即可。(3)調用clf對象中的fit()方法進行網(wǎng)絡訓練。
clf.fit(x,y)(4)調用clf對象中的score()方法,獲得神經(jīng)網(wǎng)絡的預測準確率(針對訓練數(shù)據(jù))。
rv=clf.score(x,y)(5)調用clf對象中的predict()方法可以對測試樣本進行預測,獲得預測結果。
R=clf.predict(x1)2.神經(jīng)網(wǎng)絡分類模型構建神經(jīng)網(wǎng)絡分類應用舉例第5章
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('預測結果為:',R)print('預測準確率為:',Rs)預測結果為:[011110010110001100010110100000000000000001101011010001001000101000000000000000010010110010]預測準確率為:0.8222222222222222神經(jīng)網(wǎng)絡回歸應用舉例第5章
在發(fā)電場中電力輸出(PE)與溫度(AT)、壓力(V)、濕度(AP)、壓強(RH)有關,相關測試數(shù)據(jù)(部分)如表所示ATVAPRHPE8.3440.771010.8490.01480.4823.6458.491011.474.2445.7529.7456.91007.1541.91438.7619.0749.691007.2276.79453.09…………………………需實現(xiàn)的功能如下:(1)構建神經(jīng)網(wǎng)絡回歸預測模型。(2)現(xiàn)有某次測試數(shù)據(jù)AT=28.4、V=50.6、AP=1011.9、RH=80.54,試預測其PE值。神經(jīng)網(wǎng)絡回歸應用舉例第5章
1.數(shù)據(jù)獲取及訓練樣本構建#訓練樣本的特征輸入變量用x表示,輸出變量用y表示。
importpandasaspd
data=pd.read_excel('發(fā)電場數(shù)據(jù).xlsx')
x=data.iloc[:,0:4]
y=data.iloc[:,4]2.預測樣本的構建#預測樣本的輸入特征變量用x1表示。
importnumpyasnp
x1=np.array([28.4,50.6,1011.9,80.54])
x1=x1.reshape(1,4)神經(jīng)網(wǎng)絡回歸應用舉例第5章
(1)導入神經(jīng)網(wǎng)絡回歸模塊MLPRegressor。
fromsklearn.neural_networkimportMLPRegressor(2)利用MLPRegressor創(chuàng)建神經(jīng)網(wǎng)絡回歸對象clf。
clf=MLPRegressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=8,random_state=1)
參數(shù)說明如下:
solver:神經(jīng)網(wǎng)絡優(yōu)化求解算法,包括lbfgs、sgd、adam3種,默認為adam。
alpha:模型訓練誤差,默認為0.0001。
hidden_layer_sizes:隱含層神經(jīng)元個數(shù)。單層神經(jīng)元設置具體數(shù)值即可。如果是多層,如隱含層有兩層5×2。
random_state:默認設置為1即可。(3)調用clf對象中的fit()方法進行網(wǎng)絡訓練。
clf.fit(x,y)(4)調用clf對象中的score()方法,獲得神經(jīng)網(wǎng)絡回歸的擬合優(yōu)度(判決系數(shù))。
rv=clf.score(x,y)(5)調用clf對象中的predict()可以對測試樣本進行預測,獲得預測結果。
R=clf.predict(x1)3.神經(jīng)網(wǎng)絡回歸模型構建神經(jīng)網(wǎng)絡回歸應用舉例第5章
importpandasaspddata=pd.read_excel('發(fā)電場數(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('樣本預測值為:',R)樣本預測值為:[439.27258187]第5章機器學習與實現(xiàn)支持向量機原理支持向量機應用舉例支持向量機原理第5章
支持向量機基于統(tǒng)計學理論,強調結構風險最小化。其基本思想是:對給定有限數(shù)量訓練樣本的學習任務,通過在原空間或投影后的高維空間構造最優(yōu)分離超平面,將給定的兩類訓練樣本分開,構造分離超平面的依據(jù)是兩類樣本對分離超平面的最小距離最大。最優(yōu)分離超平面可以記為:位于最優(yōu)分離超平面上方的點滿足:位于最優(yōu)分離超平面下方的點滿足:通過調整權重
,邊緣的超平面可以記為:正類負類綜合所得從最優(yōu)分離超平面到
上任意點的距離為
,同理
到上任意點的距離也為
,則最大邊緣間隔為
。支持向量機原理第5章
如何尋找最優(yōu)分離超平面,需要用到更高的數(shù)學理論知識及技巧,這里不再介紹。對于非線性可分的情形,可以通過非線性映射將原數(shù)據(jù)變換到更高維空間,在新的高維空間中實現(xiàn)線性可分。這種非線性映射可以通過核函數(shù)來實現(xiàn),常用的核函數(shù)包括。1.高斯核函數(shù)2.多項式核函數(shù)3.sigmoid核函數(shù)支持向量機應用舉例第5章
取自UCI公共測試數(shù)據(jù)庫中的汽車評價數(shù)據(jù)集作為本例的數(shù)據(jù)集,該數(shù)據(jù)集共有6個特征、1個分類標簽,共1728條記錄a1a2a3a4a5a6d442232344223334422313442222344222334422213……其中特征a1~a6的含義及取值依次為:buyingv-high,high,med,lowmaintv-high,high,med,lowdoors2,3,4,5-morepersons2,4,morelug_bootsmall,med,bigsafetylow,med,high分類標簽d的取值情況為:unacc、acc、good、v-good,分別用1、2、3、4來表示。取數(shù)據(jù)集的前1690條記錄作為訓練集,余下的作為測試集,計算預測準確率。支持向量機應用舉例第5章
1.數(shù)據(jù)獲取importpandasaspddata=pd.read_excel('car.xlsx')2.訓練樣本與測試樣本劃分#訓練用的特征數(shù)據(jù)用x表示,預測變量用y表示,測試樣本則分別記為x1和y1。x=data.iloc[:1690,:6].valuesy=data.iloc[:1690,6].valuesx1=data.iloc[1691:,:6].valuesy1=data.iloc[1691:,6].values支持向量機應用舉例第5章
(1)導入支持向量機模塊svm。
fromsklearnimportsvm(2)利用svm創(chuàng)建支持向量機類svm。
clf=svm.SVC(kernel='rbf')
其中核函數(shù)可以選擇線性核函數(shù)、多項式核函數(shù)、高斯核函數(shù)、sigmoid核,
分別用linear、poly、rbf、sigmoid表示,默認情況下選擇高斯核函數(shù)。(3)調用svm中的fit()方法進行訓練。
clf.fit(x,y)(4)調用svm中的score()方法,考查訓練效果。
rv=clf.score(x,y);#模型準確率(針對訓練數(shù)據(jù))(5)調用svm中的predict()方法,對測試樣本進行預測,獲得預測結果。
R=clf.predict(x1)3.支持向量機分類模型構建支持向量機應用舉例第5章
支持向量機完整示例代碼如下: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('預測結果為:',R)print('預測準確率為:',Rs)預測結果為:[4311314314333333333331314314331314314]預測準確率為:0.7027027027027027第5章機器學習與實現(xiàn)聚類思想與K-均值聚類K-均值聚類應用舉例聚類思想第5章
聚類分析主要是使類內的樣本盡可能相似,而類之間的樣本盡可能相異。聚類問題的一般提法是,設有n個樣本的
維觀測數(shù)據(jù)組成一個數(shù)據(jù)矩陣為:其中,每一行表示一個樣本,每一列表示一個指標,xij表示第i個樣本關于第j項指標的觀測值,并根據(jù)觀測值矩陣X對樣本進行聚類。聚類分析的基本思想是:在樣本之間定義距離,距離表明樣本之間的相似度,距離越小,相似度越高,關系越緊密;將關系密切的聚集為一類,關系疏遠的聚集為另一類,直到所有樣本都聚集完畢。K-均值聚類方法第5章
K-均值聚類是一種基于原型的、根據(jù)距離劃分組的算法,其時間復雜度比其他聚類算法低,用戶需指定劃分組的個數(shù)K。其中,K-均值聚類常見距離測度包括歐幾里得距離(也稱歐氏距離)、曼哈頓距離、切比雪夫距離等。K-均值聚類默認采用歐氏距離進行計算,其公式如下:(表示第個i樣本與第個j樣本之間的歐氏距離)K-均值聚類算法的直觀理解如下:Step1:隨機初始化K個聚類中心,即K個類中心向量。Step2:對每個樣本,計算其與各個類中心向量的距離,并將該樣本指派給距離最小的類。Step3:更新每個類的中心向量,更新的方法為取該類所有樣本的特征向量均值。Step4:直到各個類的中心向量不再發(fā)生變化為止,作為退出條件。K-均值聚類方法第5章
xi1.51.71.62.12.22.42.51.8yi2.51.32.26.25.27.16.81.9將8個數(shù)據(jù)樣本聚為兩類,其算法執(zhí)行如下Step1:初始化兩個類的聚類中心,這里取前兩個樣本分別為聚類中心。C1=(1.5,2.5),C2=(1.7,1.3)到達C1的距離:0
1.22
0.32
3.75
2.79
4.69
4.41
0.67到達C2的距離:1.22
0
0.91
4.92
3.93
5.84
5.56
0.61各樣本所屬類:
1
2
1
1
1
1
1
2Step2:分別計算每個樣本到達各個聚類中心的距離:Step3:更新聚類中心,更新方法為計算所屬類的特征向量的均值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-均值聚類方法第5章
xi1.51.71.62.12.22.42.51.8yi2.51.32.26.25.27.16.81.9將8個數(shù)據(jù)樣本聚為兩類,其算法執(zhí)行如下返回Step2,重新計算各樣本到達各聚類中心的距離。到達C1的距離:2.56
3.72
2.84
1.2
0.25
2.13
1.86
3.11到達C2的距離:0.93
0.3
0.62
4.61
3.63
5.54
5.25
0.3各樣本所屬類:
2
2
2
1
1
1
1
2同理更新聚類中心得C1=(2.3,6.325)C2=(1.65,1.975)返回Step2,重新計算各樣本到達各聚類中心的距離。到達C1的距離:3.91
5.06
4.18
0.24
1.13
0.78
0.52
4.45到達C2的距離:0.55
0.68
0.23
4.25
3.27
5.18
4.9
0.17各樣本所屬類:
2
2
2
1
1
1
1
2同理更新聚類中心得C1=(2.3,6.325)C2=(1.65,1.975)Step4:這里我們發(fā)現(xiàn),聚類中心不再發(fā)生變化,而且類歸屬也沒有發(fā)生變化。其實正是因為類歸屬沒有發(fā)生變化,才導致了聚類中心不再發(fā)生變化,達到算法終止條件。故樣本1、2、3、8歸為一類,樣本4、5、6、7歸為另一類。K-均值聚類算法應用舉例第5章
對表所示的31個地區(qū)2016年農(nóng)村居民人均可支配收入情況做聚類分析地區(qū)工資性收入(X1)經(jīng)營凈收入(X2)財產(chǎn)凈收入(X3)轉移凈收入(X4)北京16637.52061.91350.12260天津12048.15309.4893.71824.4河北6263.23970257.51428.6山西5204.42729.91491999.1內蒙古2448.96215.7452.62491.7…………………………1.數(shù)據(jù)獲取及標準化處理importpandasaspddata=pd.read_excel('農(nóng)村居民人均可支配收入來源2016.xlsx')X=data.iloc[:,1:]fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()scaler.fit(X)X=scaler.transform(X)K-均值聚類算法應用舉例第5章
(1)導入K-均值聚類模塊KMeans。
fromsklearn.clusterimportKMeans(2)利用KMeans創(chuàng)建K-均值聚類對象model。
model=KMeans(n_clusters=K,random_state=0,max_iter=500)
參數(shù)說明如下:
n_clusters:設置的聚類個數(shù)K。
random_state:隨機初始狀態(tài),設置為0即可。
max_iter:最大迭代次數(shù)。(3)調用model對象中的fit()方法進行擬合訓練。
model.fit(X)(4)獲取model對象中的labels_屬性,可以返回其聚類的標簽。
c=model.labels_2.K-均值聚類分析K-均值聚類算法應用舉例第5章
完整代碼如下:importpandasaspddata=pd.read_excel('農(nóng)村居民人均可支配收入來源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)第5章機器學習與實現(xiàn)關聯(lián)規(guī)則概念布爾關聯(lián)規(guī)則挖掘關聯(lián)規(guī)則概念第5章
假設有以下數(shù)據(jù),每行代表一個顧客在超市的購買記錄。I1:西紅柿、排骨、雞蛋。I2:西紅柿、茄子。I3:雞蛋、襪子。I4:西紅柿、排骨、茄子。I5:西紅柿、排骨、襪子、酸奶。I6:雞蛋、茄子、酸奶。I7:排骨、雞蛋、茄子。I8:土豆、雞蛋、襪子。I9:西紅柿、排骨、鞋子、土豆。假如有一條規(guī)則:西紅柿—排骨,則同時購買西紅柿和排骨的顧客比例為4/9,而購買西紅柿的顧客當中也購買了排骨的比例是
4/5。這兩個比例參數(shù)在關聯(lián)規(guī)則中是非常有意義的度量,分別稱作支持度(Support)和置信度(Confidence)。支持度反映了規(guī)則的覆蓋范圍,置信度反映了規(guī)則的可信程度。關聯(lián)規(guī)則概念第5章
在關聯(lián)規(guī)則中,商品集合I={西紅柿,排骨,雞蛋,茄子,襪子,酸奶,土豆,鞋子}稱作項集,每一個顧客購買的商品集合Ii稱為一個事務,所有事務T={I1,I2,…,I9}稱作事務集合,且滿足Ii是T的真子集。項集是項的集合。包含k項的項集稱作k項集,例如,集合{西紅柿,排骨,雞蛋}是一個3項集。項集出現(xiàn)的頻率是所有包含項集的事務計數(shù),又稱作絕對支持度或支持度計數(shù)。假設某項集I的相對支持度滿足預定義的最小支持度閾值,則I是頻繁項集。頻繁k項集通常記作k。假設有以下數(shù)據(jù),每行代表一個顧客在超市的購買記錄。I1:西紅柿、排骨、雞蛋。I2:西紅柿、茄子。I3:雞蛋、襪子。I4:西紅柿、排骨、茄子。I5:西紅柿、排骨、襪子、酸奶。I6:雞蛋、茄子、酸奶。I7:排骨、雞蛋、茄子。I8:土豆、雞蛋、襪子。I9:西紅柿、排骨、鞋子、土豆。關聯(lián)規(guī)則概念第5章
一對一關聯(lián)規(guī)則的形式如下:,A、B滿足A、B是T的真子集,并且A和B的交集為空集。其中A稱為前件,B稱為后件。關聯(lián)規(guī)則有時也表示形如“如果……那么……”,前者是規(guī)則成立的條件,后者是條件下發(fā)生的結果。支持度和置信度有以下計算公式:支持度表示為項集A、B同時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全保衛(wèi)技師試題及答案
- 安全操作證試題及答案
- 商業(yè)視角下的數(shù)字孿生產(chǎn)品創(chuàng)新與迭代
- 制造業(yè)中基于數(shù)據(jù)驅動的流程優(yōu)化實踐案例分享
- 思品課堂育人文:蘇州XX小學的探索與啟示
- 企業(yè)園區(qū)管理的數(shù)字化應用與創(chuàng)新發(fā)展研究
- 山東大學圖書館館員激勵機制優(yōu)化研究:基于組織發(fā)展與個體需求的協(xié)同視角
- 對外漢語教學中疑問語氣詞嗎、吧、呢的難點剖析與策略探究
- 2025年專升本藝術概論考試模擬卷:藝術審美心理在藝術表演中的影響與啟示研究探討研究探討研究試題
- 如何打造高效、安全的辦公系統(tǒng)平臺
- 社會過程研究方法(簡版)課件
- 替莫唑胺與惡性膠質瘤課件
- 腹腔鏡器械清洗流程圖
- 學校食堂餐廳紫外線燈消毒記錄表
- 工會文體活動管理制度范文
- 第6章_射線與物質的相互作用
- 3D打印介紹PPT精選文檔課件
- 鋼結構吊裝施工方案-
- 銀發(fā)【2007】246號
- 【機械畢業(yè)設計全套含CAD圖論文】麥田免耕施肥播種機設計
- (完整word版)后進生轉化檔案
評論
0/150
提交評論