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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【scikit-learn基础】--『监督学习』之 逻辑回归分类

發(fā)布時間:2024/1/5 windows 36 coder
生活随笔 收集整理的這篇文章主要介紹了 【scikit-learn基础】--『监督学习』之 逻辑回归分类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

邏輯回歸這個算法的名稱有一定的誤導(dǎo)性。
雖然它的名稱中有“回歸”,當(dāng)它在機(jī)器學(xué)習(xí)中不是回歸算法,而是分類算法。
因?yàn)椴捎昧伺c回歸類似的思想來解決分類問題,所以它的名稱才會是邏輯回歸

邏輯回歸的思想可以追溯到19世紀(jì),由英國統(tǒng)計學(xué)家Francis Galton在研究豌豆遺傳問題時首次提出。
然而,真正將邏輯回歸應(yīng)用于機(jī)器學(xué)習(xí)的是加拿大統(tǒng)計學(xué)家Hugh Everett,他在1970年代提出了廣義線性模型(GLM),其中包括邏輯回歸

邏輯回歸廣泛應(yīng)用于各種分類問題,如垃圾郵件識別、疾病預(yù)測、市場細(xì)分等。

1. 算法概述

邏輯回歸通過構(gòu)建一個邏輯模型來預(yù)測分類結(jié)果。
它首先對特征進(jìn)行線性回歸,
\(y=w_0 x_0+w_1 x_1+w_2 x_2+w_3 x_3...+w_n x_n=w^Tx\)

然后通過一個sigmoid函數(shù)\(y=\frac{1}{1+e^{-x}}\))將線性回歸的結(jié)果轉(zhuǎn)化為概率值,
sigmoid函數(shù)的輸出范圍是0到1

最后得到邏輯回歸的公式:\(h_{w}(x)=\frac{1}{1+e^{-y}}=\frac{1}{1+e^{-w^Tx}}\)

2. 創(chuàng)建樣本數(shù)據(jù)

這次用scikit-learn中的樣本生成器make_moons來生成二分類用的樣本數(shù)據(jù)。

from sklearn.datasets import make_moons

fig, ax = plt.subplots(1, 1)
X, y = make_moons(noise=0.05, n_samples=1000)
ax.scatter(X[:, 0], X[:, 1], marker="o", c=y, s=25)

plt.show()


關(guān)于用make_moons生成樣本數(shù)據(jù)的介紹,請參考:TODO

3. 模型訓(xùn)練

首先,分割訓(xùn)練集測試集

from sklearn.model_selection import train_test_split

# 分割訓(xùn)練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

這次按照8:2的比例來劃分訓(xùn)練集和測試集。

然后用scikit-learn中的LogisticRegression模型來訓(xùn)練:

from sklearn.neighbors import LogisticRegression

# 定義邏輯回歸模型
reg = LogisticRegression()

# 訓(xùn)練模型
reg.fit(X_train, y_train)

# 在測試集上進(jìn)行預(yù)測
y_pred = reg.predict(X_test)

LogisticRegression的主要參數(shù)包括:

  1. penalty:廣義線性模型的正則項(xiàng),可選值包括L1正則項(xiàng)'l1'、L2正則項(xiàng)'l2'、復(fù)合正則'elasticnet'和無正則項(xiàng)None,默認(rèn)值為'l2'。
  2. dual:是否為對偶問題。默認(rèn)為False。
  3. tol:容忍度。默認(rèn)值為0.0001。
  4. C:懲罰系數(shù)。默認(rèn)值為1.0。
  5. fit_intercept:是否擬合截距。默認(rèn)為True。
  6. intercept_scaling:截距的縮放因子。默認(rèn)值為1。
  7. class_weight:樣本權(quán)重,用于實(shí)現(xiàn)數(shù)據(jù)的不同分類重要性的懲罰。默認(rèn)為None。
  8. random_state:隨機(jī)種子。默認(rèn)為None。
  9. solver:優(yōu)化算法。默認(rèn)為'warn',可選項(xiàng)有'lbfgs'、'sag'、'saga'、'newton-cg'、'sag-l2'、'saga-l2'、'lbfgs-l2'和'optimal'。
  10. max_iter:最大迭代次數(shù)。默認(rèn)為100。
  11. multi_class:多類別分類器。默認(rèn)為'warn',當(dāng)n_classes>2時,默認(rèn)為True,否則默認(rèn)為False。
  12. n_jobs:線程數(shù)。默認(rèn)為None,表示使用CPU的核數(shù)。

最后驗(yàn)證模型的訓(xùn)練效果:

# 比較測試集中有多少個分類預(yù)測正確
correct_pred = np.sum(y_pred == y_test)

print("預(yù)測正確率:{}%".format(correct_pred/len(y_pred)*100))

# 運(yùn)行結(jié)果
預(yù)測正確率:89.0%

準(zhǔn)確率還可以,可以調(diào)節(jié)生成樣本數(shù)據(jù)的make_moons方法的noise參數(shù),
看看在不同混亂程度的樣本數(shù)據(jù)下,邏輯回歸的準(zhǔn)確性是否健壯。

4. 總結(jié)

邏輯回歸在很多領(lǐng)域都有廣泛的應(yīng)用,如自然語言處理、圖像識別、醫(yī)療診斷、信用評分等。
它尤其適用于那些樣本特征之間存在線性關(guān)系,且目標(biāo)變量為二元的情況。

邏輯回歸算法主要優(yōu)勢在于::

  1. 實(shí)現(xiàn)簡單:易于理解和實(shí)現(xiàn),可以在短時間內(nèi)訓(xùn)練出模型。
  2. 計算效率高:在訓(xùn)練和預(yù)測時具有較高的計算效率,可以處理大規(guī)模的數(shù)據(jù)集。
  3. 可解釋性強(qiáng):可以給出概率輸出,這使得它更容易解釋和信任。

不過,邏輯回歸也有其不足之處:

  1. 對數(shù)據(jù)質(zhì)量和特征選擇敏感:如果數(shù)據(jù)中存在噪音或者特征選擇不當(dāng),可能會出現(xiàn)過擬合或者欠擬合的情況。
  2. 只能處理二分類問題:如果要處理多分類問題的話,需要把多分類問題轉(zhuǎn)為多個二分類問題。
  3. 對異常值和缺失值敏感:處理不當(dāng)可能會影響模型的性能。

總結(jié)

以上是生活随笔為你收集整理的【scikit-learn基础】--『监督学习』之 逻辑回归分类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。