线性回归

线性回归(一)

匿名 (未验证) 提交于 2019-12-02 23:06:17
什么是机器学习? 机器学习:研究如何通过计算的手段,利用经验来改善系统自身的性能。 机器学习分为监督学习和非监督学习。 监督学习 (Supervised learning) 聚类,clustering )试图使类内差距最小化,类间差距最大化。 线性回归 在对机器学习这门学科有了一个基本的认识后,我们就要正式开始进行模型算法的学习了。 模型定义 损失函数 参数估计 以下笔记来自吴闻达老师的机器学习视频。 模型定义 h(x)代表的是一个假设集合( 损失函数(Cost Function) 之前举的例子,关于房价的预测问题,是一个单变量的回归问题,输入数据只有x维度为1, 我们建立的模型是 ,我们的目标是让这个直线尽可能的拟合所有数据, 即从数据的中心穿过,让我们的每个预测值h(x)与我们的已知数值y尽可能的接近。 那么,我们应该怎么选择最好的模型呢?通过求解参数theta1和theta2. cost function(损失函数) 来测量我们的假设的准确性。 这需要使用来自x的输入 和实际输出y的假设的所有结果的平均差(实际上是平均值的更好的版本),如下。 说明:其实损失函数 J 计算的是h(x)与真实值y之间的垂直距离的平方和均值。 关于为什么多一个1/2的问题,是为了以后求导方便,不用太在意这个。 为了问题描述的方便,首先使用上图右边的简单模型,只有一个参数theta1.

基于R语言的多元线性回归--我国经济增长的定量研究

匿名 (未验证) 提交于 2019-12-02 23:05:13
基于R语言的多元线性回归--我国经济增长的定量研究 一、实验介绍 1.1 实验内容 经济增长一直以来都是我国宏观经济政策的目标之一,研究影响经济增长的因素对促进我国经济快速发展有着重要意义。本实验运用 R 语言编写代码拟合多元线性回归模型,对模型拟合结果进行诊断,即对假设前提进行检验,并选择最优模型,最终进行区间预测,定性的研究影响我国经济增长的因素。 1.2 实验知识点 多元回归模型的理论基础 多元回归模型的拟合 多元回归模型的诊断 多元回归模型的最优选择 多元回归方程的解释 1.3 实验环境 R version 3.4.1 Xfce 终端 1.4 适合人群 本课程难度为简单,属于初级级别课程,适合具有 R 语言基础的用户,熟悉 R 语言基础知识,加深巩固一些基础操作,并学会运用 R 语言的回归方法。 二、理论模型 2.1 多元回归模型 2.2 多元回归模型的假设 假定 1:线性于参数。 假定 2:随机抽样,即随机样本来自假定 1 的总体模型 。 假定 3:自变量之间不存在完全共线性。 假定 4:误差项服从均值为0的正态分布。 假定 5:误差具有同方差性。 2.3 OLS 估计准则 拟合多元线性回归模型需要用到 OLS 估计方法,也叫普通最小二乘估计法。 当满足估计准则,残差平方和最小时的模型参数值就是我们所要的参数估计值。 三、实验步骤 3.1 实验准备 3.1.1

大作业

匿名 (未验证) 提交于 2019-12-02 23:03:14
一、boston房价预测 1. 读取数据集 #导入包 from sklearn.model_selection import train_test_split from sklearn.preprocessing import PolynomialFeatures import pandas as pd#导入数据集from sklearn.datasets import load_bostonfrom sklearn.model_selection import train_test_split #波士顿房价数据集 data = load_boston() # 划分数据集 x_train, x_test, y_train, y_test = train_test_split(data.data,data.target,test_size=0.3) 3. 线性回归模型:建立13个变量与房价之间的预测模型,并检测模型好坏。 #建立模型 from sklearn.linear_model import LinearRegression LR = LinearRegression() LR.fit(x_train,y_train) print('系数:',LR.coef_,"截距:",LR.intercept_)   运行结果: #检测模型好坏 from sklearn.metrics

线性回归与逻辑回归的区别

匿名 (未验证) 提交于 2019-12-02 22:59:29
版权声明:本文为博主原创文章,转载请引用出处! https://blog.csdn.net/likewind1993/article/details/84196135 线性回归 以经典的预测房价为例, 假设样本为( X , y i X, y_i X , y i ),其中X是多维变量( X = ( x 1 , x 2 . . . x n ) X = (x_1, x_2...x_n) X = ( x 1 , x 2 . . . x n ) ),属性包括房子大小,使用年限等,y是对应该样本的房价。 那么我们就可以得到一个预测房价的假设模型, h θ ( X ) = θ T X h_\theta(X) = \theta^T X h θ ( X ) = θ T X 只要我们求出了参数 θ \theta θ ,就完成了模型的求解,可以用求得的模型来预测新的样本。 Note:这里可以看出,这里求出的模型是一个连续函数,即对应样本的输入,输出会有无限可能(可能为负数,可能为0,也可能为正数,既可能为整数,也可能为浮点数) 逻辑回归 同样以经典的预测房价为例, 假设样本为( X , y i X, y_i X , y i ),其中X是多维变量( X = ( x 1 , x 2 . . . x n ) X = (x_1, x_2...x_n) X = ( x 1 , x 2 . . . x n ) )

机器学习 -- 线性回归(Linear Regression)原理及算法实现

匿名 (未验证) 提交于 2019-12-02 22:56:40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Harrytsz/article/details/82817624 标签(空格分隔): MachineLrearning 借鉴至: LionKing数据科学专栏 1. 线性回归的原理 假设有一个数据集,希望通过一些特征 x 1 x_{1} x 1 ,…, x p x_{p} x p 预测目标变量 y y y .最简单的模型是假设目标变量 y y y 是这些特征的某个线性组合: y ≈ a 0 + a 1 x 1 + + a p x p y \approx a_{0} + a_{1}x_{1} + \cdot \cdot \cdot +a_{p}x_{p} y ≈ a 0 + a 1 x 1 + + a p x p 记第 i i i 组观测为 ( x 1 ( i ) , . . . , x n i , y i ) (x_{1}^{(i)},..., x_{n}^{i}, y^{i}) ( x 1 ( i ) , . . . , x n i , y i ) 。总共有 n n n 组观测。 第 i i i 组观测的预测值为 y ^ ( i ) = a 0 + a 1 x 1 ( i ) + . . . + a p x p ( i ) \widehat{y}^{(i)} = a_{0} + a

深度学习之最大似然估计与最小二乘(二)

匿名 (未验证) 提交于 2019-12-02 22:56:40
一、机器学习中的最大似然、最小二乘、梯度下降   最小二乘和极大似然估计是目标函数,梯度下降是优化算法。机器学习的核心是一个模型,一个损失函数loss fuction,加上一个优化的算法。一个目标函数可以用不同的优化算法,不同的目标函数也可以用相同的优化算法。所以最小二乘和极大似然根本不是算法,和梯度下降毫无可比性。   PS:最小二乘和极大似然也不是对立的。最小二乘是从函数形式上来看的,极大似然是从概率意义上来看的。事实上,最小二乘可以由高斯噪声假设+极大似然估计推导出来。当然 极大似然估计 还可以推导出其他的loss function,比如 logistic回归 中,loss function是交叉熵.   最大似然(MLE),最小二乘都是构造 目标函数 的方法,构造出这个目标函数后,我们可以用各种 优化方法 来找到它的极值,这些优化方法中,有一类是使用函数的梯度信息,包括一阶的方法,例如梯度下降,以及二阶的方法,例如牛顿法等。     对于线性回归问题,它的 模型 ,我们采用 最大似然 来构造一个目标函数,最后用 梯度下降 来找到目标函数的最值。当然,对于这个问题,我们也可以不用梯度下降,直接用向量的投影来 直接算出 最优解的表达式(最小二乘)。    实际上可以这样理解,极大似然函数(构造损失函数)+梯度下降可以解决所有回归问题,但多用于logist回归

读周志华《机器学习》个人读书笔记

匿名 (未验证) 提交于 2019-12-02 22:56:40
机器学习所研究的内容:是关于在计算机上通过数据产生“模型”的算法,即为“学习算法”(learning algorithm)。 “模型”指的就是学习所得的结果。 从数据中学得模型的过程称为“学习”或“训练”。 预测的若为离散值,此类学习任务称为“分类”(classification)若为连续值,此类学习任务称之为“回归”(regression)。涉及到两个类别的“二分类”(binary classification)任务,其中一个为“正类”(posive class),另一个为“反类”(negative class)。 根据训练数据是否拥有标记信息,学习任务分为:“监督学习”(supervise learning)和“无监督学习”(unsupervised learning)。分类回归是前者的代表,聚类(clustering)是后者的代表。 学得的模型适用于新样本的能力,称为“泛化”(generalization)能力。 归纳(induction)和演绎(deduction)。 归纳是从特殊到一般的泛化过程,即为从具体的事实中总结出一般的规律。演绎是从一般到特殊的“特化”(specialization)过程,即从基础原理推演出具体状况。 归纳学习有广义和狭义之分,广义的归纳学习相当于从样例中学习,而狭义的归纳学习则要求从训练数据中学得概念,又称为“概念学习”或“概念形成”。

python实现线性回归

匿名 (未验证) 提交于 2019-12-02 22:54:36
定义: 线性回归在假设特征满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。 从最简单的一元线性关系介绍,假设有一组数据型态为 y=theta * x,其中 x = {0, 1, 2, 3, 4, 5}, y = {0, 20, 60, 68, 77, 110}。 我们根据 x, y 模拟出近似的 theta 参数值,进而得到 y=theta * x 模型, y=theta * x 可以预测出 y。 线性回归的经典表达式就是下图的 Y 式子,在 Y 表达式中 theta 的 取值有很多种,没有限定的条件下是不确定的,这时就需要使用损失函数来求解最佳的 theta 值。 通过损失函数求解 theta 值常用有两种方式:最小二乘法 and 梯度下降法。 使用最小二乘法可以直接求出 theta 值,如下图参数 theta 计算结果。但是在计算过程中会耗费大量的CPU等资源。 代码中的 data.csv 数据及源码: https://gitee.com/wangfuchao/linear_regression.git import numpy as np from numpy.linalg import inv from numpy import dot from numpy import mat import pandas as pd dataSet = pd.read

Python3入门机器学习 经典算法与应用(网盘免费分享)

匿名 (未验证) 提交于 2019-12-02 22:51:30
部分课程学习资料截图: 免费课程资料领取目录: Python Flask构建微信小程序订餐系统 (网盘免费分享) 链接:https://pan.baidu.com/s/1rB7h53iNOweyqWTZXQv4cg 提取码:o9el ps:免费分享,如若链接失效请加群( 注意是免费免费免费分享 ) 私聊管理员即可免费领取;群――517432778,点击加群,或扫描二维码 第1章 欢迎来到 Python3 玩转机器学习 欢迎大家来到《Python3玩转机器学习》的课堂。在这个课程中,我们将从0开始,一点一点进入机器学习的世界。本门课程对机器学习领域的学习,绝不不仅仅只是对算法的学习,还包括诸如算法的评价,方法的选择,模型的优化,参数的调整,数据的整理,等等一系列工作。准备好了吗?现在开始我们的机器学习之旅!... 1-1 什么是机器学习 试看 1-2 课程涵盖的内容和理念 试看 1-3 课程所使用的主要技术栈 试看 第2章 机器学习基础 机器学习到底是什么鬼?这一章将带领大家深入理解机器学习的世界,让大家去熟悉那些看似陌生的专业术语。监督学习,非监督学习,半监督学习,增强学习,批量学习,在线学习,参数学习,非参数学习。看完这一章,这些概念你就统统了解啦。不仅如此,本章还包含相当深刻地和机器学习相关的哲学探讨,让你深入思索有关机器学习... 2-1 机器学习世界的数据 2-2

线性回归 python 代码实现

ぐ巨炮叔叔 提交于 2019-12-02 22:15:30
本代码参考自: https://github.com/lawlite19/MachineLearning_Python#%E4%B8%80%E7%BA%BF%E6%80%A7%E5%9B%9E%E5%BD%92 首先,线性回归公式:y = X*W +b 其中X是m行n列的数据集,m代表样本的个数,n代表每个样本的数据维度。则W是n行1列的数据,b是m行1列的数据,y也是。 损失函数采用MSE,采用梯度下降法进行训练 1 .加载数据集并进行读取 def load_csvdata(filename,split,dataType): #加载数据集 return np.loadtxt(filename,delimiter = split,dtype = dataType) def read_data(): #读取数据集 data = load_csvdata("data.txt",split=",",dataType=np.float64) print(data.shape) X = data[:,0:-1] #取data的前两列 y = data[:,-1] #取data的最后一列作为标签 return X,y 2 . 对数据进行标准化 def feature_normalization(X): X_norm = np.array(X) mu = np.zeros((1,X.shape