機器學習 邏輯回歸sklearn實現

2021-09-25 00:19:09 字數 2179 閱讀 7866

**:

# encoding: utf-8

"""@author: suns

@contact: [email protected]

@time: 2019/7/1 3:22 pm

@file: logistic_regression_with_sklearn.py

@desc:

"""from sklearn.model_selection import train_test_split

from sklearn.linear_model import logisticregression

from sklearn.metrics import accuracy_score

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

dataset = pd.read_csv(

'dataset.csv'

, delimiter=

',')

x = np.asarray(dataset.get(

['x1'

,'x2'])

)y = np.asarray(dataset.get(

'y')

)# 劃分為訓練集和測試集

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=

0.5)

# 使用 sklearn 的 logisticregression 作為模型,其中有 penalty,solver,dual 幾個比較重要的引數,不同的引數有不同的準確率,這裡為了簡便都使用預設的,詳細的請參考 sklearn 文件

model = logisticregression(solver=

'liblinear'

)# 擬合

model.fit(x, y)

# **測試集

predictions = model.predict(x_test)

# 列印準確率

print

('測試集準確率:'

, accuracy_score(y_test, predictions)

)weights = np.column_stack(

(model.intercept_, model.coef_)

).transpose(

)n = np.shape(x_train)[0

]xcord1 =

ycord1 =

xcord2 =

ycord2 =

for i in

range

(n):

ifint

(y_train[i])==

1:0]

)1])

else:0

])1]

)fig = plt.figure(

)ax = fig.add_subplot(

111)

ax.scatter(xcord1, ycord1, s=

30, c=

'red'

, marker=

's')

ax.scatter(xcord2, ycord2, s=

30, c=

'green'

)x_ = np.arange(

-3.0

,3.0

,0.1

)y_ =

(-weights[0]

- weights[1]

* x_)

/ weights[2]

ax.plot(x_, y_)

plt.xlabel(

'x1'

)plt.ylabel(

'x2'

)plt.show(

)

執行結果:

機器學習sklearn實戰 (二)邏輯回歸器

邏輯回歸實際上是利用sigmoid函式將線性回歸進行了歸一化,把輸出值壓縮到了 0 1之間,這個值代表的是事件發生的概率。邏輯回歸其實通常是用來做分類器的,基礎概念可以參考 線性回歸 邏輯回歸 logistic 使用sklearn中的庫,一般使用邏輯回歸器,但是這畢竟是乙個起源於線性回歸器,所以導包...

sklearn邏輯回歸

邏輯回歸自己的理解 1.對機器學習的認識 引用大牛的觀點 機器學習演算法沒有所謂的優劣,也沒有絕對的高效能,只有在特定場景 資料和特徵下更適合的機器學習演算法。2.機器學習應用方法 應用機器學習,千萬不要一上來就試圖做到完美,先做乙個基本的model出來,再進行後續的分析步驟,一步步提高。所謂後續步...

sklearn之邏輯回歸

邏輯回歸 import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import classification report 評估分類結果的指標 from sklearn import preprocessing ...