python 邏輯回歸準確率是1 邏輯回歸例項

2021-10-14 12:14:32 字數 3901 閱讀 4966

logistic回歸分析也用於研究影響關係,即x對於y的影響情況。y為定量資料,x可以是定量資料或定類資料。

logistic回歸和線性回歸最大的區別在於y的資料型別。線性回歸分析的因變數y屬於定量資料,而logistic回歸分析的因變數y屬於分類資料。

邏輯回歸的公式如下:

邏輯函式影象如下:

可以看到,邏輯回歸函式是乙個s形的曲線,取值在[0,1]之間,在遠離0的地方函式的值會很快接近0或者1。通常可以選擇0.5作為閾值,劃定乙個決策面,當y>=0.5時,確定標籤為1,當y<0.5時,確定標籤為0。

如果輸入的資料是乙個

維空間特徵,考慮乙個

分類問題,那麼分類器將會把這個

維空間的特徵點分為

個區域。每個區域顯然就屬於乙個類別,如果輸入乙個點

落在第

個區域,那麼就屬於第

類。分割成這些區域的邊界就稱為

決策面

例項:學習時間和通過考試有什麼樣的關係?1.提出問題已知一部分學生的學習時間和通過考試的情況,**另一部分學生的通過考試的情況。其中,特徵為學習時間,標籤為通過考試。

2.理解資料

將資料集匯入python

#ordereddict,實現了對字典物件中元素的排序。

from collections import ordereddict

import pandas as pd

#資料集

examdict=

}examorderdict=ordereddict(examdict)

examdf=pd.dataframe(examorderdict)

#檢視資料集前5行

#提取特徵和標籤

#特徵features

exam_x=examdf.loc[:,'學習時間']

#標籤labes

exam_y=examdf.loc[:,'通過考試']

#繪製散點圖

import matplotlib.pyplot as plt

#散點圖

plt.scatter(exam_x, exam_y, color="b", label="exam data")

#新增圖示標籤

plt.xlabel("hours")

plt.ylabel("pass")

#顯示影象

3.構建模型

(1) 提取特徵和標籤

#特徵features

exam_x=examdf.loc[:,'學習時間']

#標籤labes

exam_y=examdf.loc[:,'通過考試']

(2) 建立訓練資料和測試資料

from sklearn.model_selection import train_test_split

#建立訓練資料和測試資料

x_train , x_test , y_train , y_test = train_test_split(exam_x,exam_y,train_size=0.8)

#輸出資料大小

print('原始資料特徵:',exam_x.shape,'訓練資料特徵:',x_train.shape,',測試資料特徵:',x_test.shape)

print('原始資料標籤:',exam_y.shape,'訓練資料標籤:',y_train.shape ,'測試資料標籤:',y_test.shape)

#散點圖

(3) 訓練模型(使用訓練資料)

#將訓練資料特徵轉換成二維陣列xx行*1列

x_train=x_train.values.reshape(-1,1)

#將測試資料特徵轉換成二維陣列行數*1列

x_test=x_test.values.reshape(-1,1)

''' reshape(-1,列數)是根據所給的列數,自動按照原始陣列的大小形成乙個新的陣列,

例如reshape(-1,1)就是改變成1列的陣列,這個陣列的長度是根據原始陣列的大小來自動形成的。

reshape(行數,-1)是根據所給的行數,自動按照原始陣列的大小形成乙個新的陣列。'''

#第1步:匯入邏輯回歸

from sklearn.linear_model import logisticregression

#第2步:建立模型:邏輯回歸

model = logisticregression()

#第3步:訓練模型

(4) 模型評估(使用測試資料)

與線性回歸不同,邏輯回歸利用準確率來評估模型。利用score方法,通過輸入測試資料,利用剛才的邏輯回歸模型,計算出**結果。

#評估模型:準確率

model.score(x_test , y_test)

得到 。

#獲取概率值:使用predict_proba方法獲取通過考試的概率 

#第1個值是標籤為0(不通過考試)的概率值,第2個值是標籤為1(通過考試)的概率值

model.predict_proba([[3]])#計算學習時間3小時通過考試的概率

#**資料:使用模型的predict方法可以進行**。這裡我們輸入學生的特徵學習時間3小時,模型返回結果標籤是1,就代表**該學生通過考試。

pred=model.predict([[3]])#學習時間3小時通過的概率為60.03%,概率大於0.5,因此**該學生通過考試,模型應返回結果標籤1。

print(pred)

'''

理解邏輯回歸函式

斜率slope

截距intercept

'''#第1步:得到回歸方程的z值

#回歸方程:z= + x

#截距a=model.intercept_

#回歸係數

b=model.coef_

#第2步:將z值帶入邏輯回歸函式中,得到概率值

x=3z=a+b*x

y_pred=1/(1+np.exp(-z))

print('**的概率值:',y_pred)

**的概率值為0.74885523。

隨筆1 準確率函式

計算精度 函式原型 sklearn.metrics.precision score y true,y pred,labels none,pos label 1,erage binary sample weight none 函式注釋 精度precision tp tp fp 其中tp是真正例,fp是...

1的準確率 庫存準確率總是100 正常嗎?

前幾期講了不少關於盤點的方法 流程和技巧,本期來談談盤點的結果吧。盤點是一項並不輕鬆的工作,更是一門重要的管理,不能因為要盤點而去盤點,而是為了提公升存貨狀況的透明度,健全內部控制作業。用指標來衡量的話,最重要的kpi就是庫存準確率。關於庫存準確率的計算,存在不同的公式,首先要了解的概念是庫存差異數...

準確率 精確率 召回率 F1值

1.tp tn fp fn 圓的部分認定為檢測後是陽性的,其餘部分為檢測為陰性的 但是現在的情況是檢測並不完全準確,有可能檢測時陰性,但實際上已經有新冠,只是無症狀 現在只看園內,園的左半綠色部分意思是 實際上這個人是新冠患者 右辦粉色部分則為實際並不是新冠患者 那麼圓內綠色部分則為 真陽 對應 正...