Datawhale
进入打卡链接选择相对应的任务打卡就可以了
依旧是b站上老师的授课视频,我找到知乎上解释很好的文章,分享一下
机器学习(一)线性模型————理论篇 线性回归模型、对数几率模型、线性判别分析模型、多分类学习模型 - 知乎 (zhihu.com)
线性模型是机器学习中一种非常基础且重要的模型,广泛应用于分类和回归任务。线性模型的基本思想是通过一个线性方程来描述输入特征与输出结果之间的关系。
线性模型假设输入特征 XX 和输出 yy 之间的关系可以用下面的线性方程表示:
y=β0+β1x1+β2x2+…+βnxn+ϵy=β0+β1x1+β2x2+…+βnxn+ϵ
其中:
线性回归(Linear Regression) 是最常见的线性模型之一,主要用于回归任务。目标是根据输入特征预测一个连续值。其损失函数通常使用均方误差(Mean Squared Error, MSE)来衡量预测值与实际值之间的差异:
MSE=1m∑i=1m(yi−y^i)2MSE=m1i=1∑m(yi−y^i)2
其中,y^iy^i 为模型的预测值,yiyi 为实际值,mm 为样本总数。
优点:
缺点:
这个是昨天深度学习的小补充
K临近算法是一种基本的分类算法,用于预测一个新样本属于哪个类别。它基于以下思想:给定一个已知类别的训练样本数据集,对于一个新的样本,找出与其距离最近的K个训练样本,然后通过这K个样本的类别来预测新样本的类别。
举个例子:
假设你有一组水果的数据,每个水果有两个特征:重量和甜度。我们将这组水果划分为两类:苹果和橙子。数据如下表所示:
水果 | 重量 (克) | 甜度 (糖度) | 类别 |
---|---|---|---|
苹果1 | 150 | 7 | 苹果 |
苹果2 | 160 | 6 | 苹果 |
橙子1 | 130 | 9 | 橙子 |
橙子2 | 140 | 8 | 橙子 |
橙子3 | 135 | 10 | 橙子 |
现在,假设你有一个新的水果,它的重量是145克,甜度是8。你想知道这个水果属于哪个类别,使用k=3的k临近算法进行分类。
步骤:
1、计算距离:首先,计算新水果与每个已知水果之间的距离。这里可以使用使用欧氏距离公式:
d=(重量1−重量2)2+(甜度1−甜度2)2d=(重量1−重量2)2+(甜度1−甜度2)2
对于新水果(重量=145,甜度=8),计算距离:
d=(145−150)2+(8−7)2=25+1=26≈5.1d=(145−150)2+(8−7)2=25+1=26≈5.1
d=(145−160)2+(8−6)2=225+4=229≈15.1d=(145−160)2+(8−6)2=225+4=229≈15.1
d=(145−130)2+(8−9)2=225+1=226≈15.0d=(145−130)2+(8−9)2=225+1=226≈15.0
d=(145−140)2+(8−8)2=25+0=5.0d=(145−140)2+(8−8)2=25+0=5.0
d=(145−135)2+(8−10)2=100+4=104≈10.2d=(145−135)2+(8−10)2=100+4=104≈10.2
2、找到最近的 k 个邻居:将所有计算出的距离排序,找到最近的3个邻居。
水果 | 距离 |
---|---|
橙子2 | 5.0 |
苹果1 | 5.1 |
橙子3 | 10.2 |
3、投票:现在我们观察这3个最近的邻居:
在这3个邻居中,橙子出现2次,苹果出现1次。
4、确定类别:根据投票结果,新水果被分类为橙子。
K值的选择对分类结果有很大影响。如果K值太小,模型可能会受到噪声的影响;如果K值太大,则可能会将不同类别的样本也包含进来,从而降低分类精度。
找到合适的K值通常需要通过交叉验证等技术进行调优。
当数据集中某些类别的样本数量远大于其他类别时,少数类别的样本可能会被多数类别的样本淹没,导致分类器偏向于多数类别。
解决这个问题的一种方法是对数据进行重采样,如过采样少数类别或欠采样多数类别。
如果特征空间中有许多不相关的特征,那么这些特征会干扰距离度量,使得算法的性能下降。因此,在应用KNN之前,通常需要进行特征选择或降维处理。