监督学习-线性回归(数学建模)

2023-05-16

这是在学习吴恩达的机器学习课程时,一些随笔。

课程地址在 coursera ML

文章目录

      • 监督学习 VS 无监督学习
      • Cost function
      • 梯度下降
        • 学习率 α \alpha α
      • 多元梯度下降
        • 特征缩放和均值归一化
      • 特征和线性拟合
      • Normal Equation 正规方程
      • 梯度下降 VS Normal Equation
      • 数学建模中的回归问题
      • 编程练习 ex1

监督学习 VS 无监督学习

简单来说:

  • 监督学习:我们有一组数据集,并且已经知道了正确的 output,以及 input 和 output 之间的关系。我们期望根据已有的数据确定一个 input 到 output 的映射关系 ( x ⟶ f ( x ) x \longrightarrow f(x) xf(x)) ,从而对一组新的 input 求出 output。
    监督学习通常分为“回归”和“分类”问题。
  • 无监督学习:有时候我们只有一组数据,而不知道这一组数据任何对应的 output。这时候我们期望通过无监督学习从数据中获取一些特征,并根据这些特征对数据分类。无监督学习通常为“聚类”问题。

Cost function

在回归模型中,可以通过代价函数来衡量拟合的优度。

对一组数据集,如果选取函数 h θ ( x ) = θ 0 + θ 1 x h_\theta(x)=\theta_0+\theta_1x hθ(x)=θ0+θ1x 来拟合,那么对于选取的每一组 θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2 ,其对应的代价函数形如:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y ^ i − y i ) 2 = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(\hat{y}_{i}-y_{i}\right)^{2}=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x_{i}\right)-y_{i}\right)^{2} J(θ0,θ1)=2m1i=1m(y^iyi)2=2m1i=1m(hθ(xi)yi)2
即每一个 input x i x_i xi 的拟合值 h 0 ( x i ) h_0(x_i) h0(xi) 和 实际值 output y i y_i yi 差的平方和再除以样本点的两倍 2 m 2m 2m。(可以抽象为平均距离,样本点和拟合点的距离越小,则拟合得越好)

我们的目的是选取一组适当的 θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2 以使成本函数值最小,即达到最优拟合优度。

image-20210522231124460

梯度下降

该怎样求得这样一组“适当的 θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2 ” 呢?梯度下降算法给出了一个不错的解决方案。

梯度下降为了求解出成本函数 J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1) 关于 θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2 的最小值,是这样的做的:

  1. 先从随机选取的一个初始点 ( θ 1 , θ 2 \theta_1, \theta_2 θ1,θ2) 开始;
  2. 在当前位置环顾四周,找到一个坡度最陡的下坡方向;
  3. 往这个下坡方向下降一定距离,到达一个新的位置;
  4. 重复第二步迭代,直到收敛(到达谷底)。
image-20210522232309075

每次下降的最陡方向即为成本函数的导数,下降的步伐由学习率 α \alpha α 决定。梯度下降以该式更新 θ \theta θ ,直到收敛:(方向导数即是函数值沿该方向变化的最大速度,参见 微积分-梯度)
θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_{j}:=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) θj:=θjαθjJ(θ0,θ1)
这个“下降”是 θ 1 \theta_1 θ1 θ 2 \theta_2 θ2 两个方向下降的矢量和(类比“力的合成”),并且每次迭代都应该同时更新 j = 0 , 1 j=0,1 j=0,1 θ \theta θ 值。

梯度下降算法总能正确地工作,以 θ 1 \theta_1 θ1 方向的分量来说明这件事:(注意学习率 α \alpha α 的值应该总取正值)

  • ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right) θ1J(θ0,θ1) 为正,则 θ \theta θ 将减去一个正数从而更加靠近斜率为 0 的点(收敛点);图中上部分
  • ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right) θ1J(θ0,θ1) 为负,则 θ \theta θ 将减去一个负数从而更加靠近斜率为 0 的点;图中下部分
  • 而且非常巧妙的在于,随着越来越靠近收敛点,该方向的曲线斜率越来越小,这也就意味着该方向的方向导数 ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right) θ1J(θ0,θ1) 越来也小,从而使下降的步伐越来越小,避免跨过收敛点导致无法收敛(前提是选取了适当的学习率 α \alpha α
image-20210523105828487

梯度下降的完整算法形如:

image-20210523111200720

当梯度下降用于线性回归时,求偏导后可得出新的形式:

image-20210523111504762

你可能注意到了,梯度下降只能找到局部最小值。因此如果问题只有一个全局最优解,那么总能找到这个解;而若有多个局部最优解时,则可能需要选取多个不同的起始点多次梯度下降。

学习率 α \alpha α

为了使梯度下降良好地工作,我们需要选取一个合适的学习率 α \alpha α 。它不应该太大(这可能导致 J ( θ ) J(\theta) J(θ)并不在每一次迭代后减少,甚至可能导致无法收敛),也不应该太小(这将导致收敛的很慢)。

为了检验我们选取的 α \alpha α 值是否合适,可以观察 θ \theta θ 值对应的最小成本函数 m i n J ( θ ) min J(\theta) minJ(θ) 是否随着迭代的次数而变小:

image-20210523125421603

多元梯度下降

当 input 数据有多个属性时,拟合函数形如:
h θ ( x ) = θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + ⋯ + θ n x n h_{\theta}(x)=\theta^{T}x=\theta_{0}+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}+\cdots+\theta_{n} x_{n} hθ(x)=θTx=θ0+θ1x1+θ2x2+θ3x3++θnxn
成本函数和梯度下降和一元类似,使用向量表示更为贴切:

image-20210523115010321

同样的将成本函数 J ( θ ) J(\theta) J(θ) 分别对 θ j \theta_j θj 求偏导(方向导数),即可得到线性回归特有形式的梯度下降通式:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) ⋅ x j ( i )  for  j : = 0 … n \theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \cdot x_{j}^{(i)} \qquad \text { for } \mathrm{j}:=0 \ldots \mathrm{n} θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i) for j:=0n
如你所见,对每一个 θ j \theta_j θj 求偏导得到的是一个固定形式的表达式,它只跟 x j x_j xj 有关。事实上在一元梯度下降中也是如此,只不过由于 x 0 x_0 x0 是一个常量 1 而省略了 x 0 x_0 x0 。下面是一元梯度下降和多元梯度下降的对比:

image-20210523115212532

特征缩放和均值归一化

在进行多元梯度下降时,若不同属性之间的数量级相差非常大,将导致迭代次数非常多,收敛的非常慢。为了避免这样的问题,在进行多元梯度下降时非常有必要进行特征缩放。

缩放的方法有很多种,只要最终所有的数据都控制在一个较小范围内即可,这个范围通常没有绝对的要求,只要不是太小或者太大均可。

  • 特征缩放:用输入值除以输入变量的范围(即最大值减去最小值),结果的范围是 − 1 ∼ 1 -1\sim1 11
  • 均值归一化:将输入值减去平均值后再除以输入变量的范围,结果是的范围近似是 − 0.5 ∼ 0.5 -0.5 \sim 0.5 0.50.5

特征和线性拟合

Normal Equation 正规方程

还记得我们的成本函数吗?
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y ^ i − y i ) 2 = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(\hat{y}_{i}-y_{i}\right)^{2}=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x_{i}\right)-y_{i}\right)^{2} J(θ0,θ1)=2m1i=1m(y^iyi)2=2m1i=1m(hθ(xi)yi)2
我们拟合的目的就是选取一组合适的 θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2 使得 J ( θ 1 , θ 2 ) J(\theta_1,\theta_2) J(θ1,θ2) 函数值最小。梯度下降给出了一套直观的解法,即不断(有规律)地尝试不同的 θ 1 , θ 2 \theta_1,\theta_2 θ1,θ2 ,直到找到最合适的那一组。

等等,函数值最小?那不就是导数值为 0 吗?因此,正规方程解法将 “求成本函数值最小对应的 θ \theta θ ” 转换为求 “成本函数导数值为 0 对应的 θ \theta θ ” ,如果是多元函数,则是对每一个 θ j \theta_j θj 的偏导数值为 0:

image-20210523133059184

如果拟合函数为 h θ ( x ) = θ T x = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + ⋯ + θ n x m h_{\theta}(x)=\theta^{T}x=\theta_{0}x_0+\theta_{1} x_{1}+\theta_{2} x_{2}+\theta_{3} x_{3}+\cdots+\theta_{n} x_{m} hθ(x)=θTx=θ0x0+θ1x1+θ2x2+θ3x3++θnxm ,将 input 数据集对应到 X X X ,output 数据集对应到 y y y,则总可以这样求得最优的 θ \theta θ
θ = ( X T X ) − 1 X T y \theta=\left(X^{T} X\right)^{-1} X^{T} y θ=(XTX)1XTy
这是一个 m = 4 m=4 m=4 时的例子(注意 input 数据集和 output 数据集到 X , y X,y X,y 的对应,这个例子中 θ 0 x 0 \theta_0x_0 θ0x0 是一个常数项,因此 x 0 x_0 x0 的输入是一个恒定值 1):

image-20210523152410705

具体到利用 MATLAB 计算只有简单的一条命令:

% X' - 转置
% pinv(X) - 对 X 求伪逆
% 总可以通过该式求得正确的 theta,即使矩阵 X 不可逆
theta = pinv(X'*X)*(X')*y

% X\Y - 对 X 求逆后与 Y 相乘,因此也可以这样做:
theta = (X'*X)\(X')*y

使用正规方程解法求 θ \theta θ 将不用考虑 input 数据集之间的数量级,直接计算就好,不再需要特征缩放。

梯度下降 VS Normal Equation

image-20210523154641877

看上去正规方程解法似乎比梯度下降简单的多也实用的多,只有当 input 数据集的属性 n 非常大时可能才需要考虑使用梯度下降。事实也是这样的,在一般的回归问题中,特征方程已经够用了。但这并不意味着学习的梯度下降是徒劳,在后面即将看到的很多其他问题还将不得不用到梯度下降。


数学建模中的回归问题

在回归问题中通常并不使用梯度下降法求解 θ \theta θ ,而使用正规方程解法。但可能有些术语上的出入:

  • 一般把 Cost Function 称之为”均方误差“,对应了最常见的欧几里得距离或简称”欧氏距离“;
  • 基于均方误差最小化来求解待定系数 θ \theta θ 的方法称之为”最小二乘法“;
  • 最小二乘法的求解过程称为回归模型的最小二乘“参数估计”(求解过程与正规方程解法一致);

在回归问题中,最小二乘法就是试图找到一条曲线(或直线),使所有样本点到曲线上的欧氏距离之和最小。

完整的最小二乘法拟合参见司守奎的*《数学建模算法与应用》第二版* 92 页:
image-20210523160652099image-20210523160724587

关于 MATLB 拟合函数、工具箱的使用参见另一篇笔记 MATLAB数学建模 回归与内插


编程练习 ex1

computeCost.m

function J = computeCost(X, y, theta)
%COMPUTECOST Compute cost for linear regression
%   J = COMPUTECOST(X, y, theta) computes the cost of using theta as the
%   parameter for linear regression to fit the data points in X and y

% Initialize some useful values
m = length(y); % number of training examples

% You need to return the following variables correctly 
J = 0;

% ====================== YOUR CODE HERE ======================
% Instructions: Compute the cost of a particular choice of theta
%               You should set J to the cost.
y_fit = X * theta;
J = sum((y-y_fit).^2) / (2*length(y));
% =========================================================================
end

gradientDescent.m

function [theta, J_history] = gradientDescent(X, y, theta, alpha, num_iters)
%GRADIENTDESCENT Performs gradient descent to learn theta
%   theta = GRADIENTDESCENT(X, y, theta, alpha, num_iters) updates theta by 
%   taking num_iters gradient steps with learning rate alpha

% Initialize some useful values
m = length(y); % number of training examples
J_history = zeros(num_iters, 1);

temp = zeros(size(theta));
mmin = computeCost(X, y, theta);

for iter = 1:num_iters
    % ====================== YOUR CODE HERE ======================
    % Instructions: Perform a single gradient step on the parameter vector
    %               theta. 
    %
    % Hint: While debugging, it can be useful to print out the values
    %       of the cost function (computeCost) and gradient here.
    %
    
    thetatemp=theta; % 要同时更新所有 theta,因此用一个中间值记录下
    for j=1:length(theta)
        theta(j) = theta(j) - alpha / m * sum( (X*thetatemp-y) .* X(:,j) );
    end
    
    % ============================================================

    % Save the cost J in every iteration    
    J_history(iter) = computeCost(X, y, theta);

    if(J_history(iter)<mmin) % 如果当前 cost function 值更小,则更新 theta
        mmin=J_history(iter);
        temp=theta;
    end
end

theta=temp;
end

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

监督学习-线性回归(数学建模) 的相关文章

  • 数据结构与算法---(最小栈)

    最小栈 题目需求 xff1a 实现一个这样的栈 xff0c 这个栈除了可以进行普通的push pop操作以外 xff0c 还可以进行getMin的操作 xff0c getMin方法被调用后 xff0c 会返回当前栈的最小值 栈里面存放的都是
  • JAVA集合三大类

    JAVA集合三大类 xff1a 1 set set集合无法记住添加的顺序 xff0c 因此set集合中的元素不能重复 2 list xff1a 与数组类似 xff0c list集合可以记住每次添加元素的顺序 xff0c 因此可以根据元素的索
  • 计算机网络词汇解释(二)——交互、 点到点、端到端

    计算机网络词汇解释 xff08 二 xff09 交互 点到点 端到端 本篇文章试图以 xff1a 是什么 xff1f 为什么 xff1f 怎么样 xff1f 三个层次来解释词汇 xff0c 并尽量实现通信的哲学 你传达的复杂信息 xff0c
  • java 字符串 提取 或 去除字母字符串

    提取 linStr span class token operator 61 span linStr span class token punctuation span span class token function replaceAl
  • 数字图像处理---自适应中值滤波实验(MATLAB实现含源码)

    自适应中值滤波实验 xff08 MATLAB实现 xff09 实验目的 1 掌握中值滤波以及自适应中值滤波器的原理以及滤波过程 2 掌握自适应中值滤波的算法设计 3 进一步熟悉MATLAB编程 实验原理 中值滤波的思想就是比较一定领域内的像
  • SpringBoot拦截器执行后,Controller层不执行

    问题描述 xff1a 请求在SpringBoot拦截器中执行后 xff0c 在Controller层不执行 xff0c 前端错误码400 原因分析 xff1a ServletRequest 中通过流获取参数 xff08 getInputSt
  • 一位工作了10年的C++程序员总结出这些忠告

    1 可以考虑先学习C 大多数时候 xff0c 我们学习语言的目的 xff0c 不是为了成为一个语言专家 xff0c 而是希望成为一个解决问题的专家 做一个有用的程序员 xff0c 做一个赚钱的程序员 我们的价值 xff0c 将体现在客户价值
  • 1.6配置通过ftp进行文件操作

    ftp是文件传输的internet标准 xff0c 主要功能是向用户提供本地和远程主机之间的文件传输 版本升级 日志下载 使用c s结构 实验内容 xff1a 模拟企业网络 xff0c pc1访问ftp server 做上传下载操作 出于安
  • 数据库原理及应用复习资料

    单选 xff08 无解析 xff09 xff08 A xff09 是对数据库中全部数据的逻辑结构和特征的描述 A 模式 B 外模式 C 内模式 D 视图 xff08 B xff09 是对数据库用户能够看见和使用的局部数据的逻辑结构和特征的描
  • ae 渲染选项_好的MPlayer选项,以提高视频渲染质量

    ae 渲染选项 MPlayer has lots options for video rendering and filtering Any suggestions on good MPlayer options that improve
  • Nuxt.js 概述 安装 目录结构说明

    什么是SEO SEO xff1a 搜索引擎优化 xff08 Search Engine Optimization xff09 通过各种技术 xff08 手段 xff09 来确保 xff0c 我们的Web内容被搜索引擎最大化收录 xff0c
  • Nuxt.js路由

    路由 路由概述 Nuxt js 依据 pages 目录结构自动生成 vue router 模块的路由配置 要在页面之间切换路由 xff0c 我们建议使用 nuxt link 标签 基础路由 自动生成基础路由规则 情况1 xff1a 访问路径
  • Nuxt.js 视图

    视图 默认模板 定制化默认的 html 模板 xff0c 只需要在应用根目录下创建一个 app html 的文件 默认模板 xff1a span class token doctype span class token punctuatio
  • Nuxt.js整合axios

    整合 axios 默认整合 在构建项目时 xff0c 如果选择axios组件 xff0c nuxt js将自动与axios进行整合 手动整合 步骤1 xff1a package json有axios的版本 34 dependencies 3
  • Vuex 状态树

    根模块数据操作 步骤一 xff1a 创建 store index js 添加一个 counter变量 xff0c 并可以继续累加操作 export const state 61 61 gt counter 0 export const mu
  • Nuxt.js查询学生列表案例

    查询所有的班级 xff1a 后端 父工程pom文件 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 34 http maven apach
  • 大数据面试题

    Hive理论知识汇总 1 Hive和数据库比较 Hive 和数据库除了拥有类似的查询语言 xff0c 再无类似之处 1 xff09 数据存储位置 Hive 存储在 HDFS 数据库将数据保存在块设备或者本地文件系统中 2 xff09 数据更
  • MyBatis Plus

    概述 简介 MyBatis Plus xff08 简称 MP xff09 是一个 MyBatis 的增强工具 xff0c 在 MyBatis 的基础上只做增强不做改变 xff0c 为简化开发 提高效率而生 特点 无侵入 xff1a 只做增强
  • MybatisPlus--QueryWrapper

    QueryWrapper wrapper介绍 Wrapper xff1a 条件构造抽象类 xff0c 最顶端父类 AbstractWrapper xff1a 用于查询条件封装 xff0c 生成 sql 的 where 条件 QueryWra
  • 大数据导论题库

    选择题 1 下面哪个程序负责 HDFS数据存储 C A NameNode B Jobtracker C Datanode D secondaryNameNode 2 HDfS 中的 block 默认保存几份 A A 3份 B 2 份 C 1

随机推荐

  • Oracle Linux7.8 下离线 一键静默安装Oracle12c

    目录 安装前的准备最小安装OracleLinux7 8 xff08 centos7 8一样 xff09 安装oracle需要的依赖包 准备Oracle安装包准备一键安装脚本 并执行脚本使用安装前配置 问题及解决方法 xff1a 错误码ORA
  • MybatisPlus-插件机制-乐观锁-逻辑删除-通用service

    插件机制 自动填充 项目中经常会遇到一些数据 xff0c 每次都使用相同的方式填充 xff0c 例如记录的创建时间 xff0c 更新时间等 我们可以使用MyBatis Plus的自动填充功能 xff0c 完成这些字段的赋值工作 原理 实现元
  • 畅购商城项目--(用户模块+用户注册【用户名占用】)

    搭建环境 4 1 1 后端web服务 xff1a changgou4 service web 修改pom xml文档 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt pro
  • Mysql对于列中存储键值对数据的查询

    对于键值对数据的查询 为了方便查看 xff0c 将其称之为A表 A表 xff1a 可以看到A表中的列有 id inquiry id data key data value date key列中的各个字段对应的data value中的各个数据
  • PathVariable注解的用法以及报错

    今天碰见个很奇怪的问题 xff0c 因为之前在学校没怎么用过 64 PathVariable这个注解 xff0c 但是postman测试时并没有请求到 xff0c 具体如下 接口就是一个简单的查询详情 xff0c 而当我请求postman的
  • 关于@PreAuthorize注解的使用场景

    作用 64 PreAuthorize 能够在执行方法之前进行权限的认证 xff0c 支持Spring EL表达式 xff0c 基于方法注解和权限解决方案 xff0c 并且只有当 64 EnableGlobalMethodSecurity p
  • 获取 当前时间的前五天凌晨0点的时间

    公司今天提到的需求是 xff1a 每日凌晨两点 xff0c 调用方法 xff0c 方法的内容是 xff1a 拉取当前时间的前五天的0点的消息聊天记录 在网上查了好久才找到 xff0c 现在奉上代码 xff1a span class toke
  • 查询 按照 指定时间的前一天的数据

    需求 xff1a 查询按照指定时间的前一天的数据 xff0c 举个例子 xff1a 传入2023 2 27 xff0c 需要获取到2023 2 26 的数据 xff0c 如果这一天没有数据 xff0c 那就需要往前找 xff0c 直到找不到
  • 关于limit的使用场景

    什么情况下使用 limit 1呢 xff1f 当我们写sql语句的时候需要进行全表扫描 xff0c 前提我们已经确认返回的结果只有一条数据的时候 xff0c 使用limit 1 xff0c 因为使用limit 1 之后 xff0c 在查询过
  • 【STM32多级界面】-LCD结构体多级图形界面框架

    STM32多级界面搭建 在实际的项目之中 xff0c 需要用单片机在LCD OLED中搭建一个3级的图形界面 本文的工程文件我将上次传到百度网盘 xff0c 链接在最后的部分 STM32多级界面搭建一 方案选择二 实现效果三 程序设计3 1
  • ubuntu20.04系统安装u盘制作方法

    1 下载UltraISO软碟通 xff0c 下载Ubuntu20 04 2 打卡UltraISO xff0c 如下 3 加载Ubuntu20 04系统iso文件 文件 gt 打开 xff0c 如下 4 点击 启动 gt 写入硬盘映像 结果如
  • vue和react相同点_我试图在React,Unity,Godot,Construct,Game Maker和Phaser中制作相同的2D游戏原型。 这是我发现的。...

    vue和react相同点 I 39 m a tabletop game developer In designing a new card game I decided to build a digital prototype to hel
  • java发送Http请求(获取响应cookie、重定向)

    1 正常的发送Http请求 xff0c 获取返回值 xff08 json格式 xff09 span class token comment 引入的相关包 import org apache http HttpEntity import or
  • MATLAB基础教程-台大郭彦甫-学习笔记

    MATLAB基础教程 台大郭彦甫 学习笔记 最近在跟着郭彦甫老师的教程学matlab xff0c 刚开始用OneNote整理了一些笔记 郭彦甫老师的课讲的超级棒 xff0c 个人认为目前各平台上最好的matlab入门视频 但是2015年的课
  • MATLAB入门:基本操作与矩阵运算

    matlab基本操作与矩阵运算 基本操作把matlab当作计算器使用变量变量类型避免使用与函数 脚本同名的变量 格式控制 矩阵运算矩阵的定义向量乘法 矩阵索引使用 96 96 创建向量使用 96 96 索引 矩阵串联矩阵运算一些特殊矩阵一些
  • MATLAB数学建模 统计

    统计 叙述统计学数值统计图形统计 推论统计学练习 叙述统计学 数值统计 主要介绍一些函数 M 61 mean A 返回 A 沿大小不等于 1 的第一个数组维度的元素的均值 如果 A 是向量 xff0c 则 mean A 返回元素均值 xff
  • MATLAB数学建模 回归与内插

    以下内容为个人笔记 xff0c 部分图片来源于郭老师课件或课程截图 笔记汇总 xff1a MATLAB基础教程 课程视频 xff1a MATLAB基础教程 台大郭彦甫 xff08 14课全 高清 含课件 xff09 回归与内插 多项式曲线拟
  • [Java] [eclipse] Syntax error on token “;“, , expected 错误

    错误提示 eclipse中遇到如下错误 xff1a 错误代码如下 xff1a 错误原因 类体的内容由两部分构成 xff1a 一部分是变量的声明 xff1b 另一部分是方法的定义 注意在方法外 xff0c 只能有变量的声明 xff0c 不能包
  • MacOS 下基于 Docker 安装 SQL Server

    文章目录 MacOS Docker 安装使用 Homebrew 安装手动下载安装修改镜像加速 安装 SQL Server1 拉取并运行容器镜像2 连接 SQL Server2 2 使用 Navicat 连接 SQL Server 解决 SQ
  • 监督学习-线性回归(数学建模)

    这是在学习吴恩达的机器学习课程时 xff0c 一些随笔 课程地址在 coursera ML 文章目录 监督学习 VS 无监督学习Cost function梯度下降学习率 alpha 多元梯度下降特征缩