零基础机器学习(3)之机器学习的一般过程

news2024/11/10 15:38:28

文章目录

    • 一、机器学习一般过程
      • 1.数据获取
      • 2.特征提取
      • 3.数据预处理
        • ①去除唯一属性
        • ②缺失值处理
          • A. 均值插补法
          • B. 同类均值插补法
        • ③重复值处理
        • ④异常值
        • ⑤数据定量化
      • 4.数据标准化
        • ①min-max标准化(归一化)
        • ②z-score标准化(规范化)
      • 5.数据降维
        • ①目的
        • ②权衡
      • 6.训练模型
        • ①样本数据集的选取
        • ②机器学习算法
      • 7.评估模型的有效性
        • ①过拟合与欠拟合
        • ②性能度量
          • A. 回归任务
          • B.分类任务
          • C.聚类任务
      • 8.使用模型

一、机器学习一般过程

机器学习的基本思想是通过从样本数据中提取所需特征构造一个有效的模型,并使用所建模型来完成具体的任务。

首先要获取所研究问题的数据

其次是对获取到的数据进行适当处理,然后选取合适的算法训练模型

最后对训练好的模型进行评估,以判定其是否满足任务需求,如满足,即可使用模型。

1.数据获取

机器学习的第一步是收集与学习任务相关的数据,这是最基础也是最重要的一步。

虽然现在是大数据时代,但对于一个给定任务,要得到与之相关的数据有时却很困难。业界广泛流传这样一句话:*数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限的方法而已。*因此,数据的获取尤为重要。

在训练最优的机器学习模型时,一定要选择最有代表性的数据集。只有选择最合适的属性作为特征,才能保证机器学习项目能应用于实际。

2.特征提取

特征提取是使用专业的背景知识和技巧最大限度地从原始数据中提取并处理数据,使得特征在机器学习的模型上得到更好的发挥,它直接影响机器学习的效果。

例如,在机器自动分辨筷子和牙签两种物品的实验中

序 号长度/(cm)质量/(g)材 质类 别
1258筷子
2237筷子
3204筷子
460.1牙签
550.08牙签
65.80.09牙签

观察表数据集可发现,根据长度和质量这两个特征即可分辨筷子和牙签,材质这个特征对区分筷子和牙签的作用并不明显,故可在特征属性中提取长度和质量这两个特征,而将材质这个特征删除,这个过程称为特征提取。

3.数据预处理

现实生活中,收集到的数据往往会有数据量纲(数据的度量单位)或数据类型不一致等问题。因此,在获取样本之后,通常需要对数据进行预处理。

数据预处理没有标准流程,通常包含去除唯一属性处理缺失值重复值异常值,以及数据定量化等几个步骤。

序 号姓 名年龄/(岁)年收入/(元)性 别学 历年消费/(元)
1张三3650 000本科30 000
2赵琦4245 000本科40 000
3李武2330 000高中
4王波6170 000本科20 000
5刘玉琦3820 000大专10 000
6赵琦4245 000本科40 000
7赵倩−530 000本科90 000

该数据集是某平台上的“客户信息样本数据集”,要求使用机器学习方法,进行聚类,将客户划分为几种类型,以便为其推销相关的产品。在训练模型之前,我们需要对数据集中的数据进行预处理,才能得到理想的机器学习样本数据集。

①去除唯一属性

唯一属性通常指ID、姓名等属性,每个样本的取值都不一样且唯一,这些属性不能刻画样本自身的分布规律,在做数据预处理时,需将这些属性删除。

序 号年龄/(岁)年收入/(元)性 别学 历年消费/(元)
13650 000本科30 000
24245 000本科40 000
32330 000高中
46170 000本科20 000
53820 000大专10 000
64245 000本科40 000
7−530 000本科90 000
②缺失值处理

这里的缺失值指的是,单个样本中的数据某些确实,并不是样本缺失

常见的缺失值处理方法有3种

  • 直接使用含有缺失值的特征;
  • 删除含有缺失值的特征;
  • 缺失值补全。其中,缺失值补全是最常用的手段。
A. 均值插补法

是指使用该属性有效值的平均值来插补缺失的值

B. 同类均值插补法

是指首先将样本进行分类或聚类,然后以该类中样本的均值插补缺失值。

③重复值处理

在数据处理中,重复值指的是数据集中出现了两个或多个完全相同的记录或行。这些记录在所有列上的取值都完全相同,没有任何区别。重复值可能是由数据输入错误、数据复制问题或其他原因导致的。

重复值会导致数据的方差变小,数据的分布发生较大变化。因此,若检查到数据集中有重复数据,要将其删除。

④异常值

异常值是指超出或低于正常范围的值,如年龄为负数、身高大于3 m等,它会导致分析结果产生偏差甚至错误。检查到异常值后,可对异常值进行删除或替换处理

序 号年龄/(岁)年收入/(元)性 别学 历年消费/(元)
13650 000本科30 000
24245 000本科40 000
32330 000高中15 000
46170 000本科20 000
53820 000大专10 000
⑤数据定量化

计算机只能处理数值型数据。因此,在数据预处理时,如果有非数值型数据,都要先转换成数值型数据。

序 号年龄/(岁)年收入/(元)性 别学 历年消费/(元)
13650 00016030 000
24245 00026040 000
32330 00012015 000
46170 00016020 000
53820 00024010 000

在该数据集中性别和学历都是非数值型数据,需将其处理成数值型数据,如学历“高中”可用20代替,“大专”可用40代替,“本科”可用60代替;性别中的“男”可用1代替,“女”可用2代替。

4.数据标准化

数据标准化是指将数据按比例缩放,使之落入一个特定区间,从而消除数据之间数量级的差异。经过标准化处理后,不同的特征可以具有相同的尺度

①min-max标准化(归一化)

数据集的每个属性(数据表中的列)中都有一个最大值和一个最小值,分别用max和min表示,然后通过一个公式将原始值映射到区间[0,1]上。

序 号年 龄年 收 入性 别学 历年 消 费
10.340.6010.67
20.50.5111
300.2000.17
411010.33
50.39010.50

整个数据集的数据经过min-max标准化处理后的结果如表所示。

这种处理方法的缺点是当有新数据加入时,可能会导致最大值和最小值发生变化,需要重新定义。

②z-score标准化(规范化)

它是基于原始数据的均值和标准差进行数据标准化的一种方法。

z-score标准化方法适用于属性的最大值和最小值未知的情况或有超出取值范围的离群数据的情况。

公式:新值=(原始值-均值)/标准差

序 号年 龄年 收 入性 别学 历年 消 费
1−0.330.41−0.820.750.65
20.160.121.220.751.58
3−1.38−0.76−0.82−1.75−0.74
41.711.56−0.820.75−0.28
5−0.16−1.341.22−0.5−1.21

整个数据集的数据经过z-score标准化处理后的数据如表所示。

注意:

z-score标准化要求样本属性值数据服从正态分布,这就要求样本数量足够多,故此案例不适合使用z-score标准化进行数据处理。

5.数据降维

  • “维度”是指样本集中特征属性的个数。
  • “降维”是指减少特征矩阵中特征的数量。
①目的
  1. 为了对数据进行可视化,以便对数据进行观察和探索;
  2. 简化机器学习模型的训练,使模型的泛化能力更好,避免“维度灾难”。

在实际应用中,数据一般是高维的。

手写数字“1”及其对应二维矩阵

手写的数字图片,如果将其缩放到28x28像素的大小,那么它的维度就是28x28=784维

对应的图像二维矩阵

数据已经被规范化到(0,1)范围内

②权衡

维数太多或太少都不好,设置恰当的维数对机器学习模型非常重要。

例如,对苹果和梨子进行分类时,若只将形状作为特征,则很可能会出现错误分类的情况;若再将大小作为特征,则可减少错误分类的情况;若再将颜色作为特征,则可进一步减少错误分类的情况。

数据降维最常用的方法是主成分分析法。
深度学习就是对样本的特征进行复杂的变换,得到最有效的特征,从而提高机器学习的性能。

6.训练模型

①样本数据集的选取
  • 训练集的数据要尽可能充分且分布平衡(即每个类别的样本数量差不多),否则不可能训练出一个完好的模型;
  • 验证集或测试集的样本也需要符合一定的平衡分布,否则将无法测试出一个准确的模型;
  • 训练模型和测试模型使用的样本不能相同。
②机器学习算法

训练机器学习模型时,要根据具体的学习任务,选择合适的算法。

  • 分类任务经常使用的算法有k近邻、朴素贝叶斯、决策树、支持向量机等;
  • 回归任务经常使用的算法有线性回归、k近邻、决策树等;
  • 聚类任务经常使用的算法有k均值、DBSCAN、GMM等。

7.评估模型的有效性

一个机器学习模型训练出来后,一般需要评估该模型的效果,看其是否能满足实际问题的需要。

评估模型的有效性就是利用测试集对模型进行测试,评估其输出结果。

事实上,我们希望得到一个在新的未知样本上表现很好的模型,即泛化能力好的模型。

①过拟合与欠拟合

如果模型在训练样本上学得“太好”了,很可能把训练样本自身的一些特点当成了所有样本的一般性质,导致泛化能力下降,这种现象在机器学习中称为“过拟合”。

与“过拟合”相对的就是“欠拟合”,指对训练样本的一般性质尚未学好。图1-10给出了关于过拟合与欠拟合的一个类比,便于理解。

②性能度量
A. 回归任务
  • 残差:在数理统计中是指所有拟合数据(即模型预测数据)与原始数据(样本实际值)之间的差的和
  • 和方差(SSE):拟合数据和原始数据对应点的误差的平方和。SSE越接近于0,说明模型越好,数据预测也越成功。
  • 均方误差(MSE):拟合数据和原始数据对应点误差的平方和的均值,。
  • 均方根误差(RMSE):MSE的平方根,也称回归任务的拟合标准差
  • 确定系数(R2):通过数据的变化来表征一个拟合的好坏,R2的正常取值范围为[0.1],越接近1,表明模型越好。
B.分类任务

分类任务中最常用的评估方法有准确率精确率召回率和F1值等。下面以一个二分类问题为例,介绍这些评估方法的含义。

真 实 值正 例反 例
预 测 值
正例真正例( )假反例( )
反例假正例( )真反例( )

在二分类中,假设样本有正反两个类别,则分类模型预测的结果有两种,正例和反例;真实数据的标签也有两种,正例和反例。那么,预测结果与真实标签的组合就有真正例(true positive)、真反例(true negative)、假正例(false positive)和假反例(false negative)4种情况,分别用 TP、 TN、FP 和 FN表示以上4种情况,

TP表示真实值与预测值都是正样本的数量;
FN表示真实值是正样本,而预测值却是反样本的数量;
FP表示真实值是反样本,而预测值却是正样本的数量;
TN表示真实值与预测值都是反样本的数量。
可见Tp与TN都是预测正确的情况。

  • 预测的准确率可定义为:

Accurancy=(TP+TN)/(Tp+FN+FP+TN)

  • 而预测的精确率表示预测为正的样本中有多少是真正的正例,故精确率可定义为:

Precision=TP/(TP+FP)

  • 召回率表示样本中的正例有多少被预测正确了,故召回率可定义为:

Recall=TP/(TP+FN)

C.聚类任务
方 法 名是否需要真实值监控最 佳 值
ARI(兰德系数)评价法需要1.0
AMI(互信息)评价法需要1.0
V-measure评分需要1.0
FMI评价法需要1.0
轮廓系数评价法不需要畸变程度最大
calinski_harabasz指数评价法不需要相比较最大

在聚类任务中,我们希望同一类的样本尽量类似,不同类的样本尽量不同。即簇内对象的相似度越大,不同簇之间的对象差别越大,聚类效果越好。聚类任务常用的评估指标如表所示。

8.使用模型

如果模型的性能能达到实际需求,就可以使用该模型预测新样本了。

例如,假设区分筷子和牙签的模型训练出来并且能达到实际需求,那么,就可以将一个新样本的数据(长度为14 cm,质量为6 g)输入到该模型中,使用模型预测出输入的数据是筷子还是牙签.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1546577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[蓝桥杯 2023 省 A] 颜色平衡树:从零开始理解树上莫队 一颗颜色平衡树引发的惨案

十四是一名生物工程的学生,他已经7年没碰过信息学竞赛了,有一天他走在蓝桥上看见了一颗漂亮的颜色平衡树: [蓝桥杯 2023 省 A] 填空问题 - 洛谷 十四想用暴力解决问题,他想枚举每个节点,每个节点代表一棵树&#xff0…

风险评估在网络安全领域的应用与实践

一、引言 在数字化浪潮席卷全球的今天,网络安全已成为企业运营和发展的核心问题。随着信息技术的快速发展,企业面临着日益复杂的网络安全威胁,如黑客攻击、数据泄露、恶意软件等。这些威胁不仅可能导致企业重要信息的丢失或泄露,…

C++模版(基础)

目录 C泛型编程思想 C模版 模版介绍 模版使用 函数模版 函数模版基础语法 函数模版原理 函数模版实例化 模版参数匹配规则 类模版 类模版基础语法 C泛型编程思想 泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。 模板是泛型编程…

Retelling|Facebook2

录音 Facebook 2 Retelling|Facebook2 复述转写 Hi, Im Helen Campbell, from DJ interpretation, European Commission, Im going to talk about Facebook. You Im sure that you are more familiar with Facebook, a lot, a lot more familiar than I than me. But Ive read…

JavaSE系统性总结全集(精华版)

目录 1. 面向对象(封装,继承,多态)详解 1.1 面向过程和面向对象的区别 1.2面向对象的三大特性 1.2.1 封装 1.2.2 继承 1.2.3 多态 1.2.4 方法重写和方法重载的区别(面试题) 1.2.5 访问权限修饰符分…

clickhouse学习笔记02(小滴课堂)

ClickHouse核心基础-常见数据类型讲解 插入数据: decimal类型的数据,整数部分超了会报错,小数部分超了会截取。 查看表结构: 查询: 插入: 更新操作: 这个和mysql的语句不太一样。 删除语句和my…

java的ArrayList类

ArrayList<E>E是自定义数据类型 ArrayList类&#xff1a; 构造函数&#xff1a; 成员方法&#xff1a; public boolean add(E e)&#xff1a; 将指定元素加到集合末尾 Appends the specified element to the end of this list. public class Array {public static…

视觉轮速滤波融合1讲:理论推导

视觉轮速滤波融合理论推导 文章目录 视觉轮速滤波融合理论推导1 坐标系2 轮速计2.1 运动学模型2.2 外参 3 状态和协方差矩阵3.1 状态3.2 协方差矩阵 4 Wheel Propagation4.1 连续运动学4.2 离散积分4.2.1 状态均值递推4.2.2 协方差递推 5 Visual update5.1 视觉残差与雅可比5.2…

P1135 奇怪的电梯 (双向bfs)

输入输出样例 输入 5 1 5 3 3 1 2 5输出 3说明/提示 对于 100%100% 的数据&#xff0c;1≤N≤200&#xff0c;1≤A,B≤N&#xff0c;0≤Ki​≤N。 本题共 1616 个测试点&#xff0c;前 1515 个每个测试点 66 分&#xff0c;最后一个测试点 10 分。 重写AC代码&#xff1…

C++_回文串

目录 回文子串 最长回文子串 分割回文串 IV 分割回文串 II 最长回文子序列 让字符串成为回文串的最少插入次数 回文子串 647. 回文子串 思路&#xff0c;i j表示改范围内是否为回文串&#xff0c; ②倒着遍历是为了取出dp[i 1][j - 1] ③i j 只有一对&#xff0c;不会重复…

每天上万简历,录取不到1%!阿里腾讯的 offer 都给了哪些人?

三月天杨柳醉春烟~正是求职好时节~ 与去年秋招的冷淡不同&#xff0c;今年春招市场放宽了许多&#xff0c;不少企业纷纷抛出橄榄枝&#xff0c;各大厂的只差把“缺人”两个字写在脸上了。 字节跳动技术方向开放数10个类型岗位&#xff0c;研发需求占比60%&#xff0c;非研发新增…

【数据结构】双向奔赴的爱恋 --- 双向链表

关注小庄 顿顿解馋๑ᵒᯅᵒ๑ 引言&#xff1a;上回我们讲解了单链表(单向不循环不带头链表)&#xff0c;我们可以发现他是存在一定缺陷的&#xff0c;比如尾删的时候需要遍历一遍链表&#xff0c;这会大大降低我们的性能&#xff0c;再比如对于链表中的一个结点我们是无法直接…

C/C++ 语言中的 ​if...else if...else 语句

C/C 语言中的 ​if...else if...else 语句 1. if statement2. if...else statement3. if...else if...else statementReferences 1. if statement The syntax of the if statement is: if (condition) {// body of if statement }The code inside { } is the body of the if …

《剑指 Offer》专项突破版 - 面试题 93 : 最长斐波那契数列(C++ 实现)

题目链接&#xff1a;最长斐波那契数列 题目&#xff1a; 输入一个没有重复数字的单调递增的数组&#xff0c;数组中至少有 3 个数字&#xff0c;请问数组中最长的斐波那契数列的长度是多少&#xff1f;例如&#xff0c;如果输入的数组是 [1, 2, 3, 4, 5, 6, 7, 8]&#xff0…

代码随想录训练营Day33:● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果

1005.K次取反后最大化的数组和 题目链接 https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/ 题目描述 思路 1、自己的想法 class Solution {public int largestSumAfterKNegations(int[] nums, int k) {sorted(nums);//遇到 <0 的 &#xff0c;就…

CTF题型 nodejs(1) 命令执行绕过典型例题

CTF题型 nodejs(1) 命令执行绕过 文章目录 CTF题型 nodejs(1) 命令执行绕过一.nodejs中的命令执行二.nodejs中的命令绕过1.编码绕过2.拼接绕过3.模板字符串4.Obejct.keys5.反射6.过滤中括号的情况典型例题1.[GFCTF 2021]ez_calc2.[西湖论剑 2022]Node Magical Login 一.nodejs中…

黑马头条day5总结

1、surefire-reports for the individual test results. 借鉴&#xff1a;【已解决】surefire-reports for the individual test results.-CSDN博客 Please refer to D:\javashizhan01\heima-leadnews\heima-leadnews-service\heima-leadnews-article\target\surefire-report…

手撕算法-数组中的第K个最大元素

描述 分析 使用小根堆&#xff0c;堆元素控制在k个&#xff0c;遍历数组构建堆&#xff0c;最后堆顶就是第K个最大的元素。 代码 class Solution {public int findKthLargest(int[] nums, int k) {// 小根堆PriorityQueue<Integer> queue new PriorityQueue<>…

k8s入门到实战(六)—— ConfigMap介绍

ConfigMap configmap 是 k8s 中的资源对象&#xff0c;用于保存非机密性的配置的&#xff0c;数据可以用 kv 键值对的形式保存&#xff0c;也可通过文件的形式保存。 什么是 configmap 在 k8s 中&#xff0c;ConfigMap 是一种用于存储应用程序配置数据的对象。它允许将配置信…

【python】Jupyter Notebook 修改默认路径

文章目录 一、修改前&#xff08;一&#xff09;问题&#xff08;二&#xff09;修改前的默认路径 二、修改配置文件、更改路径&#xff08;一&#xff09;找到配置文件并打开&#xff08;二&#xff09;创建目标文件夹、得到新的路径&#xff08;三&#xff09;修改配置文件 三…