#匯入資料
from sklearn.datasets import load_boston
boston = load_boston()
print(boston.descr)
#資料分割
from sklearn.cross_validation import train_test_split
import numpy as np
x = boston.data
y = boston.target
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=33)
#分析回歸目標值的差異
print('the max target value is:',np.max(boston.target))
print('the min target value is:',np.min(boston.target))
print('the mean target value is:',np.mean(boston.target))
#資料標準化
from sklearn.preprocessing import standardscaler
ss_x = standardscaler()
ss_y = standardscaler()
x_train = ss_x.fit_transform(x_train)
x_test = ss_x.transform(x_test)
#y_train = ss_y.fit_transform(y_train)
#y_test = ss_y.transform(y_test)
#訓練模型
from sklearn.linear_model import linearregression
from sklearn.linear_model import sgdregressor
lr = linearregression() #解析演算法
lr.fit(x_train, y_train)
lr_y_predict = lr.predict(x_test)
sgdr = sgdregressor() #隨機梯度下降演算法
sgdr = linearregression()
sgdr.fit(x_train, y_train)
sgdr_y_predict = sgdr.predict(x_test)
#效能分析
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error
print('the value of default measurement of linearregression is:',lr.score(x_test, y_test)) #自帶的評估模型
print('the value of r-squared of linearregression is',r2_score(y_test, lr_y_predict)) #
print('the mean_squared_error of linearregression is',mean_squared_error(y_test, lr_y_predict)) #均方誤差
print('the mean_absolute_error of linearregression is',mean_absolute_error(y_test, lr_y_predict)) #平均絕對誤差
print('the value of default measurement of sgdregressor is:',sgdr.score(x_test, y_test))
print('the value of r-squared of sgdregressor is',r2_score(y_test, sgdr_y_predict))
print('the mean_squared_error of sgdregressor is',mean_squared_error(y_test, sgdr_y_predict))
print('the mean_absolute_error of sgdregressor is',mean_absolute_error(y_test, sgdr_y_predict)
輸出:
不同與分類的效能測試,通常分類任務的好壞指標有準確率,召回率,f1指標。回歸任務通常用平均絕對誤差(mean absolute error,mae)、均方誤差(mean squared error,mse)評價。
分析:由輸出結果可知使用隨機梯度下降估計引數的方法在效能上不如使用解析方法;但是如果面對比較龐大的資料集的時候,隨機梯度下降法不論在分類還是回歸問題上都表現非常高效,可以在不損失過多效能的前提下,大大的節省計算時間。在選擇模型時,要根據資料量的大小選擇合理的模型。
線性回歸(標準回歸)
今天我們來討論機器學習的另乙個領域 首先我們來討論利用線性回歸來 數值型資料。利用線性回歸進行 的過程就是求解回歸係數的過程,求出回歸係數後進行係數與特徵值乘積求和即可,這裡我們使用最小二乘法進行求解 ex0.txt 提取碼 dbe2 def loaddataset filename numfeat...
線性回歸模型 線性回歸模型
回歸的思想和分類有所不一樣,分類輸出的結果為離散的值,回歸輸出的是乙個連續型的值。線性回歸的思想就是試圖找到乙個多元的線性函式 當輸入一組特徵 也就是變數x 的時候,模型輸出乙個 值y h x 我們要求這個 值盡可能的準確,那麼怎麼樣才能做到盡可能準確呢?其中 表示實際值,表示 值 其中 表示實際值...
機器學習 線性回歸和邏輯回歸
1 線性回歸要求變數服從正態分佈,logistic回歸對變數分布沒有要求。2 線性回歸要求因變數是連續性數值變數,而logistic回歸要求因變數是分型別變數。3 線性回歸要求自變數和因變數呈線性關係,而logistic回歸不要求自變數和因變數呈線性關係 4 logistic回歸是分析因變數取某個值...