机器学习学习总结
一、机器学习到底是什么?
简单说,机器学习就是让计算机像人一样 “从经验中学习”。比如我们学骑自行车,摔多了就知道怎么保持平衡;计算机处理任务时,也能通过分析大量 “经验数据”,自己找到规律,把任务做得越来越好。
最经典的例子就是 2016 年的阿尔法围棋大战:阿尔法围棋通过学习海量棋谱数据(经验),不断优化下棋策略,最终以 4:1 战胜了世界顶级棋手李世石。这就是机器学习的核心 —— 用数据 “喂” 模型,让模型自己进步。
具体来说,机器学习要满足三个条件:
针对特定任务(如下棋、判断西瓜好坏);
有大量经验数据作为基础;
有评判任务好坏的标准,通过分析数据让任务完成得更出色。
二、机器学习的 “基础语言”:关键术语
想要看懂机器学习,得先认识这些 “行话”:
1. 数据相关的基本概念
数据集:就是一堆数据的集合。比如要研究西瓜好坏,收集的所有西瓜数据(包括色泽、根蒂等信息)就是一个数据集。
样本:数据集中的每条记录。比如数据集中的 “第 1 个西瓜”“第 2 个西瓜”,每个西瓜的信息就是一个样本。
特征(属性):描述样本的具体信息。比如西瓜的 “色泽”(青绿、乌黑)、“根蒂”(蜷缩、硬挺)、“敲声”(浊响、沉闷)等,这些都是特征。
属性空间(样本空间):把所有特征组合起来形成的 “空间”。比如西瓜有 “色泽”“根蒂”“敲声” 3 个特征,每个特征有不同取值,这些取值组合起来就像一个三维空间,每个西瓜样本都是这个空间里的一个点。
向量表示:为了方便计算,每个样本可以用数字 “向量” 表示。比如一个西瓜的特征是(青绿、蜷缩、浊响),可以转换成数字(1, 2, 3),这个数字列表就是向量,特征的数量就是向量的 “维数”(比如 3 个特征就是 3 维向量)。
2. 训练和测试相关概念
训练集:用来 “教” 模型的数据集,里面有 “正确答案”(专业叫 “标记”)。比如判断西瓜好坏时,训练集里的西瓜会明确标注 “是好瓜” 或 “否”,模型通过学习这些数据找规律。
测试集:用来 “考” 模型的数据集,里面没有 “正确答案”,模型需要根据训练时学到的规律预测结果。比如测试集里的西瓜没有 “好瓜” 标注,模型预测后,再对比真实结果判断模型好坏。
三、机器学习的 “门派”:学习类型
机器学习主要分为两大 “门派”,还有一个 “混合门派”:
1. 监督学习(有老师教的学习)
就像学生有老师给答案一样,监督学习的数据集有 “正确答案”(标记)。模型通过学习这些带答案的数据,学会预测新数据的答案。
分类任务:预测结果是有限的 “类别”(离散值)。比如判断西瓜是 “好瓜” 还是 “坏瓜”,判断邮件是 “垃圾邮件” 还是 “正常邮件”。
回归任务:预测结果是连续的数值。比如根据房屋面积、位置预测房价(价格可以是 88 万、150 万等任意数值),根据身高预测体重。
2. 无监督学习(自学成才的学习)
没有 “正确答案”,模型自己从数据中找规律。最典型的是聚类:把相似的样本分成一组。比如电商平台分析用户购物记录,自动把喜欢买零食的用户、喜欢买家电的用户分成不同群体。
还有关联推荐,比如超市发现 “买尿布的人经常买葡萄酒”,就会给买尿布的顾客推荐葡萄酒,这就是无监督学习从数据中发现的隐藏规律。
3. 集成学习(团队合作的学习)
不是单个模型 “孤军奋战”,而是把多个模型组合起来,一起完成任务。就像考试时多个同学一起讨论,答案往往更准确。集成学习通过结合多个模型的优势,减少单个模型的误差,提升性能。
四、怎么判断模型好不好?模型评估方法
训练出模型后,得知道它好不好用。这就需要 “评估指标” 和 “评估方法”:
1. 常用评估指标
错误率和精度:分类任务最常用。
错误率:预测错的样本数 ÷ 总样本数(比如 100 个西瓜,预测错了 10 个,错误率就是 10%)。
精度:1 - 错误率(上面的例子中,精度就是 90%)。
残差:回归任务中,模型预测值和真实值的差距。比如预测房价 100 万,实际是 110 万,残差就是 10 万,残差越小模型越好。
训练误差和泛化误差:
训练误差:模型在训练集上的误差(“课后作业” 的错误率)。
泛化误差:模型在新数据(测试集)上的误差(“期末考试” 的错误率)。我们更关心泛化误差,因为模型最终要处理新数据。
损失函数:衡量模型预测偏差的 “工具”。损失函数值越小,说明模型预测得越准。比如用一条直线预测房价,损失函数就是所有点到直线的距离总和,总和越小,直线拟合得越好。
2. 分类任务的专项指标
对于分类任务(比如判断好瓜 / 坏瓜),还有更细致的指标:
TP(真正例):实际是好瓜,模型也预测为好瓜(对的)。
FP(假正例):实际是坏瓜,模型却预测为好瓜(错的)。
TN(真反例):实际是坏瓜,模型也预测为坏瓜(对的)。
FN(假反例):实际是好瓜,模型却预测为坏瓜(错的)。
在此基础上,有两个关键指标:
查准率(P):模型预测的 “好瓜” 中,真正是好瓜的比例(P=TP÷(TP+FP))。比如预测了 10 个好瓜,其中 8 个真的是好瓜,查准率就是 80%。
查全率(R):所有实际好瓜中,被模型正确预测为好瓜的比例(R=TP÷(TP+FN))。比如实际有 10 个好瓜,模型只预测对了 7 个,查全率就是 70%。
查准率和查全率通常 “此消彼长”:想让预测的好瓜尽量都是真的(高查准率),可能会漏掉一些好瓜(低查全率);想把所有好瓜都找出来(高查全率),可能会把一些坏瓜当成好瓜(低查准率)。
3. 评估方法
怎么合理划分训练集和测试集,才能准确评估模型?
留出法:直接把数据集分成两部分,比如 70% 做训练集(教模型),30% 做测试集(考模型)。注意两点:
训练集和测试集的分布要一致(比如好瓜和坏瓜的比例要和原数据集一样),避免偏差。
可以多次随机划分,取平均结果,避免一次划分的运气成分。
交叉验证法:把数据集分成 k 个相似的子集(比如 10 个),每次用 9 个子集训练,1 个子集测试,重复 10 次,最后取 10 次结果的平均值。这种方法更稳定,常用的是 “10 折交叉验证”。
五、模型常见 “毛病” 及解决办法
模型训练时可能会出两种问题:欠拟合和过拟合。
1. 欠拟合:模型 “学不会”
表现:模型在训练集和测试集上误差都很大,连简单的规律都没学会。比如判断西瓜好坏时,模型只看 “色泽”,忽略了 “根蒂”“敲声” 等重要特征,导致预测不准。
解决办法:
给模型更多 “线索”:添加新特征(比如纹理、脐部等)。
让模型更 “聪明”:增加模型复杂度(比如从简单规则升级为更复杂的算法)。
减少约束:如果用了正则化(防止过拟合的技术),可以减小正则化系数,让模型更自由地学习。
2. 过拟合:模型 “学太死”
表现:模型在训练集上误差很小,但在测试集上误差很大。就像学生死记硬背课后题,考试换了新题就不会了。比如模型记住了训练集中每个好瓜的细节,甚至把噪声当成规律(比如误以为 “青绿 + 蜷缩” 一定是好瓜,忽略了其他特征),遇到新西瓜就预测错。
解决办法:
给模型更多 “练习材料”:增加训练数据,让模型见更多情况,减少对噪声的依赖。
给模型 “减负”:删除无关特征(降维),避免模型被干扰信息误导。
加 “约束”:用正则化技术,限制模型参数的大小,防止模型过度学习细节。
团队合作:用集成学习,多个模型一起预测,减少单个模型的偏见。
六、选模型的 “黄金法则”
1. 奥卡姆剃刀原理:简单的才是最好的
“如无必要,勿增实体”—— 如果简单模型能解决问题,就不用复杂模型。比如判断西瓜好坏,用 “根蒂蜷缩 + 敲声浊响” 的简单规则就能准确预测,就不用非要用复杂的算法,避免 “杀鸡用牛刀”。
2. 没有免费的午餐(NFL):没有万能算法
不存在一种算法对所有问题都有效。比如 A 算法预测房价很准,但用来判断西瓜好坏可能不如 B 算法。评价算法好坏,必须结合具体任务,脱离实际问题谈 “最好的算法” 都是空谈。