**:
# 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 ...