學習筆記 分類演算法 邏輯回歸

2022-07-06 16:54:13 字數 2027 閱讀 6529

邏輯回歸(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...