日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习算法学习---处理分类问题常用算法(一)

發布時間:2025/7/25 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习算法学习---处理分类问题常用算法(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
logistic回歸是一種廣義線性回歸(generalized linear model),因此與多重線性回歸分析有很多相同之處。它們的模型形式基本上相同,都具有 w‘x+b,其中w和b是待求參數,其區別在于他們的因變量不同,多重線性回歸直接將w‘x+b作為因變量,即y =w‘x+b,而logistic回歸則通過函數L將w‘x+b對應一個隱狀態p,p =L(w‘x+b),然后根據p與1-p的大小決定因變量的值。如果L是logistic函數,就是logistic回歸,如果L是多項式函數就是多項式回歸。logistic回歸的因變量可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋,多類可以使用softmax方法進行處理。實際中最為常用的就是二分類的logistic回歸。

優點:計算代價不高,易于理解和實現。

缺點:容易欠擬合,分類精度可能不高。

適用類型:數值型、標稱型。

Logistic回歸模型的適用條件 1 因變量為二分類的分類變量或某事件的發生率,并且是數值型變量。但是需要注意,重復計數現象指標不適用于Logistic回歸。 2 殘差和因變量都要服從二項分布。二項分布對應的是分類變量,所以不是正態分布,進而不是用最小二乘法,而是最大似然法來解決方程估計和檢驗問題。 3 自變量和Logistic概率是線性關系 4 各觀測對象間相互獨立。 原理:如果直接將線性回歸的模型扣到Logistic回歸中,會造成方程兩邊取值區間不同和普遍的非直線關系。因為Logistic中因變量為二分類變量,某個概率作為方程的因變量估計值取值范圍為0-1,但是,方程右邊取值范圍是無窮大或者無窮小。所以,才引入Logistic回歸。? Logistic回歸實質:發生概率除以沒有發生概率再取對數。就是這個不太繁瑣的變換改變了取值區間的矛盾和因變量自變量間的曲線關系。究其原因,是發生和未發生的概率成為了比值,這個比值就是一個緩沖,將取值范圍擴大,再進行對數變換,整個因變量改變。不僅如此,這種變換往往使得因變量和自變量之間呈線性關系,這是根據大量實踐而總結。所以Logistic回歸從根本上解決因變量要不是連續變量怎么辦的問題。還有,Logistic應用廣泛的原因是許多現實問題跟它的模型吻合。例如一件事情是否發生跟其他數值型自變量的關系。? 注意:如果自變量為字符型,就需要進行重新編碼。一般如果自變量有三個水平就非常難對付,所以,如果自變量有更多水平就太復雜。這里只討論自變量只有三個水平。非常麻煩,需要再設二個新變量。共有三個變量,第一個變量編碼1為高水平,其他水平為0。第二個變量編碼1為中間水平,0為其他水平。第三個變量,所有水平都為0。實在是麻煩,而且不容易理解。最好不要這樣做,也就是,最好自變量都為連續變量。 spss操作:進入Logistic回歸主對話框,通用操作不贅述。 發現沒有自變量這個說法,只有協變量,其實協變量就是自變量。旁邊的塊就是可以設置很多模型。 “方法”欄:這個根據詞語理解不容易明白,需要說明。 共有7種方法。但是都是有規律可尋的。 “向前”和“向后”:向前是事先用一步一步的方法篩選自變量,也就是先設立門檻。稱作“前”。而向后,是先把所有的自變量都進來,然后再篩選自變量。也就是先不設置門檻,等進來了再一個一個淘汰。 “LR”和“Wald”,LR指的是極大偏似然估計的似然比統計量概率值,有一點長。但是其中重要的詞語就是似然。 Wald指Wald統計量概率值。 “條件”指條件參數似然比統計量概率值。 “進入”就是所有自變量都進來,不進行任何篩選 將所有的關鍵詞組合在一起就是7種方法,分別是“進入”“向前LR”“向前Wald”"向后LR"“向后Wald”“向后條件”“向前條件” 下一步:一旦選定協變量,也就是自變量,“分類”按鈕就會被激活。其中,當選擇完分類協變量以后,“更改對比”選項組就會被激活。一共有7種更改對比的方法。 “指示符”和“偏差”,都是選擇最后一個和第一個個案作為對比標準,也就是這二種方法能夠激活“參考類別”欄。“指示符”是默認選項。“偏差”表示分類變量每個水平和總平均值進行對比,總平均值的上下界就是"最后一個"和"第一個"在“參考類別”的設置。 “簡單”也能激活“參考類別”設置。表示對分類變量各個水平和第一個水平或者最后一個水平的均值進行比較。 “差值”對分類變量各個水平都和前面的水平進行作差比較。第一個水平除外,因為不能作差。 “Helmert”跟“差值”正好相反。是每一個水平和后面水平進行作差比較。最后一個水平除外。仍然是因為不能做差。 “重復”表示對分類變量各個水平進行重復對比。 “多項式”對每一個水平按分類變量順序進行趨勢分析,常用的趨勢分析方法有線性,二次式。

二分類激活函數:

Sigmoid函數。

?

?σ(z)=1/(1+e^-z)

是一種類似階躍函數,當x=0,Sigmoid(x)=0.5,隨著x增大,值趨近1;隨著x減小,值趨近0。

基于最優化方法確定最佳回歸系數:

z=w0x0+w1x1+...+wnxn(z=W^TX),W即為我們要求得的最佳參數。

推導過程詳細可見:https://www.jianshu.com/p/93d9fea7f4c2

1、梯度上升/下降

?要找到某函數的最大/小值,最好的方法是沿著該函數的梯度方向探尋。

w:=w+α?f(w)

w:=w-α?f(w)

?

?利用梯度下降法的邏輯回歸python代碼實現如下:

?

Coding

?

?

import matplotlib.pyplot as pltfrom numpy import *def loadDataset():dataMat=[]labelMat=[]f=open('ex4x.txt')linesx=f.readlines()q=open('ex4y.txt')linesy=q.readlines()for i in range(len(linesx)):x=linesx[i].strip().split()y=linesy[i].strip()dataMat.append([1.0,float(x[0]),float(x[1])])labelMat.append(float(y))return dataMat,labelMatdef sigmoid(inX):return 1.0/(1+exp(-inX))def gradDescent(dataMatIn,classLabel):dataMatrix=mat(dataMatIn)labelMat=mat(classLabel).transpose()m,n=shape(dataMatrix)alpha=0.001maxCycles=500weights=ones((n,1))for k in range(maxCycles):h=sigmoid(dataMatrix*weights)error=(labelMat-h)weights=weights-alpha*dataMatrix.transpose()*errorprint(weights)return weightsdef plotBestFit(weights,dataMat,labelMat):weights=array(weights)dataArr=array(dataMat)n=shape(dataArr)[0]x1=[];y1=[]x2=[];y2=[]for i in range(n):if int(labelMat[i])==1:x1.append(dataArr[i,1]);y1.append(dataArr[i,2])else:x2.append(dataArr[i,1]);y2.append(dataArr[i,2])fig=plt.figure()ax=fig.add_subplot(111)ax.scatter(x1,y1,s=30,c='red',marker='s')ax.scatter(x2,y2,s=30,c='green')x=arange(-3.0,60.0,0.1)y=(-weights[0]-weights[1]*x)/weights[2]+80ax.plot(x,y)plt.xlabel('X1');plt.ylabel('X2')plt.show()data,label=loadDataset()weights=gradDescent(data,label)plotBestFit(weights,data,label)

?

2、隨機梯度上升/下降

數據量太大,一次僅用一個樣本點更新回歸系數。一次處理所有的數據被稱作是“批處理”。

處理數據中的缺失值:

1、使用可用特征的均值來填補缺失值;

2、使用特殊值來填補缺失值,如0/-1等;

3、忽略有缺失值的樣本;

4、使用相似樣本的均值填補缺失值;

5、使用另外的機器學習算法預測缺失值。

?

轉載于:https://www.cnblogs.com/zhenpengwang/p/10790393.html

總結

以上是生活随笔為你收集整理的机器学习算法学习---处理分类问题常用算法(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。