目录
学习资源 1
基础概念 4
常用算法 1
深度学习 4
实践技巧 1
个人心得 4
机器学习算法类型 4
常见机器学习概念介绍 4
机器学习处理流程 4
学习资源:学习通课程资源、bilibli、CSDN、知乎等相关网络资源。
书籍:《Python机器学习》(Scikit-Learn & TensorFlow)、《深度学习》(Ian Goodfellow等著)
在线课程:Coursera上的“机器学习”课程(Andrew Ng主讲)、edX上的“Deep Learning Specialization”
社区和论坛:GitHub、Stack Overflow、Kaggle、Reddit的r/MachineLearning
一、基础概念
- 机器学习:一种通过数据和统计方法使计算机系统能够自动学习和改进的技术,而无需进行明确的编程。
- 监督学习:在训练过程中,模型接收带有标签的输入数据,并学习如何映射输入到正确的输出。常见算法包括线性回归、逻辑回归、支持向量机(SVM)、决策树和神经网络等。
- 无监督学习:在没有标签的数据上训练模型,旨在发现数据的内在结构或模式。常见方法包括聚类(如K-means)、降维(如主成分分析PCA)和关联规则学习等。
- 强化学习:模型通过与环境交互来学习如何采取最佳行动以最大化某种奖励信号。它涉及策略、价值和模型的学习。
二、常用算法
- 线性回归:用于预测一个或多个自变量(特征)与因变量(目标)之间的线性关系。
- 逻辑回归:虽然名字包含“回归”,但实际上用于分类任务,特别是二分类问题。通过Sigmoid函数将线性回归的输出转换为概率。
- 决策树:通过递归地分割数据空间来构建树状模型,每个内部节点表示一个特征上的测试,每个叶节点表示一个类别或输出值。
- 随机森林:基于多个决策树的集成学习方法,通过投票或平均来提高预测准确性和鲁棒性。
- 支持向量机(SVM):寻找一个超平面(在高维空间中)来最大化两类样本之间的间隔,适用于高维空间和非线性分类问题。
三、深度学习
- 神经网络:由多个层组成的模型,其中每层包含多个神经元,通过加权连接和前向传播来计算输出。
- 激活函数:在神经网络中引入非线性,常见的激活函数包括ReLU、Sigmoid和Tanh。
- 反向传播:一种用于训练神经网络的算法,通过计算损失函数关于每个权重的梯度来更新权重。
- 卷积神经网络(CNN):特别适用于图像识别任务,通过卷积层和池化层来提取特征。
- 循环神经网络(RNN):设计用于处理序列数据,如时间序列分析和自然语言处理,通过循环连接来保持状态信息。
四、实践技巧
- 数据预处理:包括数据清洗、缺失值处理、特征缩放和特征选择等,是模型训练前的重要步骤。
- 交叉验证:通过将数据集分成多个子集,轮流用作训练集和验证集,以评估模型的泛化能力。
- 正则化:通过添加惩罚项到损失函数中,防止模型过拟合,常见方法包括L1正则化和L2正则化。
- 超参数调优:使用网格搜索、随机搜索或贝叶斯优化等方法来寻找最佳的模型参数。
- 模型评估:使用混淆矩阵、准确率、召回率、F1分数等指标来评估模型性能。
五、个人心得
- 理论与实践相结合:理论学习是基础,但动手实践才能真正理解和掌握。
- 持续学习:机器学习领域发展迅速,新技术和算法层出不穷,保持好奇心和学习动力至关重要。
- 参与项目:参与实际项目可以加深理解,同时提升解决问题的能力。
二、机器学习算法类型
1.有监督学习
利用有监督学习解决的问题分两类:
分类问题:预测某一样本所属类别(离散的)。比如给定一个人(从数据角度来说,是给出一个人的数据结构,包括:身高,年龄,体重等信息),然后判断是性别,或者是否健康。
回归问题:预测某一样本的所对应的实数输出(连续的)。比如预测某一地区人的平均身高。代表算法:决策树、朴素贝叶斯、逻辑回归、KNN、SVM、神经网络、随机网络、AdaBoost、遗传算法。
2.无监督学习:
可利用无监督学习解决的问题分两类:
关联分析:发现不同事物之间同时出现的概率。在购物篮分析中被广泛地应用。如果发现买面包的客户有百分之八十的概率买鸡蛋,那么商家就会把鸡蛋和面包放在相邻货架上。
聚类问题:将相似的样本划分为一个簇。与分类问题不同,聚类问题预先并不知道类别,自然训练数据也没有类别的标签。
维度约减:指减少数据的维度同时保证不丢失有意义的信息。利用特征提取方法和特征选择方法,可以达到维度约减的效果。特征选择是指选择原始变量的子集。特征提取是将数据从高纬度转化到低纬度。代表算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普垃斯特征映射方法、黑塞局部线性嵌入方法、局部切空间排列方法等。
3.强化学习
通过反复试验来学习最优的动作。这类算法在机器人学中被广泛应用。在与障碍物碰撞后,机器人通过传感收到负面的反馈从而学会去避免冲突。在视频游戏中,可以通过反复试验采用一定的动作,获得更高的分数。Agent能利用回报去理解玩家最优的状态和当前他应该采取的动作。
三、常见机器学习概念介绍:
偏差:度量了模型的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟和能力。偏差则表现为在特定分布上的适应能力,偏差越大越偏离真实值。
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。方差越大,说明数据分布越分散。
噪声:表达了在当前任务上任何模型所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
过拟合和欠拟合的原因解释:
过拟合是指在训练数据集上表现良好,而在未知数据上表现差。
欠拟合是指模型没有很好学习到数据特征,不能够很好的拟合数据,在训练数据和未知数据上表现都很差。
过拟合的原因在于:参数太多,模型复杂度过高;建模样本选取有误,导致选取的样本数据不足以代表预定的分类规则;样本噪音干扰过大,是的机器将部分噪音认为是特征从而扰乱了预设的分类规则;假设的模型无法合理存在,或者说假设成立的条件实际并不成立。
欠拟合的原因在于:特征量过少;模型复杂度过低。
怎么解决欠拟合?
- 增加新特征,可以考虑加入特征组合、高次特征,来增大假设空间;
- 增加多项式特征,这个在机器学习算法中很普遍,例如将线性模型通过添加二次项或者三次项是模型泛化能力更强;
- 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数;
- 使用非线性模型,比如核SVM、决策树、深度学习模型;
- 调整模型的容量
- 容量低的模型可能很难拟合训练集
怎么解决过拟合?
获取和使用更多的数据(数据集增强)——解决过拟合的根本性方法
特征降维:人工选择保留特征的方法对特征进行降维
加入正则化,控制模型的复杂度、
Dropout
Early stopping
交叉验证 增加噪声
四、机器学习处理流程
1、业务理解
这是机器学习的第一步,需要深入了解业务背景、问题定义以及目标。明确是分类问题、回归问题还是聚类问题,了解需要预测或解释的目标变量是什么,以及有哪些可用的特征或自变量。
(1)数据收集与预处理
- 数据收集:从各种数据源(如数据库、文件系统、第三方API等)收集相关数据。
- 数据预处理:
数据清洗:删除或纠正缺失值、异常值和重复值等数据质量问题。缺失值可以通过删除、平均值填充、中位数填充、众数填充或预测模型填充等方法处理。异常值可以通过删除、转换或填充等方法处理。
数据转换:将数据从一种格式转换为另一种格式,例如将文本转换为数字表示(如使用one-hot编码或LabelEncoder)。
数据集成:将来自多个数据源的数据合并到一个数据仓库中。
数据规范化:将数据标准化为一致的格式和单位,例如进行归一化处理,将数据映射到[0,1]或[a,b]区间内。
(2)特征工程
特征工程是机器学习中至关重要的一步,可以极大地影响模型的性能。它包括以下操作:
- 特征选择:从原始特征中选择对模型最有用的特征,减少冗余和无关特征对模型训练的干扰。可以采用过滤法、包装法和嵌入法等方法进行特征选择。
- 特征提取:从原始数据中提取一些可以代表数据特征的新特征,以帮助机器学习算法更好地发现数据之间的关系。特征提取的方法包括主成分分析(PCA)、独立成分分析(ICA)等。
- 特征变换:对原始数据进行变换,以产生新的特征,以便更好地被算法使用。常见的特征变换包括多项式变换、对数变换、指数变换等。
- 特征创造:有时候,原始数据中并没有直接包含我们需要的特征,需要通过组合、衍生等方式创建新的特征。
(3)模型选择与训练
- 模型选择:根据问题的求解以及数据的形态、分布情况,选择合适的模型。常用的模型包括线性回归、逻辑回归、决策树、支持向量机、神经网络等。
- 模型训练:使用预处理和特征工程后的数据对模型进行训练,达到最佳拟合效果。
(4)模型评估与调优
- 模型评估:在模型训练完成后,需要对模型进行评估。评估模型的常见方法包括精度、召回率、F1值、ROC曲线和AUC等指标。
- 模型调优:根据评估结果,对模型进行超参数调优,例如调整学习率、正则化参数等,以优化模型性能。
(5)模型部署与监控
- 模型部署:将训练好的模型部署到实际环境中,进行推理或预测。这包括将模型集成到应用程序中、构建API接口等。
- 模型监控:一旦模型被部署到实际环境中,需要进行模型监控。这包括监控模型的性能、更新模型、修复错误和改进模型等操作。
综上所述,机器学习处理流程是一个迭代的过程,需要不断地收集和处理数据、选择和训练模型、评估和调优模型,并将模型部署到生产环境中进行推理和监控。