邏輯回歸(logistic regression),簡稱lr。它的特點是能夠使我們的特徵輸入集合轉化為0和1這兩類的概率。一般來說,回歸不用在分類問題上,因為回歸是連續型模型,而且受雜訊影響比較大。如果非要應用進了;來,可以使用邏輯回歸。了解過線性回歸之後再來看邏輯回歸可以更好的理解。
logistic回歸本質上是線性回歸,只是在特徵到結果的對映中加入了一層函式對映,即先把特徵線性求和,然後使用函式g(z)將作為假設函式來**。g(z)可以將連續值對映到0和1上。logistic回歸用來分類0/1問題,也就是**結果屬於0或者1的二值分類問題。
對映函式為:
對映出來的效果如下如:
輸出:[0,1]區間的概率值,預設0.5作為閥值
注:g(z)為sigmoid函式
與線性回歸原理相同,但由於是分類問題,損失函式不一樣,只能通過梯度下降求解。
對數似然損失函式:
完整的損失函式:
cost損失的值越小,那麼**的類別準確度更高
當y=1時:
y=0時:
sklearn.linear_model.logisticregression(penalty=『l2』, c = 1.0)
column = ['sample code number', 'clump thickness', 'uniformity of cell size', 'uniformity of cell shape',
'marginal adhesion', 'single epithelial cell size', 'bare nuclei', 'bland chromatin', 'normal nucleoli',
'mitoses', 'class']
# 讀取資料
data = pd.read_csv(
"",names=column)
# print(data)
# 缺失值進行處理
data.replace(to_replace="?", value=np.nan, inplace=true)
data.dropna(inplace=true)
# 資料集劃分
x_train, x_test, y_train, y_test = train_test_split(data[column[1:10]], data[column[10]])
# 標準化處理
std = standardscaler()
x_train = std.fit_transform(x_train)
x_test = std.transform(x_test)
# 邏輯回歸**
lg = logisticregression(c=1.0)
lg.fit(x_train, y_train)
print(lg.coef_)
y_predict = lg.predict(x_test)
print("準確率:", lg.score(x_test, y_test))
print("精準率和召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "惡性"]))
優點:適合需要得到乙個分類概率的場景
缺點:當特徵空間很大時,邏輯回歸的效能不是很好(看硬體能力)
機器學習筆記 分類演算法與回歸演算法的區別
回歸問題和分類問題的本質一樣,都是針對乙個輸入做出乙個輸出 其區別在於輸出變數的型別。分類問題是指,給定乙個新的模式,根據訓練集推斷它所對應的類別 如 1,1 是一種定性輸出,也叫離散變數 回歸問題是指,給定乙個新的模式,根據訓練集推斷它所對應的輸出值 實數 是多少,是一種定量輸出,也叫連續變數 舉...
邏輯回歸(分類演算法)
在前面講述的回歸模型中,處理的因變數都是數值型區間變數,建立的模型描述是因變數的期望與自變數之間的線性關係。比如常見的線性回歸模型 而在採用回歸模型分析實際問題中,所研究的變數往往不全是區間變數而是順序變數或屬性變數,比如二項分布問題。通過分析年齡 性別 體質指數 平均血壓 疾病指數等指標,判斷乙個...
機器學習 分類演算法 邏輯回歸13
邏輯回歸在演算法實現的時候有個判定是某個類別的概率,我們一般是根據樣本數量的大小去判定。邏輯回歸做二分類進行癌症 根據細胞的屬性特徵 return 構造列標籤名字 column sample code number clump thickness uniformity of cell size un...