sklearn-线性回归、岭回归、逻辑回归、聚类

sklearn-线性回归、岭回归、逻辑回归、聚类

一.线性回归
1.概念
试图学得一个通过属性的线性组合来进行预测的函数:
f(x)=w_1x_1+w_2x_2+…+w_dx_d+b
w为权重,b称为偏置项,可以理解为:w_0×1
比如:
期末成绩:0.7×考试成绩+0.3×平时成绩
西瓜好坏:0.2×色泽+0.5×根蒂+0.3×敲声
在这里插入图片描述
注意:
预测结果与真实值是有一定的误差
在这里插入图片描述
在这里插入图片描述
2.损失函数
在这里插入图片描述
①最小二乘法之正规方程
在这里插入图片描述
②梯度下降
在这里插入图片描述
例子:
在这里插入图片描述
α为学习速率,需要手动指定,在这里插入图片描述
表示方向。
理解:沿着这个函数下降的方向找,最后就能找到山谷的最低点,然后
更新W值

使用:面对训练数据规模十分庞大的任务
在这里插入图片描述
3.API

from sklearn.linear_model import LinearRegression
#正规方程
from sklearn.linear_model import SGDRegressor
#梯度下降

4.回归性能评估
(均方误差(Mean Squared Error)MSE) 评价机制:
在这里插入图片描述
在这里插入图片描述
①sklearn回归评估API

from sklearn.metrics import mean_squared_error

mean_squared_error(y_true, y_pred)
均方误差回归损失
y_true:真实值
y_pred:预测值
return:浮点数结果
5.正规方程与梯度下降对比
在这里插入图片描述
特点:线性回归器是最为简单、易用的回归模型。
从某种程度上限制了使用,尽管如此,在不知道特征之
间关系的前提下,我们仍然使用线性回归器作为大多数
系统的首要选择。
小规模数据:LinearRegression(不能解决拟合问题)以及其它
大规模数据:SGDRegressor
6.遇到的问题
问题:训练数据训练的很好啊,误差也不大,为什么在测试集上
面有问题呢?
在这里插入图片描述
在这里插入图片描述
经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的。简单的认为有这些特征的都是天鹅。因为机器学习到的天鹅特征太少了,导致区分标准太粗糙,不能准确识别出天鹅。
机器通过这些图片来学习天鹅的特征,经过训练后,知道了天鹅是有翅膀的,天鹅的嘴巴是长长的弯曲的,天鹅的脖子是长长的有点曲度,天鹅的整个体型像一个"2"且略大于鸭子。这时候机器已经基本能区别天鹅和其他动物了。然后,很不巧已有的天鹅图片全是白天鹅的,于是机器经过学习后,会认为天鹅的羽毛都是白的,以后看到羽毛是黑的天鹅就会认为那不是天鹅。
7.过拟合与欠拟合
在这里插入图片描述
过拟合:一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在训练数据外的数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。(模型过于复杂)

欠拟合:一个假设在训练数据上不能获得更好的拟合, 但是在训练数据外的数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。(模型过于简单)
①欠拟合原因
学习到数据的特征过少

解决办法:
增加数据的特征数量
②过拟合原因
原因:
原始特征过多,存在一些嘈杂特征,
模型过于复杂是因为模型尝试去兼顾
各个测试数据点

解决办法:
进行特征选择,消除关联性大的特征(很难做)
交叉验证(让所有数据都有过训练)
正则化(了解)
在这里插入图片描述
8.正则化
L2正则化
作用:可以使得W的每个元素都很小,都接近于0

优点:越小的参数说明模型越简单,越简单的模型则越不
容易产生过拟合现象
二.岭回归

from sklearn.linear_model import Ridge

sklearn.linear_model.Ridge(alpha=1.0)
具有l2正则化的线性最小二乘法

alpha:正则化力度
coef_:回归系数
在这里插入图片描述
三.逻辑回归
1.概念
逻辑回归是解决二分类问题的利器
逻辑回归是在线性回归的基础上包裹上一层sigmid函数
sigmoid函数
在这里插入图片描述
2.sigmid函数
在这里插入图片描述
3.API

from sklearn.linear_model import LogisticRegression

四.聚类
1.概念
物以类聚,人以群分
在这里插入图片描述
非监督学习(unsupervised learning)
主要方法:k-means
2.过程
k-means步骤
1、随机设置K个特征空间内的点作为初始的聚类中心

2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类
中心点作为标记类别

3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平
均值)

4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行
第二步过程
3.API

from sklearn.cluster import KMeans

sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)
k-means聚类
n_clusters:开始的聚类中心数量
init:初始化方法,默认为’k-means ++’

labels_:默认标记的类型,可以和真实值比较(不是值比较)
5.Kmeans性能评估指标
在这里插入图片描述
注:对于每个点i 为已聚类数据中的样本 ,b_i 为i 到其它族群的所有样本的平均
距离,a_i 为i 到本身簇的距离平均值

最终计算出所有的样本点的轮廓系数平均值
6.Kmeans性能评估指标API

from sklearn.metrics import silhouette_score

特点分析:
采用迭代式算法,直观易懂并且非常实用

缺点:容易收敛到局部最优解(多次聚类)
需要预先设定簇的数量(k-means++解决)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值