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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sklearn分类器算法:逻辑回归及案例分析

發布時間:2024/7/5 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sklearn分类器算法:逻辑回归及案例分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分類算法之邏輯回歸

邏輯回歸(Logistic Regression),簡稱LR。它的特點是能夠是我們的特征輸入集合轉化為0和1這兩類的概率。一般來說,回歸不用在分類問題上,因為回歸是連續型模型,而且受噪聲影響比較大。如果非要應用進入,可以使用邏輯回歸。了解過線性回歸之后再來看邏輯回歸可以更好的理解。

優點:計算代價不高,易于理解和實現

缺點:容易欠擬合,分類精度不高

適用數據:數值型和標稱型

邏輯回歸

對于回歸問題后面會介紹,Logistic回歸本質上是線性回歸,只是在特征到結果的映射中加入了一層函數映射,即先把特征線性求和,然后使用函數g(z)將最為假設函數來預測。g(z)可以將連續值映射到0和1上。Logistic回歸用來分類0/1問題,也就是預測結果屬于0或者1的二值分類問題

映射函數為:

$$g\left({z}\right){=}\frac{1}{1+e^-z}$$

其中$$z{=}\theta{0}+\theta{1}{x{1}}+\theta{2}{x_{2}}{+...}$$

映射出來的效果如下如:

sklearn.linear_model.LogisticRegression

邏輯回歸類

class sklearn.linear_model.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)""":param C: float,默認值:1.0:param penalty: 特征選擇的方式:param tol: 公差停止標準"""

from sklearn.model_selection import train_test_split from sklearn.datasets import load_digits from sklearn.linear_model import LogisticRegression LR = LogisticRegression(C=1.0, penalty='l1', tol=0.01) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) LR.fit(X_train,y_train) LR.predict(X_test) LR.score(X_test,y_test) 0.96464646464646464 # c=100.0 0.96801346801346799

屬性

coef_

決策功能的特征系數

Cs_

數組C,即用于交叉驗證的正則化參數值的倒數

特點分析

線性分類器可以說是最為基本和常用的機器學習模型。盡管其受限于數據特征與分類目標之間的線性假設,我們仍然可以在科學研究與工程實踐中把線性分類器的表現性能作為基準。

邏輯回歸算法案例分析

良/惡性乳腺癌腫瘤預測

原始數據的下載地址為:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

數據預處理

import pandas as pd import numpy as np# 根據官方數據構建類別 column_names = ['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('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/',names = column_names)# 將?替換成標準缺失值表示 data = data.replace(to_replace='?',value = np.nan)# 丟棄帶有缺失值的數據(只要一個維度有缺失) data = data.dropna(how='any')data.shape

處理的缺失值后的樣本共有683條,特征包括細胞厚度、細胞大小、形狀等九個維度

準備訓練測試數據

from sklearn.cross_validation import train_test_splitX_train,X_test,y_train,y_test = train_test_split(data[column_names[1:10]],data[column_names[10]],test_size=0.25,random_state=42)# 查看訓練和測試樣本的數量和類別分布 y_train.value_counts()y_test.value_counts()

使用邏輯回歸進行良/惡性腫瘤預測任務

from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression# 標準化數據,保證每個維度的特征數據方差為1,均值為0。使得預測結果不會被某些維度過大的特征值而主導 ss = StandardScaler()X_train = ss.fit_transform(X_train) X_test = ss.transform(X_test)# 初始化 LogisticRegressionlr = LogisticRegression(C=1.0, penalty='l1', tol=0.01)# 跳用LogisticRegression中的fit函數/模塊來訓練模型參數 lr.fit(X_train,y_train)lr_y_predict = lr.predict(X_test)

性能分析

from sklearn.metrics import classification_report# 利用邏輯斯蒂回歸自帶的評分函數score獲得模型在測試集上的準確定結果 print '精確率為:',lr.score(X_test,y_test)print classification_report(y_test,lr_y_predict,target_names = ['Benign','Maligant'])

總結

以上是生活随笔為你收集整理的sklearn分类器算法:逻辑回归及案例分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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