机器学习笔记第二章

机器学习笔记第二章

超参数和模型参数概念

超参数:在算法运行前需要决定的参数

模型参数:算法过程中学习的参数

KNN算法没有模型参数,其算法中的 k是典型的超参数

如何寻找好的超参数

  • 领域知识
  • 经验数值
  • 实验搜索

超参数之间可能存在依赖关系

K近邻算法

sklearn.neighbors.KNeighborsClassifier

参数 weights default = “uniform”(不考虑距离的权重)

​ = distance (考虑距离的权重)

其中构造函数中含有 p 的参数,default = 2 也就是默认是欧拉距离

metric 参数 default ‘minkowski’ (超参数)

更多关于距离的定义

欧拉距离:

在这里插入图片描述

曼哈顿距离:(两个点在每个维度上的距离的和)

在这里插入图片描述

明可夫斯基距离:(获得了新的超参数 p)

在这里插入图片描述

搜索名称:

网格搜索:

sklearn 封装函数寻找最优的超参数

更多的距离定义:

向量空间余弦相似度 Cosine Similarity

调整余弦相似度 Adjusted Cosine Similarity

皮尔森相关系数 Pearson Correlation Coefficient

Jaccard相似系数 Jaccard Coefficient

数据归一化 Feature Scaling

为什么需要数据的归一化?

量纲不同导致不同的单位的量之间的差距不能准确的统计,不能反应样本的

每一个特征的重要程度。

数据归一化:将所有的数据映射到同一尺度中

最值归一化(normalization):把所有的数据映射到 0-1 之间

在这里插入图片描述

适用于分布有明显边界的情况;受outlier(离群值,极端值)影响较大

**均值方差归一化(standardization):**把所有的数据归一到均值为0方差为1的分布中

适用于数据分布没有明显的边界;有可能存在极端数据值
在这里插入图片描述

如何对测试数据集进行归一化处理?

训练数据集进行归一化处理:mean_train std_train

测试数据集也需要进行归一化处理:(x_test - mean_train) / std_train

原因:

测试数据是模拟真实环境,真实环境很有可能无法得到所有测试

数据的均值和方差,对数据的归一化也是算法的一部分

需要保存训练数据集得到的均值和方差

scikit-learn 当中封装的Scalar函数

在这里插入图片描述
**MinMaxScaler **最值归一化的调用

更多有关k近邻算法的思考

解决分类问题的算法

天然可以解决多分类问题

思想简单,效果强大

可以使用k近邻算法解决回归问题

对于要预测的结点找到离他最近的k个结点

KNeighborsRegressor : http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsRegressor.html (K近邻算法解决回归问题封装的类)

缺点1:效率低下

如果训练集有m个样本,n个特征,则预测每一个新的数据,需要O(m*n)

优化:使用树的结构:KD-Tree,Ball-Tree

缺点2:高度数据相关,对outlier的值更加的敏感

缺点3:预测结果不具有可解释性

缺点4:维数灾难 (随着维度的增加,"看似相近"的两个点之间的距离越来越大)

在这里插入图片描述

解决方法:降维 (简单的处理方法:PCA)

机器学习流程回顾:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值