.线性回归(Linear Regression)
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)相关推荐
- Coursera公开课笔记: 斯坦福大学机器学习第四课“多变量线性回归(Linear Regression with Multiple Variables)”
Coursera公开课笔记: 斯坦福大学机器学习第四课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第 ...
- Coursera公开课笔记: 斯坦福大学机器学习第二课“单变量线性回归(Linear regression with one variable)”
Coursera公开课笔记: 斯坦福大学机器学习第二课"单变量线性回归(Linear regression with one variable)" 发表于 2012年05月6号 由 ...
- Ng第二课:单变量线性回归(Linear Regression with One Variable)
二.单变量线性回归(Linear Regression with One Variable) 2.1 模型表示 2.2 代价函数 2.3 代价函数的直观理解 2.4 梯度下降 2.5 梯度下 ...
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学 ...
- 机器学习方法:回归(一):线性回归Linear regression
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 开一个机器学习方法科普系列:做基础回顾之用,学而时习之:也拿出来与大家分享.数学水平有限,只求易懂,学习与工 ...
- 复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥
复盘:手推LR(逻辑回归logistics regression),它和线性回归linear regression的区别是啥? 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学 ...
- 线性回归 Linear Regression 与逻辑回归 Logistic Regression
1 线性回归 Linear Regression 理论 线性回归模型研究多个变量x与y之间的关系,通过回归模型预测位置样本的数据. 假设函数 损失函数 损失函数寻优,最小二乘法 即: 注:最小二乘法需 ...
- 西瓜书+实战+吴恩达机器学习(四)监督学习之线性回归 Linear Regression
文章目录 0. 前言 1. 线性回归参数求解方法 2. 线性回归正则化 2.1. 岭回归 2.2. LASSO 3. 局部加权线性回归 4. 广义线性模型 如果这篇文章对你有一点小小的帮助,请给个关注 ...
- 多元线性回归算法: 线性回归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,. ...
- sklearn 线性回归linear regression做分类任务
测试了一下使用linear regression做分类任务准确率的确很高啊,我的的思路是: 需要预测的是 0 1 ,而linear regression本来的预测值是连续变量 把linear regr ...
最新文章
- 【java】兴唐第二十五节课小程序学生卡转账小系统(自己写的异常)
- 机器学习新手们 我这有本秘笈要不要?
- 关于ASp.net中的session失效问题的解决办法之一
- 如何搭建一个内部组件共享平台
- Spring的PropertyPlaceholderConfigurer应用
- python 接口设计_手把手教你在机器学习过程设计Python接口
- bilstmcrf词性标注_BiLSTM+CRF 的实现详解
- python读取dat文件并保存为Excel格式
- python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...
- 用技术去掉搜索引擎中的死链接
- 【LaTeX】Research Proposal的模板、一些技巧(包含:横线的制作,标题和摘要的排版)
- [Jzoj]3457. 沙耶的玩偶
- docker容器满了,如何清理内存
- C# Excel导出超出65536行报错 Invalid row number (65536) outside allowable range (0..65535)
- matlab位移反分析公式,位移反分析.doc
- python发微信红包_微信现金红包 python
- 【文本生成】评价指标:事实一致性Evaluating the Factual Consistency of Abstractive Text Summarization
- ACC算法学习笔记(一):ACC法规
- 机器人行业中我们常说的roll、yaw、pitch是什么?
- python分苹果问题_分苹果问题的C++和Python实现