2024機(jī)器學(xué)習(xí)邏輯回歸算法_第1頁(yè)
2024機(jī)器學(xué)習(xí)邏輯回歸算法_第2頁(yè)
2024機(jī)器學(xué)習(xí)邏輯回歸算法_第3頁(yè)
2024機(jī)器學(xué)習(xí)邏輯回歸算法_第4頁(yè)
2024機(jī)器學(xué)習(xí)邏輯回歸算法_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

邏輯回歸算法邏輯回歸是當(dāng)前業(yè)界比較常用的機(jī)器學(xué)習(xí)方法,用于估計(jì)某種事物的可能性,比如廣告的點(diǎn)擊預(yù)測(cè),某用戶購(gòu)買某商品的可能性,某病人患有某種疾病的可能性,等等。邏輯回歸可以用來回歸,也可以用來分類。結(jié)合廣告預(yù)測(cè)的例子來介紹邏輯回歸的基本概念,并給出基本的使用方式,然后介紹如何使用邏輯回歸來檢測(cè)基于Java的溢出攻擊,最后介紹如何使用邏輯回歸來識(shí)別基于MNIST數(shù)據(jù)集的驗(yàn)證碼。目錄TOC\o"1-1"\h\u871邏輯回歸算法概述 3132952示例:helloworld!邏輯回歸 5159963示例:使用邏輯回歸算法檢測(cè)Java出攻擊 7124244示例:識(shí)別驗(yàn)證碼 11邏輯回歸算法概述在我們打開瀏覽器訪問網(wǎng)頁(yè)的時(shí)候,時(shí)常會(huì)在網(wǎng)頁(yè)的邊角位置看到一些似曾相識(shí)的廣告,似乎和最近關(guān)注的話題和瀏覽的內(nèi)容有關(guān)。這其實(shí)就是邏輯回歸的一種應(yīng)用,廣告服務(wù)商自動(dòng)根據(jù)你的歷史瀏覽內(nèi)容、關(guān)注話題等數(shù)據(jù),預(yù)測(cè)你點(diǎn)擊那一類廣告的概率會(huì)更大,從而選擇適當(dāng)?shù)膹V告素材展現(xiàn)在你面前,如圖8-1所示。自變量X和因變量Y之間的關(guān)系,或者說自變量X對(duì)因變量Y的影響程度,并對(duì)因變量Y進(jìn)行預(yù)測(cè)。其中因變量是我們希望獲得的結(jié)果,自變做多元回歸分析。圖8-1 邏輯回歸在廣告領(lǐng)域的應(yīng)用舉例示例:helloworld!邏輯回歸我們先演示邏輯回歸的基本使用(如圖8-2所示),完整演示代碼請(qǐng)見本書GitHub上的8-1.py。邏輯回歸的核心函數(shù)為:LogisticRegression(penalty='l2',dual=False,tol=0.0001,C=1.0,fit_intercept=True,圖8-2 邏輯回歸使用舉其中比較重要的參數(shù)有以下4個(gè)?!andom_state:隨機(jī)種子?!:正則化系數(shù),越小正則化程度越高?!olver:算法,包括‘newton-cg’‘lbfgs’‘liblinear’‘sag’,默認(rèn)使用‘liblinear’?!_jobs:并發(fā)任務(wù)數(shù)。加載相關(guān)庫(kù)文件:importnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportlinear_model,datasets使用經(jīng)典的iris數(shù)據(jù)集合:iris=datasets.load_iris()X=iris.data[:,:2]Y=iris.target使用邏輯回歸訓(xùn)練并預(yù)測(cè):logreg=linear_model.LogisticRegression(C=1e5)logreg.fit(X,Y)x_min,x_max=X[:,0].min()-.5,X[:,0].max()+.5y_min,y_max=X[:,1].min()-.5,X[:,1].max()+.5xx,yy=np.meshgrid(np.arange(x_min,x_max,h),np.arange(y_min,y_max,h))Z=logreg.predict(np.c_[xx.ravel(),yy.ravel()])將結(jié)果可視化:Z=Z.reshape(xx.shape)plt.figure(1,figsize=(4,3))plt.pcolormesh(xx,yy,Z,cmap=plt.cm.Paired)plt.scatter(X[:,0],X[:,1],c=Y,edgecolors='k',cmap=plt.cm.Paired)plt.xlabel('Sepallength')plt.ylabel('Sepalwidth')plt.xlim(xx.min(),xx.max())plt.ylim(yy.min(),yy.max())plt.xticks(())plt.yticks(())plt.show()示例:使用邏輯回歸算法檢測(cè)Java出攻擊完整演示代碼請(qǐng)見本書GitHub上的8-2.py。數(shù)據(jù)搜集和數(shù)據(jù)清洗使用ADFA-LD數(shù)據(jù)集中Java溢出攻擊的相關(guān)數(shù)據(jù)(見圖8-3),ADFA-LD數(shù)據(jù)集詳細(xì)介紹請(qǐng)閱讀第3章相關(guān)內(nèi)容。圖8-3 ADFA-LD系統(tǒng)調(diào)用抽象成向加載ADFA-LD中的正常樣本數(shù)據(jù):defload_adfa_training_files(rootdir):x=[]y=[]list=os.listdir(rootdir)foriinrange(0,len(list)):path=os.path.join(rootdir,list[i])ifos.path.isfile(path):x.append(load_one_flle(path))y.append(0)returnx,y定義遍歷目錄下文件的函數(shù):defdirlist(path,allfile):filelist=os.listdir(path)forfilenameinfilelist:filepath=os.path.join(path,filename)ifos.path.isdir(filepath):dirlist(filepath,allfile)else:allfile.append(filepath)returnallfile從攻擊數(shù)據(jù)集中篩選和Java溢出攻擊相關(guān)的數(shù)據(jù):defload_adfa_java_files(rootdir):x=[]y=[]allfile=dirlist(rootdir,[])forfileinallfile:ifre.match(r"../data/ADFA-LD/Attack_Data_Master/Java_Meterpreter_\d+/UAD-Java-Meterpreter*",file):x.append(load_one_flle(file))y.append(1)returnx,y特征化由于ADFA-LD數(shù)據(jù)集都記錄了函數(shù)調(diào)用序列,每個(gè)文件包含的函數(shù)調(diào)用序列的個(gè)數(shù)都不一致,可以參考第3章中的詞集模型進(jìn)行特征化:x2,y2=load_adfa_hydra_ftp_files("../data/ADFA-LD/Attack_Data_Master/"x=x1+x2y=y1+y2vectorizer=CountVectorizer(min_df=1)x=vectorizer.fit_transform(x)x=x.toarray()訓(xùn)練樣本實(shí)例化邏輯回歸算法,正則系數(shù)為1e5:logreg=linear_model.LogisticRegression(C=1e5)效果驗(yàn)證我們使用十折交叉驗(yàn)證:printcross_validation.cross_val_score(logreg,x,y,n_jobs=-1,cv=10)測(cè)試結(jié)果如下,準(zhǔn)確率93%左右:0.930928852415示例:識(shí)別驗(yàn)證碼上一章提過,MNIST手寫數(shù)字圖片,也包含每一張圖片對(duì)應(yīng)的標(biāo)簽,告訴我們這個(gè)是數(shù)字幾。我們使用邏輯回歸來識(shí)別由MNIST見本書GitHub上的8-3.py。數(shù)據(jù)搜集和數(shù)據(jù)清洗使用MNIST離線版的數(shù)據(jù),具體下載地址以及數(shù)據(jù)集的介紹請(qǐng)參考第3章相關(guān)內(nèi)容:defload_data():withgzip.open('../data/MNIST/mnist.pkl.gz')asfp:training_data,valid_data,test_data=pickle.load(fp)returntraining_data,valid_data,test_data特征化MNIST已經(jīng)將24×24的圖片特征化成長(zhǎng)度為784的一維向量。3.訓(xùn)練模型使用邏輯回歸訓(xùn)練:training_data,valid_data,test_data=load_data()x1,y1=training_datax2,y2=test_datalogreg=linear_model.LogisticRegress

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論