机器学习12 线性回归:梯度下降,最小二乘法,相关性corr

算法介绍

线性回归:
1,监督算法
2,y是连续的,属于回归算法(KNN是离散的y,属于分类算法)

一元线性回归&多元线性回归

元:未知数个数
次:这个多项式的最高次数

一元线性回归:y=kx+b y=2x+1
多元线性回归:y=k1x1+k2x2+… +b

两直线 平行:k相等
两直线 垂直:k乘积等于-1
两直线交于y轴:b1=b2

最佳拟合线满足的条件

在这里插入图片描述
在这里插入图片描述

构建模型

w 权重weight -----直线斜率
b 偏差bias -----直线 截距

本来是求所有点到直线的绝对值之和最小,为了方便直接求平方和最小
在这里插入图片描述
更进一步,对m个样本的平均最小误差:
误差平方和函数
在这里插入图片描述
之所以是1/2m 而不是 1/m,是为了便于求偏导,求偏导是1/2直接抵消掉了
在这里插入图片描述

线性回归要点总结(重要)

在这里插入图片描述

最小二乘法

在这里插入图片描述

梯度下降法(线性系数计算)

在这里插入图片描述
在这里插入图片描述
我的理解:一个人,站在山顶(红色部分),他想走到山脚(蓝色半部分),他迈出的每一步的步幅(学习率α)是相同的。那么,他往越陡的方向走,就越快到达山脚,这里“越陡”就是沿着斜率方向,而斜率就是求偏导,这也就是为啥线性回归那里误差函数前面有个1/2方便在这里抵消偏导的*2
在这里插入图片描述
在这里插入图片描述

梯度下降和最小二乘法都可以求得 y=ax+b 里面的a和b

链接:梯度下降算法的通俗理解

相关性

pandas中相关系数r可以用 DataFrame.corr()来求

数学模型:
在这里插入图片描述

相关性代码 .corr()

这里直接用上次KNN的那个数据集
导入包

import numpy as np
import pandas as pd
#datasets是自带demo数据集,方便自学
from sklearn import datasets
#train_test_split是数据集划分 8:2  7:3
from sklearn.model_selection import train_test_split
#KNN
from sklearn.neighbors import KNeighborsClassifier

导入数据集,生成x,y

sepal length: 萼片长度(厘米)
sepal width: 萼片宽度(厘米)
petal length: 花瓣长度(厘米)
petal width: 花瓣宽度(厘米)

iris = datasets.load_iris()
x = iris['data']
x
y = iris['target']
y

将数据放进DataFrame
在iris数据里可以看到feature_name在这里插入图片描述

因为做相关性分析必须要表里同时有x和y,所以要加一列y (第46行)
在这里插入图片描述
比如:这个数据的含义是:petal length(花瓣长度)与sepal length(萼片长度)呈正相关,相关性为0.871754
在这里插入图片描述
最终只关心x和y的关系,这里y就是target那一列,所以只用看最后一列:
相关性最强的是petal length 和petal width,sepal length相关性较强
在这里插入图片描述
单独用Series或者DataFrame拎出来看,更直观。
DataFrame就是多了一个[]
在这里插入图片描述

全文代码参考

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值