原理
從圖中可以看出與perceptron的異同:
logistic regression model:
perceptron:
簡單地說把Sigmoid function用作activation function。
Advantages:
1. Sigmoid function的收斂性更好
2. 邏輯迴歸是用通過計算一件事情發生的概率來預測事件是否發生
cost function
具體公式推導參見:鏈接
爲什麼cost function不再用平方差,而是用對數損失函數?這個問題我糾結了好久,最終在這裏
看到一句話
“而在已知模型和一定樣本的情況下,估計模型的參數,在統計學中常用的是極大似然估計方法”
所以說,選擇的cost function與模型是有一定關係的。我們的log-likelihood function是極大似然函數的對數,我們要取對數?
1. 好求導
2. 防止numerical underflow發生(就是超出編譯器裏數值表示範圍)
log-likelihood function
我們的目標是,爲了Maximum 對數損失函數,找到最優的
然而我們實際常用的是cost function是:
Min(-對數損失函數)+
其中
測試
>>> from sklearn.linear_model import LogisticRegression
>>> lr = LogisticRegression(C=1000.0, random_state=0)
>>> lr.fit(X_train_std, y_train)
>>> plot_decision_regions(X_combined_std,
... y_combined, classifier=lr,
... test_idx=range(105,150))
>>> plt.xlabel('petal length [standardized]')
>>> plt.ylabel('petal width [standardized]')
>>> plt.legend(loc='upper left')
>>> plt.show()
其中
>>> lr = LogisticRegression(C=1000.0, random_state=0)
裏面的
線性迴歸、邏輯迴歸、一般迴歸
http://blog.csdn.net/viewcode/article/details/8794401
線性迴歸:以 高斯分佈 爲誤差分析模型
邏輯迴歸:以 伯努力分佈 爲誤差分析模型
邏輯迴歸的模型 是一個非線性模型,sigmoid函數,又稱邏輯迴歸函數。但是它本質上又是一個線性迴歸模型,因爲除去sigmoid映射函數關係,其他的步驟,算法都是線性迴歸的。可以說,邏輯迴歸,都是以線性迴歸爲理論支持的。
只不過,線性模型,無法做到sigmoid的非線性形式,sigmoid可以輕鬆處理0/1分類問題。一般迴歸:以 指數分佈 爲誤差分析模型
高斯分佈、伯努力分佈 屬於 指數分佈。softmax迴歸就是 一般線性迴歸的一個例子。有監督學習迴歸,針對多類問題(邏輯迴歸,解決的是二類劃分問題),如數字字符的分類問題,0-9,10個數字,y值有10個可能性。