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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

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

邏輯回歸這個算法的名稱有一定的誤導性。
雖然它的名稱中有“回歸”,當它在機器學習中不是回歸算法,而是分類算法。
因為采用了與回歸類似的思想來解決分類問題,所以它的名稱才會是邏輯回歸。

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

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

1. 算法概述

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

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

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

2. 創建樣本數據

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

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()


關于用make_moons生成樣本數據的介紹,請參考:TODO

3. 模型訓練

首先,分割訓練集測試集

from sklearn.model_selection import train_test_split

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

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

然后用scikit-learn中的LogisticRegression模型來訓練:

from sklearn.neighbors import LogisticRegression

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

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

# 在測試集上進行預測
y_pred = reg.predict(X_test)

LogisticRegression的主要參數包括:

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

最后驗證模型的訓練效果:

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

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

# 運行結果
預測正確率:89.0%

準確率還可以,可以調節生成樣本數據的make_moons方法的noise參數,
看看在不同混亂程度的樣本數據下,邏輯回歸的準確性是否健壯。

4. 總結

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

邏輯回歸算法主要優勢在于::

  1. 實現簡單:易于理解和實現,可以在短時間內訓練出模型。
  2. 計算效率高:在訓練和預測時具有較高的計算效率,可以處理大規模的數據集。
  3. 可解釋性強:可以給出概率輸出,這使得它更容易解釋和信任。

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

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

總結

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

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