Python機器學習項目化教程(微課視頻版)課件 第6章 回歸分析_第1頁
Python機器學習項目化教程(微課視頻版)課件 第6章 回歸分析_第2頁
Python機器學習項目化教程(微課視頻版)課件 第6章 回歸分析_第3頁
Python機器學習項目化教程(微課視頻版)課件 第6章 回歸分析_第4頁
Python機器學習項目化教程(微課視頻版)課件 第6章 回歸分析_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第6章回歸分析目錄CONTENTS6.1

回歸分析概述6.2線性回歸6.3邏輯回歸6.4本章小結6.1回歸分析概述學習基礎學習認知能力信息素養高回歸分析通過研究一個或多個自變量與因變量的關系,建立自變量與因變量的數學模型,從而利用該模型進行預測。根據自變量與因變量的個數,回歸分析可分為一元回歸分析、多元回歸分析、邏輯回歸分析等。根據自變量與因變量的函數表達式可分為線性回歸和非線性回歸分析。線性回歸是回歸分析中最基本的分析方法,對于非線性回歸,可借助數學手段將其轉換為線性回歸來解決。線性回歸的數學公式可表示為:6.2線性回歸6.2.1單變量線性回歸假設數據集D={(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)},它的線性模型就是試圖通過該數據集學習一個線性方程以進行預測:為了學習到參數W和b,可用最小二乘逼近來擬合,預測函數h(x)與y之間的差值平方和為:6.2線性回歸梯度下降法分別對W和b求偏導來求解參數W和b:W和b的迭代求解:6.2單變量線性回歸defOptimization(x,y,w,lr,iter):m=len(x)alpha=lrh=0foriinrange(iter):sum0=0.0sum1=0.0forjinrange(m):h=w[0]+w[1]*x[j]sum1+=(h-y[j])*x[j]sum0+=(h-y[j])w[0]-=alpha*sum0/mw[1]-=alpha*sum1/mreturnw6.2線性回歸LinearRegression是sklearn.linear_model子類模塊下中的回歸模型,主要通過調用LinearRegression函數、fit函數和predict函數來訓練和預測模型。LinearRegression(copy_X=True,fit_intercept=True,n_jobs=1,normalize=False)fit(X,y[,n_jobs])返回值分為兩個部分:coef_和intercept_,其中coef_存儲LinearRegression模型的回歸系數。intercept_存儲LinearRegression模型的回歸截距。::predict(X)主要是利用訓練模型預測,使用訓練得到的估計器或模型對輸入的X數據集進行預測,返回結果為預測值。數據集X通常劃分為訓練集和測試集:6.2線性回歸根據表6-1所示的房屋面積和房價之間的對應關系,建立線性回歸模型。clf=LinearRegression()x=np.array(x)y=np.array(y)x=x.reshape(len(x),1)y=y.reshape(len(y),1)clf.fit(x,y)pre=clf.predict(x)plt.plot(x,pre)plt.xlabel('面積(平方米)')plt.ylabel('房價(萬元)')plt.show()6.2線性回歸(1)牛頓法求解線性回歸問題的原理假設要求f(x)的解,二階泰勒展開式為:將非線性優化問題min

f(x)近似為二次函數的最優化求解問題:6.2線性回歸牛頓法求解線性回歸問題的算法實現6.2線性回歸6.3.1多變量回歸分析原理對于多變量中的自變量與因變量的關系可表示為:(1)解析法求解利用最小二乘法最小代價函數:對公式(8-19)中的參數求偏導,則有:6.2線性回歸梯度下降法迭代公式:在數據量特別大的情況下,一般會使用梯度下降求解法。6.2線性回歸【例6-2】根據表6-2所示的運輸里程、運輸次數與運輸總時間的對應關系,利用解析法建立多元線性回歸模型。X=xdata[:,:-1]Y=xdata[:,-1]X_one=np.ones(len(X))X0=np.vstack(np.ones((len(X),1)))#10*1X=np.hstack((X0,X))X_T=np.transpose(X)#將X轉置X_TX=np.matmul(X_T,X)#計算X_T*XX_TX_inv=np.linalg.inv(X_TX)#計算(X_T*X)^(-1)X_TX_inv_X_T=np.matmul(X_TX_inv,X_T)#計算(X_T*X)^(-1)*X_TW=np.matmul(X_TX_inv_X_T,Y)#計算(X_T*X)^(-1)*X_T*Y,即W6.2線性回歸多項式回歸是線性回歸模型的一種,假設存在一個函數,只有一個自變量,即只有一個特征屬性,滿足多項式函數如下:其損失函數為:6.2線性回歸【例6-4】根據給定的數據集x=[6,9,15,29,35,46,60,66,73,91,95],y=[16,25,61,67,51,38,36,49,68,82,98],擬合出多項式回歸曲線。deffit_poly(n):para=np.random.randn(n)w=leastsq(err_func,para,args=(np.array(x),np.array(y)))returnw[0]#返回多項式系數6.3邏輯回歸學習基礎學習認知能力信息素養高為了提高分類器的魯棒性,需要降低線性回歸模型的敏感性,通過在線性模型中引入一個sigmoid函數,可以有效提高分類的效果。sigmoid函數定義如下:基于線性函數的邏輯回歸分類模型定義為:sigmoid函數曲線如圖6-8所示。6.3邏輯回歸代價函數如公式6-31所示:為了避免陷入局部最低點,我們可以將h(z)

的取值看作樣本屬于類1的后驗概率,因此構造符合特定條件的損失函數:6.3邏輯回歸在參數下,極大似然函數為:其對數似然函數為:代價函數6.3邏輯回歸參數學習可用向量表示為:對樣本和標簽用向量進行表示:若用A表示線性輸出,則:6.3邏輯回歸真實標簽與經過sigmoid函數變換后的預測標簽的誤差表示為:向量化的邏輯回歸算法描述如下:輸入:訓練樣本X、標簽y、學習步長、迭代次數、初始化參數。過程:(1)當i<=N時,重復執行以下步驟,直至當前均值向量不再更新:①計算A=。②計算誤差E=y-g(A)。③更新,使。(2)當i>N時,停止迭代,輸出參數的值。輸出:參數的值。6.4邏輯回歸1.查看數據利用Pandas在線下載樣本數據,原始數據的下載地址為:。該數據共包含699條樣本,每個樣本有11列數據,其中第1列是id,第2~10列是與腫瘤相關的特征,第11列表示腫瘤類型。6.3邏輯回歸2.缺失值處理使用()查看各屬性特征信息,其結果如圖9-3所示。由于“?”的存在,導致數據類型為object。數據共包含16個缺失值,將缺失值先轉換為NaN,然后再進行刪除。data=data.replace(to_replace="?",value=np.NaN)data=data.dropna()查看是否還有缺失值情況,如圖9-4所示。6.3邏輯回歸3.選擇特征X=data.iloc[:,1:10]y=data["Class"]#分割數據X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=0)print(X_train,X_test,y_train,y_test)6.3邏輯回歸4.數據標準化data_standard=StandardScaler()X_train=data_standard.fit_transform(X_train)X_test=data_standard.transform(X_test)5.模型訓練在對數據的缺失值進行填充、劃分和標準化后,利用邏輯回歸函數對樣本進行訓練,從而得到邏輯回歸模型。LR_model=LogisticRegression()LR_model.fit(X_train,y_train)#邏輯回歸的模型參數:回歸系數和偏置print("模型的回歸系數:{}".format(LR_model.coef_))print("模型的回歸偏置:{}".format(LR_ercept_))

classPro1=k1/(n*v)6.3邏輯回歸對于腫瘤的預測,我們希望建立的模型在保證準確率的前提下,對患有惡性腫瘤的病人能夠準確篩選出來,這就是召回率(recall/查全率),即惡性腫瘤患者被診斷出的概率,與之對應的評價指標還有精確率(Precission),指的是被診斷為惡性腫瘤,確認患有的概率是多少。在介紹召回率和準確率之前,先來了解一下混淆矩陣(ConfusionMatrix)。對于二分類來說,其混淆矩陣為二行二列的,如表所示。6.3邏輯回歸(1)TP,即TruePostive,為真正例,樣本的真實類別是正例,且模型預測的結果也是正例。(2)FP,即FalsePositive,為假正例,樣本的真實類別是負例,但模型預測的結果為正例。(3)FN,即FalseNegative,為假負例,樣本的真實類別是正例,但模型預測的結果為負例。(4)TN,即TrueNegative,為真負例,樣本的真實類別是負例,且模型預測的結果也是負例。6.3邏輯回歸1.精確率與召回率精確率是指分類正確的正樣本占預測為正的樣本個數的比例,在信息檢索領域稱為查準率。2.召回率召回率是指分類正確的正樣本占真正的正樣本個數的比例,在信息檢索領域稱為查全率。6.3邏輯回歸3.準確率準確率是指分類正確的樣本占總樣本個數的比例。4.F1-scoreF1-score是綜合考慮精確率和召回率的一個評價指標。6.3邏輯回歸5.ROC曲線與AUC在分類模型中,ROC(ReceiverOperatingCharacteristicCurve,受試者工作特征曲線)曲線和AUC(AreaUnderROCCurve,ROC曲線下的面積)經常作為衡量一個模型泛化性能的指標。6.3邏輯回歸fori,valueinenumerate(thersholds):print("%f%f%f"%(fpr_train[i],tpr_train[i],value))plt.plot(fpr_train,tpr_train,'k--',label='ROC(面積={0:.2f})'.format(auc),lw=1)plt.plot([0,1],[0,1],color='navy',lw=2,linestyle='--')plt.xlabel('假正率')plt.ylabel('真正率')plt.title('ROC曲線')plt.legend(loc="lowerright")plt.rcParams['font.sans-serif']=['SimHei']#顯示中文plt.rcParams['axes.unicode_minus']=Falseplt.show()6.3邏輯回歸y_predict=LR_model.predict(X_test)#分類報告,'Benign','Malignant'良性和惡性,f1_score綜合評判精確率和召回率的分數print(classification_report(y_test,y_predict,target_names=['Benign','Malignant']))roc_auc_score(y_test,y_predict)print("AUC指標:",roc_auc_score(y_test,y_predict))precisionrecallf1-scoresuppor

溫馨提示

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

評論

0/150

提交評論