精华内容
下载资源
问答
  • 本文的模型实例来自课程练习——根据房屋大小和房屋数量的统计数据来预估某房产的售价,多元线性回归的数据集在ex1data2文件中可以找到,一元数据集在ex1data1中。 PS:由于一元线性回归也属于一种特殊的多元线性...

    简述

    最近在coursera上看Stanford的经典机器学习课程,总体上感觉跟国内某大学的研究生课程内容其实差不多。先从经典的线性回归模型开始写起吧。本文的模型实例来自于课程练习——根据房屋大小和房屋数量的统计数据来预估某房产的售价,多元线性回归的数据集在ex1data2文件中可以找到,一元数据集在ex1data1中。

    PS:由于一元线性回归也属于一种特殊的多元线性回归,我决定偷懒直接上多元线性回归。

    算法过程

    主要包括几个方面:

    • 数据清理(本例中主要是feature normalize)
    • 算法
    • gradient descent(梯度下降)
    • normal equation(正规方程)

    数据清理

    主要是让数据集处于一种“密集稳定”的状态,否则不经过整理的数据集会让你在选择学习率的时候异常尴尬。(我亲自试过,你也可以试试不清理数据直接用梯度下降,看看会发生什么)不整理数据,有时候你可能会只能选用非常小的学习率,才能保证梯度下降的时候不会“跑飞”。(迭代到不收敛)然而这个学习率可能会非常的小,导致你在训练的时候,可能要迭代几千万次才能训练一点点,甚至根本无法训练。

    一般来说,我们选择将数据“正态化”.根据统计学基础知识,算出均值和标准差,使得数据呈标准正态分布即可。在matlab中,均值函数为mean(),标准差函数为std()

    梯度下降

    想要使用一个线性方程来拟合数据集,当数据集是N元的时候,则需要选择N个变量来与这些未知数组成线性方程,这N个变量记作theta。在迭代的首次,当然可以随意选择一组未知数开始。
    接下来,就是选择一个代价函数cost(),注意此函数的自变量当然是N个theta,使得代价函数最小(与实际情况拟合的最好)。一般来说,我们选择最小二乘法来判断代价的大小。

    接下来,为了判断N元函数cost()的最小值点,就是一个求导的过程了。这里要插一句题外话,线性回归代价函数的最小值就是极小值,因此不存在迭代到某个极小值之后卡死在某点而不能继续寻找最小值的情况,具体的可以自己证明。

    梯度下降算法采用了梯度的概念,在某点沿着梯度的方向移动一小段距离,然后重复迭代这个过程,直到完成收敛。

    正规方程

    正规方程前面与梯度下降一样,只不过最小二乘拟合的答案直接通过数学方法由线性代数方程解出来。优点是:不需要迭代,不需要清理数据(因为不需要调整学习率,所以自然不需要整理数据呀),程序写起来非常简单。缺点是:当参数过多的时候,逆矩阵运算量太大;当参数存在线性关系的时候,逆矩阵当然是不存在的~这个时候你没法求逆矩阵了(当然可以用伪逆矩阵来求,但是不推荐)。不过就我个人经验而言,一般来说参数不太可能会出现线性相关的情况。如果出现了,可能会存在意义有重复参数,这个时候就要清理一下数据集,把不必要的参数项给去掉,就不会求解的时候出现矩阵不可逆的尴尬情况了。

    程序

    程序使用matlab写的,coursera是可以提交答案的~具体的提交方法可以参考pdf说明。

    多元线性回归的主函数:

    
    %% Initialization
    
    %% ================ Part 1: Feature Normalization ================
    
    %% Clear and Close Figures
    clear ; close all; clc
    
    fprintf('Loading data ...\n');
    
    %% Load Data
    data = load('ex1data2.txt');
    X = data(:, 1:2);
    y = data(:, 3);
    m = length(y);
    
    % Print out some data points
    fprintf('First 10 examples from the dataset: \n');
    fprintf(' x = [%.0f %.0f], y = %.0f \n', [X(1:10,:) y(1:10,:)]');
    
    fprintf('Program paused. Press enter to continue.\n');
    pause;
    
    % Scale features and set them to zero mean
    fprintf('Normalizing Features ...\n');
    
    [X, mu, sigma] = featureNormalize(X);
    % Add intercept term to X
    X = [ones(m, 1) X];
    std(X(:,2))
    std(X(:,2))
    X(:,2)
    
    %% ================ Part 2: Gradient Descent ================
    
    fprintf('Running gradient descent ...\n');
    
    % Choose some alpha value
    alpha = 0.01;
    num_iters = 400;
    
    % Init Theta and Run Gradient Descent 
    theta = zeros(3, 1);
    computeCostMulti(X,y,theta)
    [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters);
    
    % Plot the convergence graph
    figure;
    plot(1:numel(J_history), J_history, '-b', 'LineWidth', 2);
    xlabel('Number of iterations');
    ylabel('Cost J');
    
    % Display gradient descent's result
    fprintf('Theta computed from gradient descent: \n');
    fprintf(' %f \n', theta);
    fprintf('\n');
    
    % Estimate the price of a 1650 sq-ft, 3 br house
    % Recall that the first column of X is all-ones. Thus, it does
    % not need to be normalized.
    price = 0; % You should change this
    parameter = [1650,3];
    parameter = (parameter-mu)./sigma;
    parameter = [1,parameter];
    price = theta'*parameter';
    
    fprintf(['Predicted price of a 1650 sq-ft, 3 br house ' ...
             '(using gradient descent):\n $%f\n'], price);
    
    fprintf('Program paused. Press enter to continue.\n');
    pause;
    
    %% ================ Part 3: Normal Equations ================
    
    fprintf('Solving with normal equations...\n');
    
    %% Load Data
    data = csvread('ex1data2.txt');
    X = data(:, 1:2);
    y = data(:, 3);
    m = length(y);
    
    % Add intercept term to X
    X = [ones(m, 1) X];
    
    % Calculate the parameters from the normal equation
    theta = normalEqn(X, y);
    
    % Display normal equation's result
    fprintf('Theta computed from the normal equations: \n');
    fprintf(' %f \n', theta);
    fprintf('\n');
    
    
    % Estimate the price of a 1650 sq-ft, 3 br house
    
    price = 0; % You should change this
    parameter = [1,1650,3];
    price = theta'*parameter';
    
    
    fprintf(['Predicted price of a 1650 sq-ft, 3 br house ' ...
             '(using normal equations):\n $%f\n'], price);
    
    

    多元线性回归的梯度下降函数:

    function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)
    
    % Initialize some useful values
    m = length(y); % number of training examples
    J_history = zeros(num_iters, 1);
    
    for iter = 1:num_iters
        delta = zeros(size(X,2),1);
        for i=1:size(X,2)
            delta(i,1)=sum((theta'*X'-y').*(X(:,i))')*alpha/m;
        end
        theta = theta - delta;
    
        % Save the cost J in every iteration    
        J_history(iter) = computeCostMulti(X, y, theta);
    
    end
    
    end
    

    数据正态化整理:

    function [X_norm, mu, sigma] = featureNormalize(X)
    X_norm = X;
    mu = zeros(1, size(X, 2));
    sigma = zeros(1, size(X, 2));
    for i=1:size(X,2)
        mu(1,i)=mean(X(:,i));
        sigma(1,i)=std(X(:,i));
    end
    
    for i=1:size(X,2)
        X_norm(:,i)= (X_norm(:,i)-mu(1,i))/sigma(1,i);
    end    
    
    end

    正规方程函数:

    function [theta] = normalEqn(X, y)
    theta = zeros(size(X, 2), 1);
    
    theta = (X'*X)^(-1)*X'*y;
    
    end
    

    总结

    总体来说,是一个比较简单的算法,高等数学和线性代数基础扎实的同学理解起来应该非常容易。

    转载于:https://www.cnblogs.com/violetin/p/5906194.html

    展开全文
  • cpu模型机课程设计.zip

    2010-12-07 13:59:04
    数据通路不同,指令所经过的操作过程也不同,机器的结构也就不—样,因此数据通路的设计是至关重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。 数据远路的设计,目前还没有非常标准的方法...
  • 为了提高算法工程师训练模型的效率,我们使用 Alluxio 加速训练任务读取海量视频、图片等样本文件,并针对我们的应用场景,从元数据管理和读写分离等方向入手对 Alluxio 进行改造,实现了文件读写性能 50% 以上的...

    七牛云 Atlab 实验室专注于机器视觉方向的深度学习研究。我们团队针对深度学习训练打造了高效的训练平台 AVA,深度整合了存储和计算资源。为了提高算法工程师训练模型的效率,我们使用 Alluxio 加速训练任务读取海量视频、图片等样本文件,并针对我们的应用场景,从元数据管理和读写分离等方向入手对 Alluxio 进行改造,实现了文件读写性能 50% 以上的提升,同时显著降低了存储系统的成本和容量风险。














    原文:https://www.slidestalk.com/s/Alluxio_AVA_Let_the_depth_training_data_cloud

    展开全文
  • 我们提出了一种基于机器学习的方法,以丰富仿真库并提高校准精度。 这种方法用途广泛,可用于根据使用各种模态获得的数据校准其他超弹性变形模型。 这种概率校准方法可以成为评估和传达在诸如医疗设备等超弹性NiTi...
  • LINGO软件的学习

    2009-08-08 22:36:50
    数据部分提供了模型相对静止部分和数据分离的可能性。显然,这对模型的维护和维数的缩放非常便利。 数据部分以关键字“data:”开始,以关键字“enddata”结束。在这里,可以指定集成员、集的属性。其语法如下: ...
  • 必须通过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任何一个 DBMS 都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中,模型有不同的层次。根据模型应用的不同...
  • BertNER、新闻事件线索抽取、2019年百度的三元组抽取比赛:“科学空间队”源码、基于依存句法的开放域文本知识三元组抽取和知识库构建、中文的GPT2训练代码、ML-NLP - 机器学习(Machine Learning)NLP面试中常考到的...
  • 2016.12.16 ...* 支持传递元数据(坐标轴标签)的算术运算和缩减。 * 灵活处理丢失数据。 * 在常用的基于数据的数据库(例如基于SQL)中的合并和其它关系操作。 《使用Python Pandas处理亿级数据》 ...
  • 过 《 概论 》 的学习真正掌握数据模型的概念和作用。数据模型是数据库系统的基础。任 何一个 DBMS 都以某一个数据模型为基础,或者说支持某一个数据模型。数据库系统中, 模型有不同的层次。根据模型应用的不同目的...
  • 机器学习:逻辑回归,决策树,随机森林,核岭回归,支持向量回归和人工神经网络(多层感知器)。 ODE的数值积分和求解:数值积分和求解常微分方程的方法。 PDE的数值求解:用于求解偏微分方程的有限法和有限差分法...
  • 机器学习和深度学习的区别,各自适用什么问题 CNN基本原理,CNN的那些部分是神经 CNN去掉激活函数会怎么样 介绍YOLO/SSD/RCNN/Faster-RCNN/Mask-RCNN算法 YOLO v1/v2/v3 区别细节,SSD如何改进有思考过嘛,...
  • awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web 框架、网络爬虫、网络内容提取、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。由「开源前哨...
  • 全程无需修改一行代码,根据模板生成模型配置,生成的配置文件可直接用模型部署服务。 本项目对应的部署服务支持同时部署多套模型模型支持热拔插,版本迭代等,业务层可拓展颜色提取,算术运算等常见的验证码解决...
  • awesome-cpp 就是 fffaraz 发起维护的 C++ 资源列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 中文版由开源前哨和CPP开发者微信公号团队维护更新,在 GitHub 已...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 的 声 明 .112 10.2 类 的 成 员 .113 10.3 构造函数和析构函数 .119 10.4 小 ...
  • C#微软培训资料

    2014-01-22 14:10:17
    9.2 对象的模型技术 .103 9.3 面向对象的分析 .105 9.4 面向对象的设计 .107 9.5 小 结 .110 第十章 类 .112 10.1 类 的 声 明 .112 10.2 类 的 成 员 .113 10.3 构造函数和析构函数 .119 10.4 小 ...
  •  1、元数据访问,添加删除,按块拆分, 高性能并行读写,排他读写(按文件部分内容锁定),随机读写,集群复制等  2、对集群文件的解析支持(包括按行,按分割符,按最后标识读取)  3、对整形数据的高性能读写支持...
  • fourinone-3.04.25

    2013-12-11 21:35:04
    1、元数据访问,添加删除,按块拆分, 高性能并行读写,排他读写(按文件部分内容锁定),随机读写,集群复制等 2、对集群文件的解析支持(包括按行,按分割符,按最后标识读取) 3、对整形数据的高性能读写支持...
  • 也可以用于训练【标题生成】模型,或训练【关键词生成】模型(选关键词内容不同标题的数据); 亦可以通过新闻渠道区分出新闻的类型。 结构: {'news_id': <news_id>,'title':<title>,'content':<...
  • pytorch教程

    2019-01-18 00:34:18
     任何机器学习在处理之前都要及逆行数据读取和预处理.  torch.utils.data.Dataset 是代表这一数据的抽象类, 只需定义_len_ 和 _getitem_ 这两个函数就可以继承并重写这个抽象类 from torch.utils.data import ...
  • 机器学习:常用机器学习库 微软办公软件 自然语言处理 网络:与网络各层配合使用的库 视频:用于处理视频的库 其他 常用包 常用包 说明 fmt 实现格式化的输入输出操作,其中的fmt.Printf()和fmt....
  • 26 有导师学习神经网络的分类——鸢尾花种类识别(郁磊) 有导师学习神经网络以其良好的学习能力广泛应用各个领域中,其不仅可以解决拟 合回归问题,亦可以用于模式识别、分类识别。本章将继续介绍两种典型的有...
  • 11.5 读取文件元数据 11.6 共享文件 11.7 I/O重定向 11.8 标准I/O 11.9 综合:我该使用哪些I/O函数? 11.10 小结 第12章 网络编程 12.1 客户端-服务器编程模型 12.2 网络 12.3 全球IP因特网 12.4 套接字...
  • 知识图谱助力法律智能,能够在一定程度上利用现有大数据以及机器学习/深度学习与自然语言处理技术,提供一些智能的解决方案.本项目将完成两个大方向的工作: 1, 以罪名为核心,收集相关数据,建成基本的罪名知识图谱,法务...
  • 在选择器件大小时,正脉冲有效宽度 2 个机器周期就可以有效的复位, 一般选择C3 为0.1uF 的独石电容,R1 为1K 的电阻,正脉冲有效宽度为: ln10*R1*C3=230>2,即可以该电路可以产生有效复位。 ( 3 ) 程序下载线...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

机器学习模型文件于元数据