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