【机器学习知识整理一】数据加载、数据整理、数值型数据处理

提示:纯小白,刚开始接触机器学习,目前也只是在网上找一些资料学习,权当学习笔记,有理解错误的地方,欢迎提出,我会及时更改。


前言

提示:参考资料《Python机器学习手册-从数据预处理到深度学习》以及从网上查找的其他资料

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、向量、矩阵和数组

主要是对Numpy的一些操作,样例可参考:向量、矩阵和数组

二、加载数据

涉及机器学习,第一个步骤都是把原始数据加载到系统中。
从不同载体(比如CSV、SQL、JSON)中加载数据的方法,可参考样例:加载数据

三、数据整理

数据整理经常用于描述将原始数据转换成整洁的、组织合理的形式以供使用的过程,它是数据预处理中的一个重要步骤。
整理数据时,最常用的数据结构是数据帧data frame,数据帧呈表格状,用行和列来表示数据。
数据整理用的库主要是pandas,可参考样例:数据整理

四、处理数值型数据

1. 特征缩放

将原始数值数据转换成机器学习算法所需特征

特征就是区分一个东西的地方,比如一个苹果的特征:红色、圆、甜、光滑、脆等等,这些我理解为一个事务的特征。

机器学习中特征缩放是一个很常见的预处理任务。很多算法都假设所有特征是在同一取值范围中的,最常见的范围是[0, 1]或[-1, 1]。

特征缩放的目的:把特征数据等比例放大或缩小,可以提高后面的模型算法训练效率。【待研究】

最简单的一种缩放方法:min-max缩放,将特征数据缩放到[0, 1]范围内。先计算特征的最小值和最大值,然后对所有特征进行缩放。
min-max缩放计算公式
参考代码:特征缩放

2. 特征的标准化

特征标准化是特征缩放min-max缩放的一个常见的替代方案:将特征进行转换,使其平均值为0,标准差为1.
特征标准化计算公式:
标准化公式
标准差 σ \sigma σ 计算公式:
标准差计算公式
针对特征中的异常值,可以使用中位数和四分位数间距进行缩放。【待研究】
特征标准化代码可以参考:特征标准化

3. 归一化观察值

归一化可以对单个观察值进行缩放,使其拥有一致的范数。当一个观察值有多个相等的特征时,经常使用这种类型的缩放。
欧式范数(L2范数)计算公式:

欧式范数计算公式
曼哈顿范数(L1范数)计算公式:
曼哈顿范数计算公式
归一化观察值代码可参考:归一化观察值

4. 生成多项式和交互特征

当特征和目标值(预测值)之间存在非线性关系时,就需要创建多项式特征。
交互特征在我的理解中,就是一个特征依赖另一个特征,共同对目标作用生成效果。
多项式和交互特征代码可参考:生成多项式和交互特征

5. 转换特征

对特征值进行统一操作,一般是自定义一个函数,然后让每个特征值经过这个函数处理,得到自己想要的处理结果。
转换特征代码可参考:转换特征

6. 识别异常值

6.1 EllipticEnvelope

针对一个数据集,给这些数据画一个圈,在这个圈里面的视为正常值,在圈外边的视为异常值。
这个方法的一个主要限制是它需要指定一个污染指数参数,表示异常值在观察值中的比例,但是这个比例我们也不知道,只能自己根据数据进行估计,觉得异常值比较少,污染指数设置小一点;觉得异常值比较多,污染指数设置大一些。

6.2 四分位差

之查看某些特征,使用四分位差(interqutile range, IQR)来识别这些特征的极端值。
IQR是数据集的第1个四分位数和第3个四分位数之差。可以将IQR视为数据集中大部分数据的延展距离,而异常值会远远地偏离数据较为集中的区域。异常值常常被定义为比第1个四分位数小1.5IQR的值,或比第3个四分位数大1.5IQR的值。

参考代码:识别异常值

7. 异常值处理

通常有三种方式来处理异常值:
7.1 丢弃异常值
7.2 标记异常值,并作为数据的一个特征值
7.3 异常值特征转换,降低异常值的影响

在处理异常值时,不存在绝对准则,应该考虑异常值的来源是什么,如果是真的不需要的异常值,可以直接丢弃,如果确实存在异常场景,那就要考虑将该异常标记出来或进行特征转换了。
参考代码:异常值处理

8. 将特征离散化

将一个数值型特征离散化,分到多个离散的小区间中。
8.1 根据阈值将特征二值化
8.2 根据多个阈值将数值型特征离散化
参考代码: 将特征离散化

9. 使用聚类的方式将观察值分组

对观察值进行聚类操作,使相似的观察值被分为一组。
参考代码:使用聚类的方式将观察值分组

10. 删除带有缺失值的观察值

大多数机器学习算法不允许目标值或特征数组中存在缺失值,所以有必要在数据预处理阶段解决这个问题。
参考代码:删除带有缺失值的观察值

11. 填充缺失值

数据中存在缺失值,希望填充或预测这些值。
填充缺失值主要有两种策略:
策略一:使用机器学习来预测缺失值,最流行的选择是KNN。
不足:只适合小数据集,对大数据集,计算量会成为一个很严重的问题。

策略二:用平均值来填充缺失值。
不足:效果没有KNN好,但平均值填充策略很容易扩展到包含成千上万观察值的大数据集。
参考代码:填充缺失值


总结

本文中对机器学习的一些基础概念和基础操作做了总结,每一步每一种情况都给了代码样例,代码实现只是表面,重要的是了解和学习机器学习的思想。一步一步来吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值