1.1什么是线性回归
我们首先用弄清楚什么是线性,什么是非线性。

(1)线性:两个变量之间的关系是一次函数关系的——图象是直线,叫做线性。
注意:题目的线性是指广义的线性,也就是数据与数据之间的关系。

(2)非线性:两个变量之间的关系不是一次函数关系的——图象不是直线,叫做非线性。
相信通过以上两个概念大家已经很清楚了,其次我们经常说的回归回归到底是什么意思呢。

回归:人们在测量事物的时候因为客观条件所限,求得的都是测量值,而不是事物真实的值,为了能够得到真实值,无限次的进行测量,最后通过这些测量数据计算回归到真实值,这就是回归的由来。
通俗的说就是用一个函数去逼近这个真实值,那又有人问了,线性回归不是用来做预测吗?是的,通过大量的数据我们是可以预测到真实值的
1.2线性回归要解决什么问题

对大量的观测数据进行处理,从而得到比较符合事物内部规律的数学表达式。也就是说寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。解决的就是通过已知的数据得到未知的结果。例如:对房价的预测、判断信用评价、电影票房预估等。

以下是python代码实现线性回归算法:

from numpy import *
import pandas as pd

# 导入数据
def loadDataSet(fileName):
    numFeat = len(open(fileName).readline().split('  ')) - 1
    dataMat = []
    labelMat = []
    fr = open(fileName)
    for line in fr.readlines():
        lineArr = []
        curLine = line.strip().split('  ')
        for i in range(numFeat):
            lineArr.append(float(curLine[i]))
        dataMat.append(lineArr)
        labelMat.append(float(curLine[-1]))
    return dataMat, labelMat

# 求回归系数
def standRegres(xArr, yArr):
    xMat = mat(xArr)
    yMat = mat(yArr).T
    xTx = xMat.T * xMat
    if linalg.det(xTx) == 0.0:  # 判断行列式是否为0
        print("行列式为0")
        return
    ws = xTx.I * (xMat.T * yMat)  # 也可以用NumPy库的函数求解:ws=linalg.solve(xTx,xMat.T*yMatT)
    return ws

if __name__ == "__main__":
    xArr, yArr = loadDataSet('Salary_Data.txt')
    ws = standRegres(xArr, yArr)
    xMat = mat(xArr)
    yMat = mat(yArr)
    # 预测值
    yHat = xMat * ws

    # 计算预测值和真实值得相关性
    corrcoef(yHat.T, yMat)  # 0.986

    # 绘制数据集散点图和最佳拟合直线图
    # 创建图像并绘出原始的数据
    import matplotlib.pyplot as plt

    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.scatter(xMat[:, 1].flatten().A[0], yMat.T[:, 0].flatten().A[0])
    # 绘最佳拟合直线,需先要将点按照升序排列
    xCopy = xMat.copy()
    xCopy.sort(0)
    yHat = xCopy * ws
    ax.plot(xCopy[:, 1], yHat)
    plt.show()

.线性回归(Linear Regression)相关推荐

  1. Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”

    Coursera公开课笔记: 斯坦福大学机器学习第四课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第 ...

  2. Coursera公开课笔记: 斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”

    Coursera公开课笔记: 斯坦福大学机器学习第二课"单变量线性回归(Linear regression with one variable)" 发表于 2012年05月6号 由 ...

  3. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  4. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学 ...

  5. 机器学习方法:回归(一):线性回归Linear regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 开一个机器学习方法科普系列:做基础回顾之用,学而时习之:也拿出来与大家分享.数学水平有限,只求易懂,学习与工 ...

  6. 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥

    复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥? 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学 ...

  7. 线性回归 Linear Regression 与逻辑回归 Logistic Regression

    1 线性回归 Linear Regression 理论 线性回归模型研究多个变量x与y之间的关系,通过回归模型预测位置样本的数据. 假设函数 损失函数 损失函数寻优,最小二乘法 即: 注:最小二乘法需 ...

  8. 西瓜书+实战+吴恩达机器学习(四)监督学习之线性回归 Linear Regression

    文章目录 0. 前言 1. 线性回归参数求解方法 2. 线性回归正则化 2.1. 岭回归 2.2. LASSO 3. 局部加权线性回归 4. 广义线性模型 如果这篇文章对你有一点小小的帮助,请给个关注 ...

  9. 多元线性回归算法: 线性回归Linear Regression、岭回归Ridge regression、Lasso回归、主成分回归PCR、偏最小二乘PLS

    0. 问题描述 输入数据:X=(x1,x2,....,xm)\mathbf{X} = (x_1, x_2,...., x_m)X=(x1​,x2​,....,xm​), 相应标签 Y=(y1,y2,. ...

  10. sklearn 线性回归linear regression做分类任务

    测试了一下使用linear regression做分类任务准确率的确很高啊,我的的思路是: 需要预测的是 0 1 ,而linear regression本来的预测值是连续变量 把linear regr ...

最新文章

  1. 【java】兴唐第二十五节课小程序学生卡转账小系统(自己写的异常)
  2. 机器学习新手们 我这有本秘笈要不要?
  3. 关于ASp.net中的session失效问题的解决办法之一
  4. 如何搭建一个内部组件共享平台
  5. Spring的PropertyPlaceholderConfigurer应用
  6. python 接口设计_手把手教你在机器学习过程设计Python接口
  7. bilstmcrf词性标注_BiLSTM+CRF 的实现详解
  8. python读取dat文件并保存为Excel格式
  9. python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
  10. 用技术去掉搜索引擎中的死链接
  11. 【LaTeX】Research Proposal的模板、一些技巧(包含:横线的制作,标题和摘要的排版)
  12. [Jzoj]3457. 沙耶的玩偶
  13. docker容器满了,如何清理内存
  14. C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)
  15. matlab位移反分析公式,位移反分析.doc
  16. python发微信红包_微信现金红包 python
  17. 【文本生成】评价指标:事实一致性Evaluating the Factual Consistency of Abstractive Text Summarization
  18. ACC算法学习笔记(一):ACC法规
  19. 机器人行业中我们常说的roll、yaw、pitch是什么?
  20. python分苹果问题_分苹果问题的C++和Python实现

热门文章

  1. GoJS研究,简单图表制作。
  2. 河内塔问题解决方案2(Common Lisp实现)
  3. 【二十一】Python全栈之路--构造方法_继承_登录注册
  4. 微信小程序:纯头像微信小程序源码下载,多分类头像自动采集无需服务器和域名
  5. 项目规划管理 - 1
  6. 基于HTML5拖放API:目前市面上的一些修图工具软件带有自动为图片添加不同款式相框的功能,用户可以选择本地图片文件然后为其添加相框效果
  7. verilog 实现常用加法器
  8. 什么是Extreme Programming
  9. 免费虚拟主机怎么申请?
  10. C/C++面试笔试详细总结—基本概念及其它问答题