机器学习
自己是从传统开发转过来的,正在学习。如果有什么写的不对的多多包涵,写写文章加深记忆。
1、区别
在传统的编程方法中,程序员会编写一系列规则或指令,告诉计算机如何执行任务。而在机器学习中,程序员并不是直接编写所有规则,而是训练计算机从数据中自动学习和推断模式。
- 传统编程: 程序员定义明确的规则和逻辑,计算机根据这些规则执行任务。
- 机器学习: 计算机通过数据"学习"模式,生成模型并基于这些模式进行预测或决策。
2、基础概念
2.1、训练集、测试集和验证集
- 训练集(Training Set): 训练集是用于训练机器学习模型的数据集,它包含输入特征和对应的标签(在监督学习中)。模型通过学习训练集中的数据来调整参数,逐步提高预测的准确性。
- 测试集(Test Set): 测试集用于评估训练好的模型的性能。测试集中的数据不参与模型的训练,模型使用它来进行预测,并与真实标签进行比较,帮助我们了解模型在未见过的数据上的表现。
- 验证集(Validation Set): 验证集用于在训练过程中调整模型的超参数(如学习率、正则化参数等)。它通常被用于模型调优,帮助选择最佳的模型参数,避免过拟合。验证集的作用是对模型进行监控和调试。
2.2、特征(Features)和标签(Labels)
- 特征(Features): 特征是输入数据的不同属性,模型使用这些特征来做出预测或分类。例如,在房价预测中,特征可能包括房子的面积、地理位置、卧室数量等。
- 标签(Labels): 标签是机器学习任务中的目标变量,模型要预测的结果。对于监督学习任务,标签通常是已知的。例如,在房价预测中,标签就是房子的实际价格。
2.3、模型(Model)与算法(Algorithm)
- 模型(Model): 模型是通过学习数据中的模式而构建的数学结构。它接受输入特征,经过一系列计算和转化,输出一个预测结果。常见的模型有线性回归、决策树、神经网络等。
- 算法(Algorithm): 算法是实现机器学习的步骤或规则,它定义了模型如何从数据中学习。常见的算法有梯度下降法、随机森林、K近邻算法等。算法帮助模型调整其参数以最小化预测误差。
2.4、监督学习、无监督学习和强化学习
- 监督学习(Supervised Learning): 在监督学习中,训练数据包含已知的标签。模型通过学习输入特征与标签之间的关系来进行预测或分类。监督学习的目标是最小化预测错误,使模型能够在新数据上做出准确的预测。
- 无监督学习(Unsupervised Learning): 无监督学习中,训练数据没有标签,模型通过分析输入数据中的结构或模式来进行学习。目标是发现数据的潜在规律,常见的任务包括聚类、降维等。
- 强化学习(Reinforcement Learning): 强化学习是让智能体(Agent)通过与环境(Environment)的互动,采取行动并根据奖励或惩罚来学习最优策略。智能体的目标是通过最大化长期奖励来优化行为。
2.5、过拟合与欠拟合
- 过拟合(Overfitting): 过拟合是指模型在训练数据上表现非常好,但在测试数据上表现很差。这通常发生在模型复杂度过高、参数过多,导致模型"记住"了训练数据中的噪声或偶然性,而不具备泛化能力。过拟合的模型无法有效应对新数据。
- 欠拟合(Underfitting): 欠拟合是指模型在训练数据上和测试数据上都表现不佳,通常是因为模型过于简单,无法捕捉数据中的复杂模式。欠拟合的模型无法从数据中学习到有用的规律。
2.6、训练与测试误差
- 训练误差(Training Error): 训练误差是模型在训练数据上的表现,反映了模型是否能够很好地适应训练数据。如果训练误差很大,可能说明模型不够复杂,欠拟合;如果训练误差很小,可能说明模型太复杂,容易过拟合。
- 测试误差(Test Error): 测试误差是模型在未见过的数据上的表现,反映了模型的泛化能力。测试误差应当与训练误差相匹配,若测试误差远高于训练误差,通常是过拟合。
2.7、评估指标
根据任务的不同,机器学习模型的评估指标也不同。以下是常用的一些评估指标:
- 准确率(Accuracy): 分类任务中,正确分类的样本占总样本的比例。
- 精确率(Precision)和召回率(Recall): 主要用于处理不平衡数据集,精确率衡量的是被模型预测为正类的样本中,有多少是真正的正类;召回率衡量的是所有实际正类中,有多少被模型正确识别为正类。
- F1 分数: 精确率与召回率的调和平均数,用于综合考虑模型的表现。
- 均方误差(MSE): 回归任务中,预测值与真实值之间差异的平方的平均值。