python 邏輯回歸分類 機器學習 邏輯回歸分類

2021-10-21 03:48:33 字數 2706 閱讀 1778

分類問題: 1) 本質:決策面(decision su***ce)2)評估分類演算法的指標,正確率=正確分類個數/總數

二分分類:邏輯回歸輸入:訓練資料的特徵和標籤--->>>模型:邏輯回歸---->>>輸出:分類結果

什麼是邏輯函式?

在0到1之間取值,邏輯回歸是因為引數是邏輯函式

邏輯的數值:表示分類結果是1是y的結果

決策面:大於等於0.5 或 小於0.5

3.python的邏輯回歸分類做法建立資料集

from collections import ordereddict

import pandas as pd

#資料集

examdict={

'學習時間':[0.50,0.75,1.00,1.25,1.50,1.75,1.75,2.00,2.25,2.50,

2.75,3.00,3.25,3.50,4.00,4.25,4.50,4.75,5.00,5.50],

'通過考試':[0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1]

examorderdict=ordereddict(examdict)

examdf=pd.dataframe(examorderdict)

examdf.head()from collections import ordereddict

import pandas as pd提取特徵和標籤

#特徵features

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

#標籤labels

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

#顯示影象

plt.show()

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

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=.8)

#輸出資料大小

print('原始資料特徵:',exam_x.shape ,

',訓練資料特徵:', x_train.shape ,

',測試資料特徵:',x_test.shape )

print('原始資料標籤:',exam_y.shape ,

'訓練資料標籤:', y_train.shape ,

'測試資料標籤:' ,y_test.shape)

output:

原始資料特徵: (20,) ,訓練資料特徵: (16,) ,測試資料特徵: (4,)

原始資料標籤: (20,) 訓練資料標籤: (16,) 測試資料標籤: (4,)

#繪製散點圖

import matplotlib.pyplot as plt

#散點圖

plt.scatter(x_train, y_train, color="blue",label="train data")

plt.scatter(x_test, y_test, color="red",label="test data")

#新增圖示標籤

plt.legend(loc=2)

plt.xlabel("hours")

plt.ylabel("pass")

#顯示影象

plt.show()評估模型(用測試資料)

#評估模型:準確率

model.score(x_test,y_test)

0.75邏輯函式

#獲取概率值

#第1個值是標籤為0的概率值,第2個值是標籤為1的概率值

model.predict_proba(4)

array([[0.27173471, 0.72826529]])

#**資料:使用模型的predict方法可以進行**。

我們輸入學生的特徵學習時間4小時,模型返回結果標籤是1,就代表**該學生未通過考試。

pred=model.predict([[4]])

print(pred)

[1]這個**值是如何得到的?運用邏輯回歸函式展示一下

import numpy as np

#第1步:得到回歸方程的z值(假設我們x=4,即4個小時)

#回歸方程:z= + x

#截距a=model.intercept_

#回歸係數

b=model.coef_

x=4z=a+b*x

#第2步:將z值帶入邏輯回歸函式中,得到概率值(**是1的概率)

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

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

**的概率值: [[0.72826529]]

與之前的**概率值是吻合的!

4.分類和回歸有什麼區別?

首先要有3種資料型別

1.數值資料(定量資料)--離散資料,連續資料

2.分類資料(定性資料)

3.時間序列資料

5. 總結

機器學習 邏輯回歸 Python實現邏輯回歸

coding utf 8 author 蔚藍的天空tom import numpy as np import os import matplotlib.pyplot as plt from sklearn.datasets import make blobs global variable path...

機器學習 邏輯回歸 多分類問題

from sklearn.linear model import logisticregression 1 penalty 使用指定正則化項 預設 l2 2 dual n samples n features取false 預設 3 c 正則化強度,值越小正則化強度越大 4 fit intercept...

機器學習 分類演算法 邏輯回歸13

邏輯回歸在演算法實現的時候有個判定是某個類別的概率,我們一般是根據樣本數量的大小去判定。邏輯回歸做二分類進行癌症 根據細胞的屬性特徵 return 構造列標籤名字 column sample code number clump thickness uniformity of cell size un...