机器学习之线性回归
小标 2018-09-21 来源 : 阅读 1972 评论 0

摘要:本文主要向大家介绍了机器学习之线性回归,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习之线性回归,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

线性回归
 
人工智能是机器学习的父类;机器学习是深度学习的父类
 
1. 怎么做线性回归?
2. 理解回归 -- 最大似然函数
3. 应用正态分布概率密度函数 -- 对数总似然
4. 推导出损失函数 -- 推导出解析解        
5. 代码实现解析解的方式求解 -- 梯度下降法的开始 -- sklearn模块使用线性回归
 
线性: y = a * x         一次方的变化
回归:回归到平均值
 
简单线性回归
算法 = 公式
 
一元一次方程组
一元:一个x   影响y的因素,维度
一次:x的变化    没有非线性的变化
y = a * x + b
x1,y1        x2,y2        x3,y3        x4,y4 ...
误差最小的 -- 最优解
 
做机器学习,没有完美解,只有最优解
做机器学习就是要以最快的速度,找到误差最小的最优解
 
一个样本的误差:
yi^ - yi
找到误差最小的时刻;为了去找到误差最小的时刻,需要反复尝试,a,b
根据 最小二乘法 去求得误差
反过来误差最小时刻的a,b就是最终最优解模型!!!
 
 
===========================================================================
 
多元线性回归
y = a*x+b
y = w0+w1*x1+w2*x2
向量转置相乘x0=1
不止两个特征
截距(w0),什么都不做,本身就存在那里(物体本身就漂亮,不加修饰也漂亮)
x1...xn:n个特征
本质上就是算法(公式)变换为了多元一次方程组
y = w1 * x1 + w2 * x2 + w3 * x3 + ... +wn * xn + w0 * x0        (x0恒为1时可不写)
 
 
===========================================================================
 
最大似然估计:
是一种统计方法,用来求一个样本集的相关概率密度函数的参数
‘似然’(likelihood):即‘可能性’,通俗易懂叫法:‘最大可能性估计’
likelihood 与 probability 同义词
 
 
 
 
中心极限定理:

是概率论中讨论 随机变量 序列部分和分步渐进于正态分布的一类定理

 
误差(ε):

第i个样本实际的值 等于 预测的值 加 误差

 

假定所有的样本都是独立的,有上下的震荡,震荡认为是随机变量,足够多 的随机变量叠加之后形成的分布,根据中心极限定理,它服从的就是正态分布,因为它是正常状态下的分布

 
最小二乘法:
 
概率密度函数:
最简单的概率密度函数:均匀分布的密度函数,
 
 
一维正态分布
若随机变量X服从一个位置参数为μ、尺度参数为σ的概率分布,且其概率密度函数为
 
 
 
则这个随机变量就称为正态随机变量,正态随机变量服从的分布就称为正态分布
 
标准正态分布
当μ=0,σ=1时,正态分布就成为标准正态分布:
 
 
求总似然:
 
 
 
因为连乘太麻烦,故想到用log函数使得连乘变成相加,log函数为单调递增函数,故可以.
 
 
 
通过最大似然估计的思想,利用了正态分布的概率密度函数,推导出了损失函数
 
误差函数的另一种表达:
 
 
找损失最小的过程就是求极值的过程(导数为0)
 
 
 
解析解:
 
 
 
总结:
(1) 为什么求总似然的时候,要用正态分布?
中心极限定理,如果假设样本之间是独立事件,误差变量随即产生,那么就服从正太分布.
 
(2) 总似然不是概率相乘吗?为什么用了概率密度函数的f(xi)进行了相乘?
因为概率不好求,所以当我们可以找到概率密度相乘最大的时候,就相当于找到了概率相乘最大的时候.
 
(3) 概率为什么不好求?
因为求的是面积,需要积分,麻烦。不用去管数学上如何根据概率密度函数去求概率.
 
(4) 总似然最大和最优解有什么关系?
当我们找到可以使得总似然最大的条件,也就是可以找到我们的DataSet数据集最吻合某个正态分布,即找到了最优解
 
通过最大似然估计的思想,利用了正态分布的概率密度函数,推导出了损失函数
 
(5) 什么是损失函数?
一个函数最小,就对应了模型是最优解,预测历史数据可以最准.
 
(6) 线性回归的损失函数是什么?
最小二乘法;MSE(mean squared error)[平方均值损失函数,均方误差]
 
 
(6) 线性回归的损失函数有哪些假设?
样本独立;随机变量;服从正态分布
 
(7) ML学习特点:
不强调模型100%正确;
强调模型是有价值的,堪用的.
 
通过对损失函数求导,来找到最小值,求出θ的最优解;
 
 
代码实现解析解的方式求解
 

import numpy as np
import matplotlib.pyplot as plt
 
#这里相当于是随机X维度X1,rand是随机均匀分布
#rand():返回0-1之间的数
X=2*np.random.rand(100,1)#100行1列
 
#人为的设置真实的Y一列,np.random.randn(100,1)是设置error(方差),randn是标准正态分布
#np.random.randn(100,1)返回标准正态分布上的一个随机值,取0的概率比较大一些
#(4+3*X)是预测值、np.random.randn(100,1)是误差ε
#预测值==W的转置*X
#4==W0;3==W1
y=4+3*X+np.random.randn(100,1)#100行1列
 
#整合X0和X1
#np.ones(100,1)输出100行1列个1
X_b=np.c_[np.ones((100,1)),X]
print(X_b)
 
#常规等式求解θ(theta)
#inv:求逆、dot:点乘、.T:转置
theta_best=np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
 
 
print(theta_best)
 
 
#创建测试集里面的X1
X_new=np.array([[0],[2]])
X_new_b=np.c_[(np.ones((2,1))),X_new]
print(X_new_b)
y_predict=X_new_b.dot(theta_best)
print(y_predict)
‘‘‘
[[3.98173243]
[10.17046616]]
‘‘‘
 
 

 
 
plt.plot(X_new,y_predict,‘r-‘)
plt.plot(X,y,‘b.‘)
plt.axis([0,2,0,15])#标注x轴的范围是0-2,y的范围是0-15
plt.show()
 
 

 
 
实际上当数据特别多的时候,用上述方法求解特别慢
  

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved