Python人工智能经典算法之线性回归
程序员文章站
2024-03-15 13:10:35
...
1.9 k近邻算法总结[**]
优点:
1.简单有效
2.重新训练代价底
3.适合类域交叉样本
4.适合大样本自动分类
缺点:
1.惰性学习
2.类别评分不是规格化
3.输出可解释性不强
4.对不均衡的样本不擅长
样本不均衡:收集到的数据每个类别占比严重失衡
5.计算量较大
1.10 交叉验证和网格搜索[****]
1.交叉验证
1.定义:
将拿到的训练数据,分为训练和验证集
*折交叉验证
2.分割方式:
训练集:训练集+验证集
测试集:测试集
3.为什么需要交叉验证
为了让被评估的模型更加准确可信
注意:交叉验证不能提高模型的准确率
2.网格搜索
超参数:
sklearn中,需要手动指定的参数,叫做超参数
网格搜索就是把这些超参数的值,通过字典的形式传递进去,然后进行选择最优值
3.api:
sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)
estimator -- 选择了哪个训练模型
param_grid -- 需要传递的超参数
cv -- 几折交叉验证
1.11 案例2:预测facebook签到位置[***]
# 1、获取数据集
# 2.基本数据处理
# 2.1 缩小数据范围
# 2.2 选择时间特征
# 2.3 去掉签到较少的地方
# 2.4 确定特征值和目标值
# 2.5 分割数据集
# 3.特征工程--特征预处理(标准化)
# 4.机器学习--knn+cv
# 5.模型评估
2. 线性回归
2.1 线性回归简介
1.定义
利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
2.表示方式:
h(w) = w1x1 + w2x2 + w3x3 + ... + b
= W转置x + b
3.分类
线性关系
非线性关系
2.2 线性回归api初步使用
1.api
sklearn.linear_model.LinearRegression()
属性:
LinearRegression.coef_:回归系数
2.4 线性回归的损失和优化[****]
1.损失
最小二乘法
2.优化
正规方程
梯度下降法
3.正规方程 -- 一蹴而就
利用矩阵的逆,转置进行一步求解
只是适合样本和特征比较少的情况
4.梯度下降法 -- 循序渐进
举例:
山 -- 可微分的函数
山底 -- 函数的最小值
梯度的概念
单变量 -- 切线
多变量 -- 向量
梯度下降法中关注的两个参数
α -- 就是步长
步长太小 -- 下山太慢
步长太大 -- 容易跳过极小值点(*****)
为什么梯度要加一个负号
梯度方向是上升最快方向,负号就是下降最快方向
5.梯度下降法和正规方程对比:
梯度下降 正规方程
需要选择学习率 不需要
需要迭代求解 一次运算得出
特征数量较大可以使用 需要计算方程,时间复杂度高O(n3)
6.选择:
小规模数据:
LinearRegression(不能解决拟合问题)
岭回归
大规模数据:
SGDRegressor
2.5 梯度下降法介绍[###]
1 全梯度下降算法(FG)
在进行计算的时候,计算所有样本的误差平均值,作为我的目标函数
2 随机梯度下降算法(SG)
每次只选择一个样本进行考核
3 小批量梯度下降算法(mini-bantch)
选择一部分样本进行考核
4 随机平均梯度下降算法(SAG)
会给每个样本都维持一个平均值,后期计算的时候,参考这个平均值
2.6 api
正规方程
sklearn.linear_model.LinearRegression(fit_intercept=True)
梯度下降法
2.7 案例[**]
# 1.获取数据
# 2.数据基本处理
# 2.1 数据集划分
# 3.特征工程 --标准化
# 4.机器学习(线性回归)
# 5.模型评估
上一篇: Javascript 求100以内的质数