《機器學習及實戰》讀書筆記之基礎篇(監督學習回歸)

2021-08-15 04:30:08 字數 4717 閱讀 5039

回歸問題與分類問題的區別在於:其待**目標是連續函式

m個用於訓練的特徵向量x=(x1,x2……xm)

其對應的回歸目標y=(y1,y2……ym)

希望回歸模型可以用最小二乘法來**損失l(w,b),如此一來,線性回歸器的優化目標為:

argminl(w,b)=argmin((f(w,x,b)-yk)^2)的和,其中k=1 to m

可以使用一種精確計算的解析演算法赫和隨機梯度下降求解引數:w,b

美國波士頓房價****

# -*- coding: utf-8 -*-

#公尺國波士頓地區房價資料描述

#從sklearn.datasets裡匯入資料

from sklearn.datasets import load_boston

#資料儲存在變數boston中

boston=load_boston()

#輸出資料描述

print(boston.descr)

print('***********************************====')

#房價資料分割

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,random_state=33,test_size=0.25)

#分析回歸目標值的差異

print('最大的目標值:',np.max(boston.target))

print('最小的目標值:',np.min(boston.target))

print('目標值的平均值:',np.mean(boston.target))

print('***********************************===')

#訓練與測試資料的標準化處理

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)

print('***********************************==')

#使用線性回歸模型linearregression和sgdregressor對放假進行**

from sklearn.linear_model import linearregression

#初始化

lr=linearregression()

lr.fit(x_train,y_train)

lr_y_predict=lr.predict(x_test)

from sklearn.linear_model import sgdregressor

sgdr=sgdregressor()

sgdr.fit(x_train,y_train)

sgdr_y_predict=sgdr.predict(x_test)

#使用三種評價機制以對本節模型的回歸效能進行分析

print('the value of default measurement of linearregression is :',lr.score(x_test,y_test))

from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error

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(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict)))

print('the mean absoluate error of linearregression is :',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict)))

支援向量機回歸同樣是從訓練資料中選取一部分更加有效地支援向量,只是這少部分的訓練樣本所提供的並不是類別目標,而是具體的**數值。

# -*- coding: utf-8 -*-

#公尺國波士頓地區房價資料描述

#從sklearn.datasets裡匯入資料

from sklearn.datasets import load_boston

#資料儲存在變數boston中

boston=load_boston()

#輸出資料描述

print(boston.descr)

print('***********************************====')

#房價資料分割

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,random_state=33,test_size=0.25)

#訓練與測試資料的標準化處理

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)

#使用2種不同核函式配置的支援向量機回歸模型進行訓練並**

from sklearn.svm import svr

#線性核函式

linear_svr=svr(kernel='linear')

linear_svr.fit(x_train,y_train)

linear_svr_y_predict=linear_svr.predict(x_test)

#多項式核函式

poly_svr=svr(kernel='poly')

poly_svr.fit(x_train,y_train)

poly_svr_y_predict=poly_svr.predict(x_test)

#效能評估

from sklearn.metrics import r2_score,mean_absolute_error,mean_squared_error

print('r-squared value of linear svr is',linear_svr.score(x_test,y_test))

print('the mean squared error of linear svr is',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(linear_svr_y_predict)))

print('the mean absoluate error of linear svr is',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(linear_svr_y_predict)))

print('r-squared value of poly svr is',poly_svr.score(x_test,y_test))

print('the mean squared error of poly svr is',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(poly_svr_y_predict)))

print('the mean absoluate error of poly svr is',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(poly_svr_y_predict)))

《機器學習實戰》讀書筆記

監督學習使用兩種型別的目標變數 之所以稱監督學習,是因為這類演算法必須知道 什麼,即目標變數的分類資訊 在無監督學習中,將資料集合分成由類似的物件組成的多個類的過程被稱為聚類 將尋找描述資料統計值的過程稱之為密度估計 是 否要 預測目標 變數的值 是 監督學習 目標變數型別 begin離散型 分類演...

機器學習實戰讀書筆記(三)

從本節開始,將介紹無監督學習。今天整理了無監督學習中的k均值聚類演算法和mapreduce部分的內容。本部分是8月24號的內容。9.k均值聚類演算法 1 k均值聚類演算法 優點 易於實現。缺點 可能收斂到區域性最小值,在大規模的資料集上的收斂速度慢。適用資料型別 數值型。可以用的誤差指標如誤差的平方...

《機器學習實戰》讀書筆記 1

本人開發工具為pycharm,python版本是3.5 第二章 knn 2.1 概述 k 緊鄰演算法的一般流程 收集資料 可以使用任何方法 準備資料 距離計算所需要的數值,最好是結構化的資料格式 分子資料 可以使用任何方法 訓練資料 此步驟不適應於k 緊鄰演算法 測試資料 計算錯誤率 使用演算法 首...