日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

机器学习之线性回归(matlab)

發布時間:2025/3/15 循环神经网络 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之线性回归(matlab) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

一、基本概念

二、概念的數學形式表達

三、確定w和b

1.讀取或輸入數據

2.歸一化、標準化

2.1 均值

2.2 歸一化

2.3 標準化

3.求解w和b

1.直接解方程

2.最小二乘法(least square method)求解:

4. 評估回歸模型

四、regress線性回歸命令

1.調函數解方程

2.對原始值和預測值進行繪圖

3. 畫殘差圖:

五、matlab顏色表

六、matlab調色板

1、常用顏色的RGB值

2、產生標準調色板的函數


一、基本概念

線性(linear):

指量與量之間按比例、成直線的關系,在空間和時間上代表規則和光滑的運動,一階導數為常數

非線性(non-linear):

指不按比例、不成直線的關系,代表不規則的運動和突變,一階導數不為常數。

一個線性的例子:

數據:工資和年齡(2個特征)

目標:預測銀行會貸款給我多少錢(標簽)

考慮:工資和年齡都會影響最終銀行貸款的結果,那么他們各自有多大的影響呢?(參數)

通俗的解釋

x1,x2就是我們的兩個特征(年齡、工資),y是銀行最終會借給我們多少錢

找到最合適的一條線(想象一個高維)來最好的擬合我們的數據點

數學形式來了

二、概念的數學形式表達

給定數據集

數據的矩陣形式:

?線性模型(linear model)試圖學得一個通過屬性組合的線性組合來進行預測的函數,即

向量形式寫成:???

線性回歸(linear regression)試圖學得一個線性模型以盡可能準確地預測實值輸出標記

三、確定w和b

對離散屬性

若屬性間存在“序”關系,可通過連續化將其轉化為連續值。

若屬性間不存在“序”關系,則轉化為k維向量。

1.讀取或輸入數據

matlab不需要導入庫,直接引用函數 csvread 讀取csv數據文件

首先我們先看看csv數據的導入

% 引用函數 csvread 讀取csv數據文件data = csvread('路徑',1,0) #從第二行,第0列讀取數據

?讀取數據后得分出和為X,何為Y

# matlab從1開始算,與實際一樣 X = data[:,1:4] # 1到4列所有的數據也就是實際的1到4列 Y = data[:, 6] # 第6列所有的數據也就是實際的第6列

?接下來我們看看自己建立矩陣的數據讀取方式

Y=[160260250];X=[70,35,175,40,2.465,42,3];

返回:

?

??說到矩陣了,就順便說一下

創建矩陣的相關知識

(1) ones()函數:產生全為1的矩陣,ones(n):產生n*n維的全1矩陣,ones(m,n):產生m*n維的全1矩陣;
(2) zeros()函數:產生全為0的矩陣;
(3) rand()函數:產生在(0,1)區間均勻分布的隨機陣;
(4) eye()函數:產生單位陣;
(5) randn()函數:產生均值為0,方差為1的標準正態分布隨機矩陣。

2.歸一化、標準化

2.1 均值

# MATLAB直接引用mean()函數就好 X_mean = mean(X) Y_mean = mean(Y)

1. mean:計算向量均值。mean(x,1)列向量均值,mean(x,2)行向量均值。??mean2(x)矩陣均值.

2. std:計算向量均方差,std(x,0,1)列向量均方差,std(x,0,2)行向量均方差。 std2(x)矩陣均方差

3. var:計算向量方差,var(x)

4. sse:誤差平方和,sse(x)。越接近于0,說明擬合的越好,數據預測越成功。

5. mse:均方差平方和,mse(x)=sse(x)/N。意義同sse

6. R-square:確定系數。確定系數是通過數據的變化來表征一個擬合的好壞。由上面的表達式可以知道“確定系數”的正常取值范圍為[0 1],越接近1,表明方程的變量對y的解釋能力越強,這個模型對數據擬合的也較好。

要想確定w和b,首先要視情況決定是否需要對數據進行歸一化或標準化

2.2 歸一化

%歸一化X=[70,35,175,40,2.465,42,3]; for X=XMappedX = (X-min(X))/(max(X)-min(X)) end %用函數mapminmax %默認的map范圍是[-1, 1],所以如果需要[0, 1],則按這樣的格式提供參數:MappedData = mapminmax(OriginalData, 0, 1); % 只按行歸一化,如果是矩陣,則每行各自歸一化,如果需要對整個矩陣歸一化FlattenedData = OriginalData(:)'; % 展開矩陣為一列,然后轉置為一行。 MappedFlattened = mapminmax(FlattenedData, 0, 1); % 歸一化。% 還原為原始矩陣形式。此處不需轉置回去,因為reshape恰好是按列重新排序 MappedData = reshape(MappedFlattened, size(OriginalData));

2.3 標準化

% z-score 標準化 % 新數據=(原數據-均值)/標準差 % 標準化以后,X中元素的取值范圍為實數。X=zscore(X)

3.求解w和b

1.直接解方程

N = length(Y);A = X'*X-(N*X_mean'*X_mean); C=X'*Y - (N*X_mean'*Y_mean); B = (A^-1*C).'

2.最小二乘法(least square method)求解:

把數據集D表示為一個m*(d+1)大小的矩陣X,其中每行對應于一個示例,改行前d個元素對應于示例的d個屬性值,最好一個元素恒置為1,即

A=[1 2 3;4 5 6;7 8 9]; B = ones(3,1) %生成3行1列的1矩陣 % B=[1;1;1]; %一共三行,用“;”分開 A_column=[A B]; display(A_column);%輸出結果

當X^TX 為滿秩矩陣(full-rank matrix) 或正走矩陣(positive definite matrix) 時,令

得到

w = (X'*X)^-1*X'*Y %變量的系數 w0 = Y_mean - X_mean*w %常數

?其中(X^TX)^-l是矩陣(X^TX)的逆矩陣.令xi = (xi ,l) ,則最終學得的多元線性回歸模型為

YY = X*w+w0 %Y的估計值

4. 評估回歸模型

%離差平方和 S = var(Y); fprintf('離差平方和S=:%d\n',S) %回歸平方和 U = var(YY); fprintf('回歸平方和U=:%d\n',U) %剩余平方和 Q=S-U; fprintf('剩余平方和Q=:%d\n',Q) %復可決系數 R2 = U/S; fprintf('復可決系數R2=:%d\n',R2) %負相關系數 R = sqrt(U/S); fprintf('復相關系數R=:%d\n',R) %回歸均方 % n= X_mean 的個數 UU = U/n; fprintf('回歸均方=:%d\n',UU) %剩余均方 % N= Y的個數 QQ = Q/(N-n-1); fprintf('剩余均方=:%d\n',QQ) %剩余標準差 s = sqrt(QQ); fprintf('剩余標準差s=:%d\n',s) %方程顯著性檢驗值 F = UU/QQ; fprintf('方差顯著性檢驗值F=:%d\n',F)

四、regress線性回歸命令

用于一元及多元線性回歸,本質上是最小二乘法。在Matlab 2014a中,輸入help regress?,會彈出和regress的相關信息

調用格式

  • B = regress(Y,X)
  • [B,BINT] = regress(Y,X)
  • [B,BINT,R] = regress(Y,X)
  • [B,BINT,R,RINT] = regress(Y,X)
  • B,BINT,R,RINT,STATS] = regress(Y,X)
  • [...] = regress(Y,X,ALPHA)

參數解釋

  • B:回歸系數,是個向量(“the vector B of?regression coefficients?in the? linear model Y = X*B”)。
  • BINT:回歸系數的區間估計(“a matrix BINT of 95% confidence intervals for B”)。
  • R:殘差( “a vector R of residuals”)。
  • RINT:置信區間(“a matrix RINT of intervals that can be used to diagnose outliers”)。
  • STATS:用于檢驗回歸模型的統計量。有4個數值:判定系數R^2,F統計量觀測值,檢驗的p的值,誤差方差的估計。
  • ALPHA:顯著性水平(缺少時為默認值0.05)。

1.調函數解方程

% 方程求解函數使用 [b,bint,r,rint,stats] = regress(Y,X);

2.對原始值和預測值進行繪圖

x = 1:1:N; plot(x,Y,'-*b',x,YY,'-or'); %線性,顏色,標記% hold on; %表示在同一張圖上繼續作畫 % title('x'); %命名標題 % axis([0 1 0 10]) % 設置坐標軸在指定的區間 % xlabel('t'); %命名x軸 % ylabel('x'); %命名y軸 % grid on %顯示坐標軸網格線 % legend('Y','YY'); %*加標注,2條線分別代表是什么*

3. 畫殘差圖:

figure %創建窗口 rcoolot(r,rint) %繪制殘差圖

五、matlab顏色表

線型

說明

標記符

說明

顏色

說明

-

實線(默認)

+

加號符

r

紅色

--

雙劃線

o

空心圓

g

綠色

:

虛線

*

星號

b

藍色

:.

點劃線

.

實心圓

c

青綠色

x

叉號符

m

洋紅色

s(square)

正方形

y

黃色

d

菱形

k

黑色

^

上三角形

w

白色

v

下三角形

>

右三角形

<

左三角形

p(pentagram)

五角星

h(hexagram)

六邊形

square正方形
pentagram五角形
hexagram六角形

六、matlab調色板

1、常用顏色的RGB值

??--------------------------------------------

? ? 顏色 ??R ? G ? B? ? ?顏色? ?R ? G? B

??--------------------------------------------

? ? ?黑? ? 0 ? 0? 1 ? ??洋紅 ? ?1? 0 ? 1

? ? ?白? ? 1 ? 1? 1 ? ??青藍 ? ?0? 1 ? 1

? ? ?紅? ? 1 ? 0? 0 ? ??天藍 0.67 0 ? 1

? ? ?綠? ? 0 ? 1? 0 ? ??橘黃 ? ?1 0.50

? ? ?藍? ? 0 ? 0? 1 ? ??深紅 ? 0.5 0 ?0

? ? ?黃? ? 1 ? 1? 0 ? ?? 灰 ? ?0.5 0.50.5 ? ? ?

??--------------------------------------------

??注意:MATLAB中調色板色彩強度[0,1],0代表最暗,1代表最亮。

2、產生標準調色板的函數

??-------------------------------------------------

? ? 函數名 ?? ? 調色板

??-------------------------------------------------

? ? ?Hsv? ? ?色彩飽和度,以紅色開始,并以紅色結束

? ? ?Hot? ? ?黑色-紅色-黃色-白色

? ? ?Cool? ??青藍和洋紅的色度

? ? ?Pink? ? ?粉紅的色度

? ? ?Gray? ? ?線型灰度

? ? ?Bone? ??帶藍色的灰度

? ? ?Jet? ? ??Hsv的一種變形,以藍色開始,以藍色結束

? ? ?Copper? ?線型銅色度

? ? ?Prim? ? ?三棱鏡,交替為紅、橘黃、黃、綠和天藍

? ? ?Flag? ? ?交替為紅、白、藍和黑

--------------------------------------------------

缺省情況下,調用上述函數灰產生一個64×3的調色板,用戶也可指定調色板大小。

總結

以上是生活随笔為你收集整理的机器学习之线性回归(matlab)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。