調庫實現線性回歸和邏輯回歸

2021-10-23 06:49:51 字數 2780 閱讀 5970

import matplotlib.pyplot as plt

from sklearn import linear_model

import numpy

'''# 單變數的

x = [1.5, 0.8, 2.6, 1.0, 0.6, 2.8, 1.2, 0.9, 0.4, 1.3, 1.2, 2.0, 1.6, 1.8, 2.2]

y = [3.1, 1.9, 4.2, 2.3, 1.6, 4.9, 2.8, 2.1, 1.4, 2.4, 2.4, 3.8, 3.0, 3.4, 4.0]

x, y = numpy.c_[numpy.ones(len(x)), x], numpy.c_[y]

# 呼叫庫函式求解線性回歸問題

regr = linear_model.linearregression() # 呼叫標準庫函式,定義乙個線性回歸變數

regr.fit(x, y) # 線性回歸計算

print(regr.intercept_) # 列印截距 y=ax+b的b h=thete0 + thete1x的thete1

print(regr.coef_) # 列印theta值

print(regr.predict(x)) # 列印**值

print(regr.score(x, y)) # 列印精度

'''# 多變數的

# 載入測試集並縮放和標準化

test_data = numpy.loadtxt(

'ccpp_test.txt'

, delimiter=

',')

x_test, y_test = test_data[:,

:-1]

, test_data[:,

-1]# 資料差的太大,做特徵縮放

x_test =

(x_test - numpy.mean(x_test, axis=0)

)/ numpy.std(x_test, axis=

0, ddof=1)

# 拼接矩陣標準化

x_test, y_test = numpy.c_[numpy.ones(

len(x_test)

), x_test]

, numpy.c_[y_test]

m_regr = linear_model.linearregression(

)# 呼叫標準庫函式定義線性回歸變數

m_regr.fit(x_test, y_test)

# 線性回歸計算

print

(m_regr.coef_)

# 列印theta

print

(m_regr.predict(x_test)

)# 列印**值

print

(m_regr.score(x_test, y_test)

)# 列印精度

import numpy

from sklearn import linear_model

# 提取訓練集和測試集資料

tran_data = numpy.loadtxt(

'g:\a_機器學習1\workspace/ex2data1.txt'

, delimiter=

',')

test_data = numpy.loadtxt(

'g:\a_機器學習1\workspace/ex2data2.txt'

, delimiter=

',')

x_tran, y_tran = tran_data[:,

:-1]

, tran_data[:,

-1]x_test, y_test = test_data[:,

:-1]

, test_data[:,

-1]# 特徵縮放

x_tran =

(x_tran - numpy.mean(x_tran, axis=0)

)/ numpy.std(x_tran, axis=

0, ddof=1)

x_test =

(x_test - numpy.mean(x_test, axis=0)

)/ numpy.std(x_test, axis=

0, ddof=1)

# 標準化

x_tran, y_tran = numpy.c_[numpy.ones(

len(x_tran)

), x_tran]

, numpy.c_[y_tran]

x_test, y_test = numpy.c_[numpy.ones(

len(x_test)

), x_test]

, numpy.c_[y_test]

regr = linear_model.logisticregression(

)# 建立邏輯回歸物件

regr.fit(x_tran, y_tran)

# 可以理解為梯度下降的過程

print

(regr.predict(x_test)

)# 測試集**

print

('截距,'

, regr.intercept_)

# 列印截距

print

('模型引數theta'

, regr.coef_)

# 列印theta

print

('模型得分(準確率)'

, regr.score(x_test, y_test)

)# 列印模型準確率

線性回歸和邏輯回歸

最近開始學習機器學習,有點心得體會,記錄一下,希望大家批評指正 監督學習 supervised learning 根據已有的資料集,知道輸入和輸出結果之間的關係。根據這種已知的關係,訓練得到乙個最優的模型。也就是說,在監督學習中訓練資料既有特徵 feature 又有標籤 label 通過訓練,讓機器...

線性回歸 和 邏輯回歸

跟著b站乙個小姐姐學的 很不錯 1 什麼是回歸 什麼是分類?簡單來說一般回歸問題在數值上是乙個連續的 而分類問題在數值上一般是離散型的 回歸 回歸模型的更傾向於很小的區域 或者是乙個x對應乙個y 線性回歸就不在討論了 這裡學習一下 邏輯回歸 邏輯回歸 聽起來是回歸 但實際上他是解決分類問題的 是乙個...

Coursera 線性回歸和邏輯回歸

在原式子裡加入乙個 error term 之後得到這個 error tem 的正態分佈,從而到處輸出y和x 之間的概率關係。然後通過最大似然估計法,得到若要使得y的概率最大,等價於利用最小二乘法最小化 引數 的數量隨著訓練資料的增大而變多,但是當訓練資料量巨大的時候,每次 所需要的代價都很高。原訓練...