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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【学习笔记】吴恩达机器学习 WEEK2 线性回归 Octave教程

發布時間:2024/10/6 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】吴恩达机器学习 WEEK2 线性回归 Octave教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Multivariate Linear Regression

  • Multiple Features

  • Xj(i)X_j^{(i)}Xj(i)? 其中j表示迭代次數,i表示矩陣索引
  • 轉換
    原來:hθ(x)=θ0+θ1x1+θ2x2+?+θnxnh_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n}hθ?(x)=θ0?+θ1?x1?+θ2?x2?+?+θn?xn?
    definex0=1x_0=1x0?=1
    現在:hθ(x)=θTx=θ0x0+θ1x1+θ2x2+?+θnxnh_{\theta}(x)=\theta^{T} x=\theta_{0} x_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\cdots+\theta_{n} x_{n}hθ?(x)=θTx=θ0?x0?+θ1?x1?+θ2?x2?+?+θn?xn?
  • Gradient descent for multilple variables
    New algorithm (n≥1)(n \geq 1)(n1) : (多個特征變量)
    Repeat {

    θj:=θj?α1m∑i=1m(hθ(x(i))?y(i))xj(i)\theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}θj?:=θj??αm1?i=1m?(hθ?(x(i))?y(i))xj(i)?

    (simultaneously update θj\theta_{j}θj? for j=0,…,nj=0, \ldots, nj=0,,n)
    }
    其中:先計算(hθ(x(i))?y(i))xj(i)\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}(hθ?(x(i))?y(i))xj(i)?,再求和

  • Gradient descent in practice I :Feature Scaling (特征縮放)

  • 目的:
    Get every feature into approximately a ?1≤xi≤1-1 \leq x_{i} \leq 1?1xi?1 range.
    控制特征范圍大致相近,使梯度下降法可以更快的收斂
  • 方法
    Mean normalization 均值歸一化
    新特征值 = (特征值 - 均值)/范圍
  • Gradient descent in practice II :Learning rate (學習率)

  • 判斷收斂條件:
    代價函數迭代次數的變化曲線
    代價函數沒有隨著迭代次數的增加而減小時,減小學習率
  • 學習率的選取
    0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1
  • Features and polynomial regression 特征選擇和多項式回歸
    hθ(x)=θ0+θ1x1+θ2x2+θ3x3=θ0+θ1(size?)+θ2(size?)2+θ3(size?)3x1=(size?)x2=(size?)2x3=(size?)3\begin{aligned} h_{\theta}(x) &=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3} \\ &=\theta_{0}+\theta_{1}(\operatorname{size})+\theta_{2}(\operatorname{size})^{2}+\theta_{3}(\operatorname{size})^{3} \\ x_{1} &=(\operatorname{size}) \\ x_{2} &=(\operatorname{size})^{2} \\ x_{3} &=(\operatorname{size})^{3} \end{aligned}hθ?(x)x1?x2?x3??=θ0?+θ1?x1?+θ2?x2?+θ3?x3?=θ0?+θ1?(size)+θ2?(size)2+θ3?(size)3=(size)=(size)2=(size)3?

  • Normal equation 正規方程

  • 目的
    令代價函數導數為0 ,直接求出最優值,無需迭代
  • 表達式
    Xθ=yX\theta=yXθ=y 推導出:
    θ=(XTX)?1XTy\theta=\left(X^{T} X\right)^{-1} X^{T} yθ=(XTX)?1XTy
  • 注意點
    使用正規方程時,不需要進行特征縮放
  • 正規方程法和梯度下降法的比較
  • 梯度下降法正規方程法
    需要確定學習率不需要確定學習率
    需要多次的迭代不需要迭代
    復雜度O(kn2)O(kn^2)O(kn2)復雜度O(n3)O(n^3)O(n3), need to calculate inverse of XTXX^{T}XXTX
    適用于特征變量較多時特征變量較多時變慢

    說明:使用正規方程法,計算矩陣的逆時比較耗時,特征變量的數量超過10000時,建議使用梯度下降法。

  • Normal equation and non-invertibility 正規方程以及不可逆性
  • 說明:
    上述在求解θ\thetaθ時,用到(XTX)?1\left(X^{T} X\right)^{-1}(XTX)?1,要考慮到其中XTXX^{T} XXTX是否可逆??
  • XTXX^{T} XXTX不可逆的原因
    特征變量冗余 & 特征變量過多
  • octave操作
  • pinv和inv均可求解矩陣的逆,pinv求解的是矩陣的偽逆,即使矩陣的逆不存在,也可以求出來
  • 方程求解的代碼: pinvX`*X*X`*y
  • Octave Tutorial

  • Basic operations1 ~= 2 1 && 0 1 || 0 xor(1,0) disp(sprintf('2 decimals: %0.2f', a)) v = 1:0.1:2 w = -6 + sqrt(10)*(randn(1,10000)); hist(w) hist(w,50) % plot histogram using 50 bins I = eye(4)
  • Moving Data Aroundsize(A) size(A,1) length(v) load q1y.dat whos % list variables in workspace (detailed view) clear q1y % clear command without any args clears all vars save hello.mat v save hello.txt v -ascii A = [A, [100; 101; 102]]; % append column vec A(:) % Select all elements as a column vector. C = [A, B] % concatenating A and B matrices side by side C = [A; B] % Concatenating A and B top and bottom
  • Computing on dataA * C % matrix multiplication A .* B % element-wise multiplication A .^ 2 v + ones(length(v), 1) A' % 矩陣轉置 [val,ind] = max(a) find(a < 3) [r,c] = find(A>=7) % row, column indices for values matching comparison sum(a) prod(a) # 求積 floor(a) % or ceil(a) # 向上取整 向下取整 max(A,[],1) # maximum along columns max(A,[],2) # maximum along rows sum(sum( A .* eye(9) )) sum(sum( A .* flipud(eye(9)) )) # 沿對角線翻轉 pinv(A)
  • Plotting Dataplot(t,y2,'r'); legend('sin','cos'); print -dpng 'myPlot.png' close; figure(2), clf; axis([0.5 1 -1 1]);figure; imagesc(magic(15)), colorbar, colormap gray; # 灰度矩陣
  • 5. Control statements & Functions ```python v = zeros(10,1); for i=1:10, v(i) = 2^i; end; i = 1; while true, v(i) = 999; i = i+1;if i == 6,break;end; endfunction y = squareThisNumber(x)y = x^2;squareThisNumber(2)# 一個函數,兩個返回值 function [y1, y2] = squareandCubeThisNo(x)y1 = x^2y2 = x^3 [a,b] = squareandCubeThisNo(x) ```
  • Vectorization
    目的:簡單,提高計算效率
  • 備注:

  • submit 提交作業
  • 需要生成碼的話,從網站上的提交頁面復制
  • 總結

    以上是生活随笔為你收集整理的【学习笔记】吴恩达机器学习 WEEK2 线性回归 Octave教程的全部內容,希望文章能夠幫你解決所遇到的問題。

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