Chapter5 統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)_第1頁
Chapter5 統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)_第2頁
Chapter5 統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)_第3頁
Chapter5 統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)_第4頁
Chapter5 統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)分析與可視化第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.1分類方法5.2KNN算法5.3邏輯回歸5.4支持向量機(jī)5.5主成分分析5.6k-means聚類第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)2《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.1.1理解線性回歸5.1.2線性回歸5.1.3決策樹5.1.4貝葉斯定理5.1.5樸素貝葉斯分類器5.1分類方法3《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)算法:大致分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)和深度學(xué)習(xí)一個良好的分類器所需內(nèi)容:(1)一組良好的訓(xùn)練示例(訓(xùn)練數(shù)據(jù))(2)在訓(xùn)練集上相對良好的分類表現(xiàn)(3)一個與先前預(yù)期密切相關(guān)的分類器方法5.1分類方法4《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:不同二元分類器二元分類器將獲取的樣本數(shù)據(jù)分為兩個類別之一(對于更高維度的情況,數(shù)據(jù)會被分類到多個類別中)5.1分類方法5《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

二元分類器示例分類算法通用步驟:(1)從可靠來源收集數(shù)據(jù)(2)準(zhǔn)備或重新組織具有特定結(jié)構(gòu)的數(shù)據(jù),對于分類問題,往往需要進(jìn)行與“距離”相關(guān)的計算和處理(3)使用適當(dāng)?shù)姆椒ǚ治鰯?shù)據(jù)(4)訓(xùn)練(二元)分類器(5)測試(計算錯誤率)5.1分類方法6《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.1.1理解線性回歸例:GPA和SAT分?jǐn)?shù)樣本數(shù)據(jù)5.1分類算法7《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)學(xué)生編號SAT分?jǐn)?shù)GPA是否錄取124004.4Y223504.5Y324004.2Y422904.3N521004.0N623804.1Y723003.9N822804.0N922104.3Y1023904.5Y表5-1學(xué)生GPA和SAT分?jǐn)?shù)例:使用matplotlib和NumPy來進(jìn)行探索5.1分類算法8《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)importmatplotlib.pyplotaspltimportmatplotlibasmplimportnumpyasnpmpl.rcParams['axes.facecolor']='#f8f8f8'mpl.rcParams['grid.color']='#303030'mpl.rcParams['grid.color']='#303030'mpl.rcParams['lines.linestyle']='--'#SAT分?jǐn)?shù)x=[2400,2350,2400,2290,2100,2380,2300,2280,2210,2390]#HighschoolGPAy=[4.4,4.5,4.2,4.3,4.0,4.1,3.9,4.0,4.3,4.5]a='#6D0000'r='#00006F'5.1分類算法9《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)#接受(a)或者拒絕(r)z=[a,a,a,r,r,a,r,r,a,a]plt.figure(figsize=(11,11))plt.scatter(x,y,c=z,s=600)#畫出分隔線foriinrange(1,5):X_plot=np.linspace(2490-i*2,2150+i*2,20) Y_plot=np.linspace(3.3+i*0.2,5-0.2*i,20) plt.plot(X_plot,Y_plot,c='gray')plt.grid(True)plt.xlabel('SAT分?jǐn)?shù)',fontsize=18)plt.ylabel('均績(GPA)',fontsize=18)plt.title("大學(xué)錄取情況",fontsize=20)plt.legend()plt.show()5.1分類算法10《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)繪制分隔線,以直觀地了解線性回歸的工作原理GPA和SAT成績與錄取情況的關(guān)系5.1.2線性回歸簡單線性回歸方程5.1分類算法11《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

5.1分類算法12《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)系數(shù)使用最小二乘法來進(jìn)行估計的,需要找到一條分隔線并使它最小化殘差平方和學(xué)生編號學(xué)術(shù)體育音樂錄取率/%1230.137.86282244.539.34139317.245.963344151.541.368695180.810.8534868.748.96827學(xué)生錄取情況數(shù)據(jù)散點圖考察變量間相關(guān)性5.1分類算法13《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)frommatplotlibimportpyplotasppltimportpandasaspdsimportstatsmodels.formula.apiassfapidf=pds.read_csv('/Users/myhomedir/sports.csv',index_col=0)fig,axs=plt.subplots(1,3,sharey=True)df.plot(kind='scatter',x='sports',y='acceptance',ax=axs[0],figsize=(16,8))df.plot(kind='scatter',x='music',y='acceptance',ax=axs[1])df.plot(kind='scatter',x='academic',y='acceptance',ax=axs[2])#一行代碼擬合模型lmodel=sfapi.ols(formula='acceptance~music',data=df).fit()X_new=pd.DataFrame({'music':[df.music.min(),df.music.max()]})predictions=lmodel.predict(X_new)5.1分類算法14《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)df.plot(kind='scatter',x='music',y='acceptance',figsize=(12,12),s=50)plt.title("線性回歸結(jié)果:音樂vs錄取率",fontsize=20)plt.xlabel("音樂",fontsize=16)plt.ylabel("錄取情況",fontsize=16)#畫出最小二乘法所擬合的直線回歸殘差與預(yù)測值的關(guān)系例:錄取情況和運(yùn)動、音樂和學(xué)術(shù)的關(guān)系5.1分類算法15《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)錄取情況與體育、音樂、學(xué)術(shù)方面的表現(xiàn)之間的關(guān)系例:錄取率與音樂的線性回歸結(jié)果5.1分類算法16《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)錄取率與音樂表現(xiàn)關(guān)系的線性擬合5.1.3決策樹用于將數(shù)據(jù)劃分到響應(yīng)變量對應(yīng)的不同類響應(yīng)變量通常包含兩個類別,例如是或否(1或0);如果目標(biāo)變量有兩個以上的類別,則C4.5可以滿足需要當(dāng)預(yù)測變量與響應(yīng)之間的關(guān)系為線性時,標(biāo)準(zhǔn)回歸樹更合適,而當(dāng)預(yù)測變量與響應(yīng)之間的關(guān)系為非線性時,則應(yīng)使用C4.5。此外,當(dāng)響應(yīng)變量只有兩個類別時,應(yīng)該使用決策樹算法5.1分類算法17《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:打網(wǎng)球或高爾夫球的決策樹算法5.1分類算法18《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)網(wǎng)球活動舉辦可能情況添加離散屬性(比如溫度)所有這些規(guī)則可以結(jié)合如下:5.1分類算法19《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)If(Outlook=Sunny)and(Humidity=High)thenplay=NoIf(Outlook=Rain)and(Wind=Strong)thenplay=NoIf(Outlook=Sunny)and(Humidity=Normal)or(Outlook=Overcast)or(Outlook=RainandWind=Weak)thenplay=YesIF(Temperature=Hot)and(Humidity=High)thenplay=No例:訓(xùn)練集數(shù)據(jù)5.1分類算法20《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)天氣氣溫濕度風(fēng)的強(qiáng)度是否打球晴天高溫高弱否晴天高溫高強(qiáng)否陰天舒適高弱是陰天涼爽正常強(qiáng)是晴天舒適高弱否晴天涼爽正常弱是雨天舒適高弱是雨天涼爽正常弱是雨天涼爽正常強(qiáng)否雨天舒適正常弱是晴天舒適正常強(qiáng)是陰天舒適高強(qiáng)是陰天涼爽正常弱是雨天舒適高強(qiáng)否運(yùn)動與天氣數(shù)據(jù)自上而下歸納的決策樹(ID3)遵循以下規(guī)則:(1)迭代葉節(jié)點直到滿足某種停止條件(2)確定一個最佳的用于決策的特征(3)將步驟(2)中的最佳節(jié)點指定為決策特征(4)為最佳節(jié)點對應(yīng)的每個可能的取值,創(chuàng)建新葉節(jié)點(5)將數(shù)據(jù)排序分配到葉節(jié)點中(6)每一個數(shù)據(jù)都能夠在閾值內(nèi)被分類5.1分類算法21《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)線性回歸和決策樹算法之間的一個明顯區(qū)別是決策樹的決策邊界平行于坐標(biāo)軸決策樹算法的優(yōu)點是它對錯誤具有魯棒性,考慮到訓(xùn)練集中可能有錯誤,它對算法的影響不大5.1分類算法22《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.1分類算法23《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)fromsklearn.externals.siximportStringIOfromsklearnimporttreeimportpydot#第一列:1表示晴天,2表示陰天,3表示下雨#第二列:1表示炎熱,2表示溫和,3表示舒適#第三列:1表示高,2表示正常#第四列:0表示弱風(fēng),1表示強(qiáng)風(fēng)X=[[1,1,1,0],[1,1,1,1],[2,1,1,0],[2,3,2,1],[1,2,1,0],[1,3,2,0],\[3,2,1,0],[3,3,2,0],[3,3,2,1],[3,2,2,0],[1,2,2,1],[2,2,1,1],\[2,1,2,0],[3,2,1,0]]#1表示舉辦,0表示不舉辦Y=[0,0,1,1,0,1,1,1,0,1,1,1,1,0]clf=tree.DecisionTreeClassifier()clf=clf.fit(X,Y)dot_data=StringIO()tree.export_graphviz(clf,out_file=dot_data)graph=pydot.graph_from_dot_data(dot_data.getvalue())graph.write_pdf("game.pdf")例:使用sklearn繪制決策樹分類器5.1分類算法24《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:使用sklearn繪制決策樹分類器使用sklearn繪制決策樹分類器5.1分類算法25《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:使用matplotlib創(chuàng)建帶有標(biāo)簽的樹形結(jié)構(gòu)importmatplotlib.pyplotasplt#創(chuàng)建節(jié)點branchNode=dict(boxstyle="sawtooth",fc="0.8")leafNode=dict(boxstyle="round4",fc="0.8")startNode=dict(boxstyle="sawtooth",fc="0.9")defcreatePlot():fig=plt.figure(1,facecolor='white')fig.clf()createPlot.ax1=plt.subplot(111,frameon=False)#以下為偽代碼

plotNode('fromhere',(0.3,0.8),(0.3,0.8),startNode)plotNode('adecisionnode',(0.5,0.1),(0.3,0.8),branchNode)plotNode('aleafnode',(0.8,0.1),(0.3,0.8),leafNode)plt.show()5.1分類算法26《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:使用matplotlib創(chuàng)建帶有標(biāo)簽的樹形結(jié)構(gòu)使用matplotlib構(gòu)建決策樹5.1.4貝葉斯定理例:假設(shè)在我國所有人形成的總體U中,患有乳腺癌的人的集合是A組,而B組是進(jìn)行了乳腺癌篩查測試且診斷結(jié)果為陽性的人的集合5.1分類算法27《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)貝葉斯定理的圖形表示隨機(jī)選擇的人的診斷結(jié)果是否為陽性?這個人患乳腺癌的概率是多少?條件概率方程:5.1分類算法28《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

如果我們知道一個隨機(jī)選擇的人患有乳腺癌,其診斷結(jié)果為陽性的概率是多少?即給定A時B的概率:5.1分類算法29《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

由此,我們推導(dǎo)出貝葉斯定理,其中A

和B

是P(B)非0的事件5.1.5樸素貝葉斯分類器基于貝葉斯定理,適用于輸入維數(shù)較高的情況例:以紅色顯示的對象代表患有乳腺癌的人群,以藍(lán)色顯示的對象代表被診斷出患有乳腺癌的人群。任務(wù)是得到能夠標(biāo)記各種新數(shù)據(jù)的分類器5.1分類算法30《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)乳腺癌患者數(shù)據(jù)示例先驗概率更傾向于接近對象當(dāng)前特征的模式或行為如果紅色對象的百分比大于藍(lán)色對象,那么這給了我們一個預(yù)期,即新對象預(yù)測為紅色對象的概率應(yīng)該更高5.1分類算法31《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)乳腺癌患者數(shù)據(jù)示例利用紅色對象和藍(lán)色對象的先驗概率,可以計算出x是紅色對象還是藍(lán)色對象的后驗概率5.1分類算法32《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

因此,新對象x有可能是被診斷出患有乳腺癌的人KNN(K-NearestNeighbors,k近鄰)算法可以存儲總結(jié)所有已知案例,并基于相似性度量(如歐幾里得距離)對新案例進(jìn)行分類對于1近鄰(1NN),它將一個特定點的標(biāo)簽設(shè)置為它距離最近的訓(xùn)練點的標(biāo)簽。當(dāng)我們將其擴(kuò)展為更高的K值時,測試點的標(biāo)簽取決于K個最近的訓(xùn)練點測量的標(biāo)簽優(yōu)點:準(zhǔn)確性高,對異常值不敏感,無需對數(shù)據(jù)進(jìn)行假設(shè)缺點:計算量大,需要占用大量內(nèi)存5.2KNN算法33《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)距離度量5.2KNN算法34《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

例:區(qū)分一大籃子水果,里面只有蘋果、香蕉和梨形狀特征分類如下:(1)對于蘋果,形狀值介于1到3之間,顏色是紅色或青色,而質(zhì)量介于170g到200g之間。(2)對于梨,形狀值介于2到4之間,顏色是綠色或黃色,而質(zhì)量介于240g到250g之間。(3)對于香蕉,形狀值介于3到5之間,顏色是黃色,而質(zhì)量介于140g到160g之間。5.2KNN算法35《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)水果數(shù)據(jù)5.2KNN算法36《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)編號形狀顏色質(zhì)量(g)水果11.75紅色177.04蘋果22.16紅色185.66蘋果32.31紅色186.23蘋果42.99紅色173.39蘋果52.22青色178.57蘋果63.55黃色145.96香蕉74.80黃色162.44香蕉84.38黃色155.69香蕉94.98黃色148.66香蕉104.71黃色143.50香蕉111.64紅色190.24蘋果122.10綠色241.87梨132.85綠色242.16梨143.76黃色244.07梨5.2KNN算法37《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:基于水果的形狀和質(zhì)量的KNN算法importcsvimportmatplotlib.patchesasmpatchesimportmatplotlib.pyplotaspltcount=0x=[]y=[]z=[]withopen('/Users/myhome/fruits_data.csv','r')ascsvf: reader=csv.reader(csvf,delimiter=',') forrowinreader: ifcount>0: x.append(row[0])y.append(row[1]) if(row[2]=='蘋果'):z.append('r') elif(row[2]=='梨'):z.append('g') else:z.append('y') count+=15.2KNN算法38《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:基于水果的形狀和質(zhì)量的KNN算法plt.figure(figsize=(11,11))recs=[]classes=['Apples','Pear','Bananas']class_colours=['r','g','y']plt.title("蘋果、香蕉和梨的質(zhì)量和形狀",fontsize=18)

plt.xlabel("形狀尺度",fontsize=14)plt.ylabel("質(zhì)量/g",fontsize=14)plt.scatter(x,y,s=600,c=z)KNN算法分類示例5.2KNN算法39《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:挑選4個未標(biāo)記的水果,它們的坐標(biāo)值為A(3.5,6.2)、B(2.75,6.2)、C(2.9,7.6)和D(2.4,7.2)frommathimportpow,sqrtdist=[]defdetermineFruit(xv,yv,threshold_radius): foriinrange(1,len(x)):xdif=pow(float(x[i])-xv,2)ydif=pow(float(y[i])-yv,2)sqrtdist=sqrt(xdif+ydif))if(xdif<threshold_radiusandydif<thresholdradiusandsqrtdist<threshold_radius): dist.append(sqrtdist) else: dist.append(99)5.2KNN算法40《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)pear_count=0apple_count=0banana_count=0foriinrange(1,len(dist)): ifdist[i]<threshold_radius: ifz[i]=='g':pear_count+=1 ifz[i]=='r':apple_count+=1 ifz[i]=='y':banana_count+=1if(apple_count>=pear_countandapple_count>=banana_count): return"apple"elif(pear_count>=apple_countandpear_count>=banana_count): return"pear"elif(banana_count>=apple_countandbanana_count>=pear_count): return"banana"dist=[]determine=determineFruit(3.5,6.2,1)printdetermine'pear'邏輯回歸(LogisticRegression)與線性回歸相比,邏輯回歸可以直接預(yù)測所有概率;與樸素貝葉斯相比,邏輯回歸可以更好地校準(zhǔn)預(yù)測概率假設(shè)輸入變量可以通過逆對數(shù)函數(shù)(InverseLogFunction)進(jìn)行縮放即觀察到的y值的對數(shù)可以表示為x的n個輸入變量的線性組合,如下式所示:5.3邏輯回歸41《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)

右側(cè)的表達(dá)式是x變量線性組合的Sigmoid轉(zhuǎn)化;P(x)的值嚴(yán)格大于0且小于15.3邏輯回歸42《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)importmatplotlib.pyplotaspltimportmatplotlibimportrandom,mathimportnumpyasnpimportSciPy,SciPy.statsimportpandasaspdx=np.linspace(-10,10,100)y1=1.0/(1.0+np.exp(-x))y2=1.0/(1.0+np.exp(-x/2))y3=1.0/(1.0+np.exp(-x/10))plt.title("Sigmoid函數(shù)")plt.plot(x,y1,'r-',lw=2)plt.plot(x,y2,'g-',lw=2)plt.plot(x,y3,'b-',lw=2)plt.xlabel("x")plt.ylabel("y")plt.show()5.3邏輯回歸43《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:標(biāo)準(zhǔn)Sigmoid函數(shù)例:開心和悲傷的對應(yīng)概率

5.3邏輯回歸44《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:kaggle上嘗試根據(jù)真實數(shù)據(jù)預(yù)測泰坦尼克號的幸存者importnumpyasnpimportpandasaspdimportsklearn.linear_modelaslmimportsklearn.cross_validationascvimportmatplotlib.pyplotasplttrain=pd.read_csv('/Users/myhome/titanic_train.csv')test=pd.read_csv('/Users/myhome/titanic_test.csv')train[train.columns[[2,4,5,1]]].head()data=train[['Sex','Age','Pclass','Survived']].copy()data['Sex']=data['Sex']=='female'data=data.dropna()5.3邏輯回歸45《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)data_np=data.astype(32).valuesX=data_np[:,:-1]y=data_np[:,-1]female=X[:,0]==1survived=y==1#這個變量包含乘客的年齡值age=X[:,1]#以下計算了一些柱狀圖bins_=np.arange(0,121,5)S={'male':np.histogram(age[survived&~female],bins=bins_)[0], 'female':np.histogram(age[survived&female],bins=bins_)[0]}D={'male':np.histogram(age[~survived&~female],bins=bins_)[0], 'female':np.histogram(age[~survived&female],bins=bins_)[0]}bins=bins_[:-1]plt.figure(figsize=(15,8))5.3邏輯回歸46《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)fori,sex,colorinzip((0,1),('male','female'),('#3345d0','#cc3dc0')):plt.subplot(121+i)plt.bar(bins,S[sex],bottom=D[sex],color=color,width=5,label='Survived')plt.bar(bins,D[sex],color='#aaaaff',width=5,label='Died',alpha=0.4)plt.xlim(0,80)plt.grid(None)plt.title(sex+"生還")plt.xlabel("年齡")plt.legend() (X_train,X_test,y_train,y_test)=cv.train_test_split(X,y,test_size=.05)printX_train,y_train5.3邏輯回歸47《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)#使用lm.LogisticRegression()函數(shù)進(jìn)行邏輯回歸logreg=lm.LogisticRegression();logreg.fit(X_train,y_train)y_predicted=logreg.predict(X_test)plt.figure(figsize=(15,8));plt.imshow(np.vstack((y_test,y_predicted)),interpolation='none',cmap='bone');plt.xticks([]);plt.yticks([]);plt.title(("Actualandpredictedsurvivaloutcomesonthetestset"))5.3邏輯回歸48《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)泰坦尼克號幸存者線性回歸圖支持向量機(jī)(SupportVectorMachine,SVM)非線性模型的擴(kuò)展計算成本低且易于實現(xiàn),但容易欠擬合并且可能精度低SVM的目標(biāo):找到x和y之間的關(guān)系模式5.4支持向量機(jī)49《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.4支持向量機(jī)50《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:字符識別字符識別示例5.4支持向量機(jī)51《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:使用scikit-learn將可視化方法應(yīng)用于機(jī)器學(xué)習(xí)算法importnumpyasnpfromsklearn.svmimportSVRimportmatplotlib.pyplotaspltX=np.sort(5*np.random.rand(40,1),axis=0)y=(np.cos(X)+np.sin(X)).ravel()y[::5]+=3*(0.5-np.random.rand(8))svr_rbfmodel=SVR(kernel='rbf',C=1e3,gamma=0.1)svr_linear=SVR(kernel='linear',C=1e3)svr_polynom=SVR(kernel='poly',C=1e3,degree=2)y_rbfmodel=svr_rbfmodel.fit(X,y).predict(X)y_linear=svr_linear.fit(X,y).predict(X)y_polynom=svr_polynom.fit(X,y).predict(X)5.4支持向量機(jī)52《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)plt.figure(figsize=(11,11))plt.scatter(X,y,c='k',label='數(shù)據(jù)')plt.hold('on')plt.plot(X,y_rbfmodel,c='g',label='RBF模型')plt.plot(X,y_linear,c='r',label='線性模型')plt.plot(X,y_polynom,c='b',label='多項式模型')plt.xlabel('數(shù)據(jù)')plt.ylabel('標(biāo)簽值')plt.title('支持向量回歸')plt.legend()plt.show()用SVM進(jìn)行回歸分析主成分分析(PrincipalComponentAnalysis,PCA)主成分通常由變量的線性組合構(gòu)成研究如何從原始變量中導(dǎo)出少數(shù)幾個主成分,使它們盡可能多地保留原始變量的信息目標(biāo):降維降維的過程都可能導(dǎo)致信息丟失,因此算法如何在丟棄噪聲的同時保留數(shù)據(jù)的有用部分至關(guān)重要5.5主成分分析53《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)5.5主成分分析54《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:學(xué)生數(shù)據(jù)分析,涉及性別、身高、體重、看電視時間、運(yùn)動時間、學(xué)習(xí)時間、GPA等詳細(xì)信息importmatplotlib.pyplotaspltimportcsvgender=[]x=[]y=[]withopen('/Users/kvenkatr/height_weight.csv','r')ascsvf: reader=csv.reader(csvf,delimiter=',’) count=0 forrowinreader: ifcount>0: ifrow[0]=="f":gender.append(0) else:gender.append(1) height=float(row[1]) weight=float(row[2]) x.append(height) y.append(weight) count+=15.5主成分分析55《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)plt.figure(figsize=(11,11))plt.scatter(y,x,c=gender,s=300)plt.grid(True)plt.xlabel('體重',fontsize=18)plt.ylabel('身高',fontsize=18)plt.title("身高vs體重(大學(xué)生)",fontsize=20)plt.legend()plt.show()

身高與體重的關(guān)系5.5主成分分析56《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:利用鳶尾花(Iris)數(shù)據(jù)集來展示PCAfromsklearn.datasetsimportload_irisfromsklearn.preprocessingimportStandardScalerimportmatplotlib.pyplotaspltdata=load_iris()X=data.data#將第一列特征的單位從cm轉(zhuǎn)換為inchX[:,0]/=2.54#將第二列特征的單位從cm轉(zhuǎn)換為meterX[:,1]/=100fromsklearn.decompositionimportPCA5.5主成分分析57《數(shù)據(jù)分析與可視化》第五章統(tǒng)計學(xué)與機(jī)器學(xué)習(xí)例:利用鳶尾花(Iris)數(shù)據(jù)集來展示PCAdefscikit_pca(X):#標(biāo)準(zhǔn)化

X_std=StandardScaler().fit_transform(X)#PCAsklearn_pca=PCA(n_components=2)X_transf=sklearn_pca.fit_transform(X_std)#可視化數(shù)據(jù)

plt.figure(figsize=(11,11))plt.scatter(X_transf[:,0],X_transf[:,1],s=600,color='#8383c4',alpha=0.56)plt.title('基于scikit-learn中SVD實現(xiàn)的PCA',fontsize=20)plt.xlabel('花萼寬度',fontsize=15)plt.ylabel('花萼長度',fontsi

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論