数据挖掘实战(以kaggle为例)

这篇博客详细介绍了数据挖掘在机器学习中的应用,特别是通过kaggle房价预测竞赛,讲解了机器学习算法、工具和流程,包括数据预处理、特征工程、模型选择和融合。此外,还探讨了CTR预估问题,以及CPC、CPM、CPA等广告计费方式。内容涵盖了Bagging和Boosting技术,以及决策树、随机森林、神经网络等模型。
摘要由CSDN通过智能技术生成

第一课(第1课:机器学习算法、工具与流程概述)

主要分为以下内容进行讲述
在这里插入图片描述

机器学习工业应用领域

在这里插入图片描述

机器学习常用算法

在这里插入图片描述

在这里插入图片描述

机器学习常用工具

在这里插入图片描述

解决问题流程

数据的处理比模型更为重要
老师的博客,内容很详细
在这里插入图片描述

数据预处理

有时候可以一个feature一个feature去做
在这里插入图片描述

特征工程

在这里插入图片描述
在这里插入图片描述

模型选择

在这里插入图片描述
在这里插入图片描述

模型状态评估

在这里插入图片描述
在这里插入图片描述

模型融合

在这里插入图片描述

Bagging是一种集成学习(Ensemble Learning)的技术,全称为“Bootstrap Aggregating”。它是通过构建多个相互独立的基本模型(通常是决策树或其他分类器),然后通过对基本模型的预测结果进行投票或平均来进行最终预测的技术。

在Bagging中,采用自助法(bootstrap)从原始训练集中有放回地随机抽取多个样本(可重复抽样),构建多个训练集,每个训练集与原始训练集的大小相同。然后,使用每个训练集独立训练一个基本模型。最后,将这些基本模型的预测结果进行组合,通常通过投票或平均来生成最终的预测结果。

Bagging的优点包括:

降低模型的方差:通过构建多个基本模型并进行组合,可以降低模型的方差,减少过拟合的风险。

提高模型的鲁棒性:由于基本模型是相互独立训练的,因此对于数据的扰动和噪声具有一定的鲁棒性。

增加预测的准确性:通过集成多个基本模型的预测结果,可以提高整体的预测准确性和稳定性。

可以并行化处理:由于基本模型相互独立,因此可以并行训练和预测,提高计算效率。

常见的Bagging算法包括随机森林(Random Forest)和袋装决策树(Bagged Decision Trees),它们基于决策树进行集成学习。Bagging在各种机器学习任务中被广泛应用,并取得了良好的效果。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Boosting是一种集成学习(Ensemble Learning)的技术,用于通过组合多个弱学习器来构建一个强大的学习器。与Bagging不同,Boosting是通过顺序训练一系列的基本模型(通常是决策树或其他分类器),每个基本模型都试图纠正前一个模型的错误。

Boosting的基本思想是通过迭代训练一系列的弱学习器,每次训练都会调整样本的权重,使得前一个模型预测错误的样本在下一轮中得到更多的关注。在每一轮训练中,基本模型都会根据前一轮的预测结果来调整样本的权重,并尽可能减少上一轮预测错误的样本的权重。

Boosting的主要过程如下:

初始化样本权重:开始时,将所有样本的权重初始化为相等值。

迭代训练基本模型:通过迭代训练一系列的基本模型,每个模型都根据当前样本权重进行训练。

调整样本权重:在每一轮训练后,根据前一轮的预测结果来调整样本的权重,使得前一轮预测错误的样本在下一轮中获得更高的权重。

组合基本模型:将所有基本模型的预测结果进行加权组合,通常采用加权投票或加权平均的方式得到最终的预测结果。

Boosting的优点包括:

提高模型的准确性:通过迭代训练一系列的基本模型,Boosting可以逐步减少预测错误,提高整体的预测准确性。

自适应学习:Boosting通过调整样本权重来关注前一轮预测错误的样本,从而使得模型能够适应数据的特点和难易程度。

可以处理高维度数据:Boosting能够有效地处理高维度数据,对于特征维度较高的问题具有较好的适应性。

常见的Boosting算法包括Adaboost(Adaptive Boosting)和梯度提升树(Gradient Boosting Tree),它们在各种机器学习任务中被广泛应用,并取得了良好的效果。Boosting在处理复杂任务和大规模数据集时具有很强的表现能力。在这里插入图片描述

第二课(第2课:经济金融领域的应用)

在这里插入图片描述

在这里插入图片描述
第三种情况不太懂
在这里插入图片描述
三种方法:回归,决策树,神经网络
在这里插入图片描述
决策树算法的思想
决策树是一种常见的机器学习算法,用于解决分类和回归问题。它基于树状结构进行决策,并通过对输入数据集进行分裂来构建树。

下面是决策树算法的详细说明:

数据准备:首先,需要准备带有标签的训练数据集。每个数据样本包含一组特征和对应的标签(类别或值)。

特征选择:选择最佳的特征来构建决策树。常用的特征选择方法包括信息增益、信息增益比、基尼指数等。这些方法衡量了特征对于分类的重要性。

构建决策树:根据选定的特征选择方法,通过递归地分裂数据集,构建决策树。构建决策树的过程中,根据特征的取值将数据集划分为不同的子集,直到达到某个终止条件,如所有样本属于同一类别,或者无法再选择有效的特征进行分裂。

决策树的分裂:决策树的分裂过程是根据选定的特征和分裂规则进行的。一般来说,特征的每个可能取值都会产生一个分支,形成一个子节点。

处理缺失值:在构建决策树时,如果存在缺失值,需要采取相应的策略进行处理。一种常见的方法是使用多数表决来决定缺失值所在的分支。

剪枝:构建完整的决策树后,为了避免过拟合,需要进行剪枝操作。剪枝是通过减少决策树的复杂度,提高泛化能力。剪枝方法有预剪枝和后剪枝两种,预剪枝是在构建过程中进行剪枝,而后剪枝是在构建完整决策树后进行剪枝。

预测:使用构建好的决策树进行预测。将测试样本从根节点开始,根据特征的取值逐步遍历决策树的分支,直到达到叶节点,得到预测的类别或值。

决策树算法的优点包括易于理解和解释、可处理数值型和类别型数据、能够处理缺失值等。然而,决策树也存在一些限制,如容易过拟合、对噪声敏感等。

决策树算法的一种常见的变体是随机森林,它通过集成多个决策树来进行预测,并通过投票或平均来得到最终的结果,以减少单棵决策树的不确定性。
在这里插入图片描述
在这里插入图片描述
集成学习
在这里插入图片描述
random forest
在这里插入图片描述
Bosting
在这里插入图片描述
神经网络(Neural Network)是一种机器学习算法,它受到人类神经系统的启发,模拟了大脑中神经元之间的相互连接和信息传递过程。神经网络通常由多个称为神经元或节点的基本单元组成,这些神经元通过连接权重来传递和处理输入数据。

以下是神经网络的一般工作原理:

构建神经网络结构:神经网络通常由多个层组成,包括输入层、隐藏层和输出层。输入层接收原始数据,隐藏层进行中间的数据处理和特征提取,输出层生成最终的预测结果。

定义神经元:神经元是神经网络的基本单元,它接收输入数据并根据连接权重进行加权求和。然后,该值经过激活函数的转换,产生神经元的输出。常用的激活函数包括sigmoid、ReLU、tanh等。

前向传播:神经网络通过前向传播的方式将输入数据从输入层传递到输出层。在前向传播过程中,每个神经元根据输入数据和连接权重计算输出,并将其传递给下一层的神经元,直到到达输出层。

权重调整:神经网络的学习过程是通过调整连接权重来实现的。训练数据经过神经网络的前向传播后,与实际标签进行比较,通过计算损失函数来度量预测结果的误差。然后,通过反向传播算法,根据损失函数的梯度来更新连接权重,以减小误差,提高预测准确性。

反向传播:反向传播是神经网络中的一种优化算法,用于计算连接权重的梯度,并根据梯度的方向来更新权重。通过反向传播,网络可以从输出层向后传播误差信号,逐层计算每个连接权重的梯度,并利用梯度下降等优化算法来更新权重。

预测和推理:经过训练后的神经网络可以用于预测新的未见过的数据。给定输入数据,通过前向传播计算输出值,并根据输出值进行分类或回归预测。

神经网络的优势在于它能够自动从数据中学习特征表示,并且可以处理复杂的非线性关系。它在图像识别、自然语言处理、语音识别等领域取得了很多成功。然而,神经网络也面临一些挑战,如需要大量的训练数据、复杂的调参过程、计算资源的要求较高等。
在这里插入图片描述

kaggle竞赛:房价预测

房价预测

相关知识点

jupyter快捷键
下面是一些常用的Jupyter Notebook快捷键:

进入命令模式(按 Esc 键):

Enter:进入编辑模式
A:在当前单元格上方插入新的单元格
B:在当前单元格下方插入新的单元格
M:将当前单元格类型更改为 Markdown
Y:将当前单元格类型更改为代码
进入编辑模式(按 Enter 键):

Ctrl + Enter:运行当前单元格并保持焦点在当前单元格
Shift + Enter:运行当前单元格并将焦点移动到下一个单元格
Alt + Enter:运行当前单元格并在下方插入新的单元格
Tab:代码补全或缩进
Shift + Tab:显示函数的帮助文档
在命令模式和编辑模式下通用的快捷键:

Ctrl + S:保存Notebook
Ctrl + Z:撤销操作
Ctrl + Shift + Z 或 Ctrl + Y:重做操作
Ctrl + C:中断正在运行的代码
Ctrl + /:注释或取消注释选定的代码行
Ctrl + Shift + -:在光标位置拆分单元格
Shift + M:合并选定的单元格
Ctrl + Shift + P:打开命令面板,可以搜索和执行各种操作
这些快捷键只是Jupyter Notebook的一部分功能。你还可以通过在Jupyter Notebook中点击上方的 Help > Keyboard Shortcuts 菜单来查看更多的快捷键和功能。
标准化数据
常见的标准化数据的方法包括:

Z-score标准化:将数据转换为标准正态分布(均值为0,标准差为1)。该方法通过减去均值,然后除以标准差,将数据调整到相同的尺度上。

Min-Max标准化:将数据线性缩放到特定的范围(通常是0到1之间)。该方法通过减去最小值,然后除以最大值和最小值之差,将数据映射到指定的范围内。

Robust标准化:使用数据的中位数和四分位距离(Interquartile Range,IQR)对数据进行标准化。该方法通过减去中位数,然后除以IQR,将数据进行缩放。

小数定标标准化:通过除以某个固定的基数(通常是10的幂次)来进行缩放。例如,将数据除以10的幂次,使得数据的绝对值小于1。

这些标准化方法可根据数据的特点和需求选择适当的方法。标准化数据可以消除不同特征之间的尺度差异,提高模型的稳定性和准确性。
岭回归
岭回归(Ridge Regression)是一种线性回归的扩展方法,用于处理具有多重共线性(multicollinearity)的情况。多重共线性指的是自变量之间存在高度相关性的情况,这可能导致传统的最小二乘线性回归模型的结果不稳定或不可靠。

岭回归通过引入正则化项(或称为惩罚项)来解决多重共线性问题。正则化项是一个模型复杂度的惩罚项,可以控制模型参数的大小,从而减小模型对自变量的过度拟合。岭回归中常用的正则化项是 L2 范数,它将模型参数的平方和作为惩罚项。

岭回归的优化目标是最小化损失函数,该损失函数由最小二乘法中的残差平方和项和正则化项组成。通过调节正则化参数(通常用符号 alpha 表示),可以控制正则化项对最终模型的影响程度。较大的正则化参数会使模型更加稀疏,减小自变量的影响;而较小的正则化参数则允许模型更加拟合训练数据,但可能会增加过拟合的风险。

岭回归具有以下特点和应用场景:

解决多重共线性问题:岭回归能够在存在多重共线性的情况下稳定估计模型参数。

控制模型复杂度:通过调节正则化参数,可以控制模型的复杂度,避免过度拟合。

变量选择:较大的正则化参数可以使得部分自变量的系数趋于零,从而实现变量选择的效果。

线性模型的改进:岭回归可以扩展到线性模型之外的问题,例如多项式回归。

数据预处理:岭回归对于数据的标准化和缩放比较敏感,因此在使用岭回归之前,通常需要对数据进行预处理。

总之,岭回归是一种常用的线性回归扩展方法,能够处理多重共线性问题,控制模型复杂度,并在一定程度上进行变量选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值