邏輯回歸的應用

?一·參數

邏輯回歸參數及多分類策略等完整解析

  1. LogisticRegression 初始參數聲明
    LogisticRegression(penalty='l2', dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='liblinear', max_iter=100, multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)

  2. 核心參數與概念詳細說明

    • Penalty:正則化方式,含 L1、L2 ;newton - cg、sag、lbfgs 僅支持 L2 ,L1 假設參數服從拉普拉斯分布,L2 假設服從高斯分布,加約束理論增強泛化能力防過擬合 。
    • Dual:對偶方法,用于線性多核(liblinear)的 L2 懲罰項;樣本數>特征數時,通常設 False 。
    • Tol:迭代停止精度(容許停止標準 ),float 型,默認 1e - 4 。
    • C:正則化強度,為正則化系數 λ 的倒數,數值越小正則化越強(類 SVM ),默認 1.0 (正浮點型數 )。
    • fit_intercept:控制是否加截距項到決策函數,默認 True(加截距項 b )。
    • intercept_scaling:僅正則化項為 “liblinear” 且 fit_intercept=True 時生效,float 型,默認 1 。
    • class_weight:分類權重設置,支持字典、'balanced' ;默認 None(不考慮權重 ),樣本失衡時可用,“balanced” 按樣本量算權重(樣本多則權重低 ),也可自定義(如 {0:0.9,1:0.1} ),解決誤分類代價高、樣本失衡問題 。
    • random_state:偽隨機數種子,用于數據洗牌,僅 sag、liblinear 正則化算法生效 。
    • Solver:優化算法,可選 {‘newton - cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’} ,默認 liblinear :
      • liblinear:坐標軸下降法,適小數據集;多分類用 OvR 策略,僅支持 L2 正則化(newton - cg、sag、lbfgs 同 ),saga 支持 L1/L2 ;
      • newton - cg:牛頓法,二階泰勒展開減迭代輪數,需算 Hessian 矩陣逆(復雜度高 );
      • lbfgs:擬牛頓法,近似 Hessian 矩陣逆,解決牛頓法求逆難題;
      • Sag:隨機平均梯度下降,一階優化,用部分樣本算梯度,適大數據集(>10 萬 ),不支持 L1 ;
      • Saga:線性收斂隨機優化算法變種,通吃 L1/L2 。
    • max_iter:算法最大迭代次數,int 型,默認 100 ;僅 newton - cg、sag、lbfgs 正則化算法生效 。
    • multi_class:分類策略,可選 ovr(one - vs - rest )、multinomial(many - vs - many ),默認 ovr :
      • OvR:多元轉二元處理,第 K 類樣本為正例,其余為負例做二元回歸,遍歷類別構建模型;相對簡單,分類效果略差(部分場景有優勢 );選 ovr 時,liblinear、newton - cg、lbfgs、sag 4 種優化算法都可用 。
      • MvM:以 OvO(one - vs - one )為例,T 類樣本需選兩類(T1、T2 ),T1 正例、T2 負例做二元回歸,共需 T (T - 1)/2 次分類;分類精確但速度慢;選 multinomial 時,僅 newton - cg、lbfgs、sag 優化算法可用 。
    • verbose:日志冗長度,int 型,默認 0(不輸出訓練過程 );1 偶爾輸出結果,>1 則每個子模型都輸出 。
    • warm_start:熱啟動參數,bool 型,默認 False ;為 True 時,下次訓練以追加樹形式(用上一次調用初始化 )。
    • n_jobs:并行數,int 型,默認 1(用 CPU 1 個內核 );2 則用 2 個內核,-1 用所有 CPU 內核 。
  3. 多分類策略與算法關聯補充
    OvR 相對簡單但效果略差(部分樣本分布場景有優勢 ),MvM 分類精確但速度慢;選 ovr 時,4 種優化算法(liblinear、newton - cg、lbfgs、sag )均可搭配;選 multinomial 時,僅 newton - cg、lbfgs、sag 可用 。

二·代碼

import numpy as np
# numpy是專門用于處理矩陣數據# 讀取數據集
data = np.loadtxt('datingTestSet2.txt')# 數據預處理(按需啟用,若不需要篩選可注釋)
# data_1 = data[data[:, -1] == 1]  # 找出類別為1的數據
# data_2 = data[data[:, -1] == 2]  # 找出類別為2的數據
# data_3 = data[data[:, -1] == 3]  # 找出類別為3的數據
# data_new = np.concatenate((data_1, data_2), axis=0)  # 拼接類別1和2的數據
# X = data_new[:, :-1]  # 獲取特征(不含最后一列標簽)
# y = data_new[:, -1]   # 獲取標簽(最后一列)# 若無需篩選類別,直接用全部數據做特征和標簽拆分
X = data[:, :-1]  # 獲取所有數據的特征(不含最后一列標簽)
y = data[:, -1]   # 獲取所有數據的標簽(最后一列)"""建立模型"""
from sklearn.model_selection import train_test_split
# 專門用來對數據集進行切分的函數# 拆分數據集為訓練集和測試集
x_train_w, x_test_w, y_train_w, y_test_w = train_test_split(X, y, test_size=0.3, random_state=1000
)from sklearn.linear_model import LogisticRegression
# 邏輯回歸的類,所有的算法都封裝再這個類# 創建邏輯回歸模型實例
lr = LogisticRegression(C=0.01)
# 訓練模型(用訓練集特征和標簽)
lr.fit(x_train_w, y_train_w)# 測試集預測
test_predicted = lr.predict(x_test_w)
# 計算模型在測試集上的準確率
result = lr.score(x_test_w, y_test_w)
print("模型在測試集上的準確率:", result)

抽取30%測試集剩下的70%是訓練集

x_train_w, x_test_w, y_train_w, y_test_w = train_test_split

?訓練級的 x。測試機 x 訓練機的 y,測試機的 y

lr中的coef

建立三條數據線,三條方程

三·關于銀行的案例下篇文章會講

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as plt
from pylab import mpl
from sklearn import metricsdata = pd.read_csv(r"./creditcard.csv")scaler = StandardScaler()
data['Amount'] = scaler.fit_transform(data[['Amount']])
data = data.drop(['Time'], axis=1)X_whole = data.drop('Class', axis=1)
y_whole = data['Class']
x_train_w, x_test_w, y_train_w, y_test_w = train_test_split(X_whole, y_whole, test_size=0.3, random_state=1000
)lr = LogisticRegression(C=0.01)
lr.fit(x_train_w, y_train_w)
test_predicted = lr.predict(x_test_w)
result = lr.score(x_test_w, y_test_w)print(metrics.classification_report(y_test_w, test_predicted))mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei']
mpl.rcParams['axes.unicode_minus'] = False
labels_count = pd.value_counts(data['Class'])
labels_count.plot(kind='bar')
plt.title("正負例樣本數")
plt.xlabel("類別")
plt.ylabel("頻數")
plt.show()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94120.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94120.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94120.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言(長期更新)第7講:VS實用調試技巧

C語言(長期更新) 第7講 VS實用調試技巧 跟著潼心走,輕松拿捏C語言,困惑通通走,一去不回頭~歡迎開始今天的學習內容,你的支持就是博主最大的動力。 目錄 C語言(長期更新) 第7講 …

CONTRASTIVE-KAN:一種用于稀缺標記數據的網絡安全半監督入侵檢測框架

研究背景與挑戰? ?工業環境需求?: 第四次工業革命中,物聯網(IoT)和工業物聯網(IIoT)的普及使網絡安全成為關鍵挑戰。 入侵檢測系統需實時性高,尤其對關鍵基礎設施(如燃氣管道)的快速攻擊檢測至關重要。 ?核心問題?: ?標簽數據稀缺?:工業系統多數時間處于正常…

綜合:單臂路由+三層交換技術+telnet配置+DHCP

技術考核1 實驗拓撲:實驗需求 1.按照圖示配置IP地址設備名 2.在SW1和SW2之間配置鏈路聚合增加鏈路帶寬,提高可靠性 3.PC5和PC6屬于VLAN10, PC7和PC8屬于VLAN20 4.SW1和SW2屬于二層交換機,SW3為三層交換機(VLAN100用于對…

工業火焰識別漏報率↓78%!陌訊多模態融合算法實戰解析

原創聲明:本文技術方案解析基于陌訊技術白皮書2025版 標簽:#陌訊視覺算法 #火焰識別優化 #工業安全監控 #邊緣計算優化一、行業痛點:工業火災監控的漏檢危機據《2025工業安全白皮書》統計,化工場景傳統火焰識別系統漏報率高達35%&…

C++引用:高效安全的別名機制詳解

目錄 一、引用的概念 二、引用的特性 1、定義時必須初始化 2、一個變量可以有多個引用 3、引用一旦綁定實體就不能更改 三、const引用(常引用) 1、const引用的基本特性 2、臨時對象與const引用 3、臨時對象的特性 4、const 引用作為函數形參 …

大語言模型API付費?

下面是目前主流 大語言模型 API 的付費情況總覽: 🧠 一、主要大語言模型 API:是否付費對比 提供方模型是否免費限制 / 說明OpenAIGPT-3.5 / GPT-4 / GPT-4o? 付費為主有免費額度(如 ChatGPT 免費版),API …

巧用Wisdom SSH:容器化運維與傳統運維的抉擇

巧用Wisdom SSH:容器化運維與傳統運維的抉擇 在當下的技術領域,容器化運維與傳統運維是運維人員面臨的兩大主要方向,對于從業者來說,如何抉擇至關重要,而Wisdom SSH在其中能發揮顯著作用。 傳統運維:基石…

API征服者:Python抓取星鏈衛星實時軌跡

API征服者:Python抓取星鏈衛星實時軌跡從基礎調用到工業級衛星追蹤系統實戰指南一、太空數據時代:星鏈衛星的全球覆蓋??星鏈衛星網絡規模??:已發射衛星數量:4,000目標衛星總數:42,000軌道高度:340km - …

《深潛React列表渲染:調和算法與虛擬DOM Diff的優化深解》

當用戶在內容平臺無限滑動,或是在管理系統中處理成百上千條數據時,每一次無卡頓的交互,都是調和算法與虛擬DOM Diff機制協同工作的成果。理解這兩者的底層邏輯,不僅是性能優化的鑰匙,更是從“使用框架”到“理解框架”…

自動化與配置管理工具 ——Ansible

一、Ansible 概述1.1 核心特性Ansible 是一款開源的自動化運維工具,采用無代理(Agentless)架構,通過 SSH 協議實現對遠程節點的管理。其核心特性包括:無代理架構:被管理節點無需安裝代理軟件,降…

Effective C++ 條款18:讓接口容易被正確使用,不易被誤用

Effective C 條款18:讓接口容易被正確使用,不易被誤用核心思想:設計接口時,應使正確使用方式直觀自然,同時通過類型系統、行為約束等手段主動預防常見錯誤,減少用戶犯錯的可能性。 ?? 1. 接口誤用的常見陷…

nodejs讀寫文件

1.讀文件 node有很多模塊,可在node模塊查看相應模塊; var fsrequire(fs)fs.readFile(./src/a.doc,utf8,function(err,data){// 如果發生錯誤,data是undefined 如果成功 err為null console.log(err); console.log(data); }) 2.寫文件 var…

ConcurrentHashMapRedis實現二級緩存

1. 為什么使用ConcurrentHashMap?在Java中,ConcurrentHashMap 是一個線程安全且高效的哈希表實現,廣泛用于高并發場景。將其用作一級緩存的原因主要包括以下幾點:1.1. 線程安全性ConcurrentHashMap 是線程安全的,支持多…

Mysql集群技術

實驗在RHEL7中做,因為9中缺少了一個關鍵的高可用組件環境:兩臺數據庫,內存和CPU要多一點主流是MYSQL(開源),Oracle收費較貴RHEL7中直接用make編譯是有問題的,所以需要要gcc工具做好前置準備&…

自動駕駛嵌入式軟件工程師面試題【持續更新】

文章目錄前言請描述 CAN 幀的基本結構(包括標識符、數據字段、CRC 等)描述 WebSocket 協議的基本工作流程(包括握手、數據幀結構)請說明如何實現 WebSocket 連接的心跳機制以檢測連接狀態,并描述在斷開后如何通過重連策…

vue(5)-組件

一.組件三大組成部分(結構/樣式/邏輯)(1)組件樣式沖突用scoped全局樣式在組件中起全局作用,局部樣式可以加scoped屬性來只作用于當前組件圖中只給baseone加這個樣式,就在baseone中style加scoped&#xff08…

【機器學習】兩大線性分類算法:邏輯回歸與線性判別分析:找到分界線的藝術

文章目錄一、核心概念:數據分類的"切分線"二、工作原理:從"找分界線"理解二、常見算法1、邏輯回歸:二分類2、線性判別分析(LDA):分類與降維3、兩種算法對比分析三、實際應用&#xff1…

靜態分析c/cpp源碼函數調用關系圖生成

calltree calltree 不好使用 Dpxygen https://www.doxygen.nl/download.html Graphviz https://graphviz.org/download/ 靜態代碼調用結構圖分析、構建、生成 doxygen doxygen在win和linux上均可運行,可以自動分析源碼,對c語言項目友好,預處…

使用 MySQL Shell 進行 MySQL 單機到 InnoDB Cluster 的數據遷移實踐

遷移背景與環境原來都是用mysqldump,DTS或者cdc遷移,這次8.0用了下新工具感覺挺好用的,簡單快捷,30G數據不到源環境:單機 MySQL 8.0,地址為 172.23.3.28目標環境:InnoDB Cluster 集群&#xff0…

淘寶商品API可以獲取哪些商品詳情數據?

商品詳情頁商品全部sku信息"skus": {"sku": [{"price": 45.6,"total_price": 0,"orginal_price": 45.6,"properties": "1627207:39617249736","properties_name": "1627207:39617249736…