数据分析基础知识——机器学习(4)

1. 特征工程的步骤?

①数据理解和探索:首先了解数据集的结构、特点和问题,进行数据可视化和统计分析,发现异常值和缺失值。

②数据清洗:处理缺失值、异常值和噪声,以确保数据的质量。

③特征提取:从原始数据中提取新的特征。这可以包括从文本中提取关键词,从日期中提取年份等。

④特征转换:对特征进行变化,使其更适合模型的要求。常见的转换包括标准化(使特征具有零均值和单位方差)、归一化(将特征缩放到一定的范围)、对数变换等。

⑤特征选择:选择最具有信息量的特征,以减少模型复杂性和提高泛化能力。这可以通过统计方法、模型的特征重要性评估来实现。

⑥特征构建:基于领域知识或创造性的想法,构建新的特征。例如,将多个相关特征合并、创建交互特征等。

⑦降维:对高维数据进行降维,以减少存储和计算开销,并防止维度灾难。常用的降维方法包括主成分分析和线性判别分析等。

⑧特征重要性评估:对特征的重要性进行评估,可以帮助理解哪些特征对模型的预测最为关键。

⑨特征交叉验证:在模型训练过程中,通过交叉验证来验证特征的效果,以确保模型在不同数据子集上的稳定性。

⑩迭代优化:特征工程是一个迭代的过程,需要不断地尝试不同的特征组合和变换,评估模型性能,然后进行调整和优化。

2. 特征工程中对分类变量和数值变量分别做处理?

分类特征的处理方法:

①独热编码(one-hot encoding):将分类变量转化为一组二进制特征。每个可能的类别都会被编码成一个单独的二进制特征,其中一个为1,其余为0。这样可以避免给不同类别赋予不正确的顺序或权重。

②标签编码:如果分类变量有明显的序关系,可以将其转化为连续的整数编码。但要注意,这种编码可能会引入错误的关系,因此只适用于有序分类。

③频率编码:使用每个类别在数据中出现的频率来代替原始的类别标签。这可以捕捉类别的分布信息。

④目标编码:对于分类目标变量,使用目标类别的平均值或其他统计量来替代类别标签,可以帮助模型学习类别与目标之间的关系。

数值变量的处理方法:

①标准化(Standardization):对数值变量进行标准化,使其均值为0,标准差为1。这可以确保不同的数值特征具有相似的尺度,有助于梯度下降等优化算法的收敛。

②归一化(Normalization):将数值变量缩放到一个固定的范围,通常是[0,1]。这对于某些模型和距离度量可能很有用。

③对数变换(Log Transformation):当数值变量呈现偏态分布时,可以用用对数变换来减小偏度,使其更接近正态分布。

④离散化(Discretization):将连续的数值变量转化为离散的区间,可以帮助模型捕捉非线性关系。常见的离散化方法有下面几个:

(1)等宽离散化:将连续的数据范围划分成相等宽度的区间。这样得到的离散化后的数据在每个区间内具有相同的间隔。但是,这种方法可能会导致某些区间内的样本较少,造成信息损失。

(2)等频离散化:将数据分为每个区间内包含近似相同数量的数据点的区间。这可以保持每个区间内数据的分布相对均匀,但可能导致某些区间内的值范围较大。

(3)聚类离散化:使用聚类方法将连续的数据聚成若干簇,然后将每个簇看作一个离散的值。这种方法可以根据数据的分布情况更好地划分区间。

(4)自定义阈值离散化:基于领域知识或问题的特点,选择特定的阈值来将数据划分为不同的区间。这可以帮助捕获数据中的关键信息。

(5)卡方分箱:根据卡方检验的统计方法来划分数据,以保证每个区间内的数据分布在统计上是显著的。

⑤特征衍生:基于数值变量可以创建新的特征,比如交叉特征、多项式特征等,以增加模型的表达能力。

3. 特征工程中的可视化?

分类特征的可视化方法:

①计数柱状图:显示每个类别的样本计数,帮用户了解每个类别的分布情况。

②饼图:适用于展示不同类别的相对比例,可以直观地看到每个类别在总体中的贡献。

③堆叠柱状图:如果有多个分类特征,可以使用堆叠柱状图来显示不同类别的组合。

④热力图:可以展示分类特征之间的相关性,尤其适用于有多个分类特征时。

数值型特征的可视化方法:

①直方图:显示数值型特征的分布情况,有助于了解数据的范围、偏度和峰度。

②密度图:与直方图类似,但通过平滑的曲线展示数据分布。

③箱线图:可以显示数值型特征的分位数、中位数、离群值等信息。

4. 建立模型?

常见的机器学习模型:

①线性回归:是一种用于建立输入特征与连续输出变量之间的关系的监督学习模型。它假设输入特征与输出之间存在线性关系。常用于预测、回归分析,例如房价预测、销售预测等。

优点:简单易懂,容易解释模型;训练速度快;适用于线性关系较强的问题。缺点:对非线性关系的建模效果有限;对异常值敏感。

②逻辑回归:是一种解决二分类问题的监督学习模型。它通过将线性组合的结果映射到0到1之间的概率值,然后根据阈值进行分类。广泛用于分类,如垃圾邮件检测、客户流失预测等。

优点:简单且高效;适用于二分类问题。缺点:对多类别分类问题需要扩展。对特征之间的复杂关系不敏感。

③主成分分析:PCA是一种无监督学习技术,用于降低高维数据的维度,保留最重要的特征。它通过找到数据中的主要方差方向来实现降维。用于数据压缩、可视化、去噪以及特征选择。

优点:降维效果显著,可以去除冗余信息;数据可视化和压缩;减少了计算复杂度。缺点:可能丢失部分信息;需要假设线性关系。

④K近邻算法:是一种基于实例的无监督学习算法,用于分类和回归。它根据与新数据点最近的K个邻居的标签来进行预测。常用于图像识别、推荐系统、异常检测等等。

优点:简单易实现;适用于各种数据分布。缺点:对大型数据集计算开销大;对特征的尺度和权重敏感;需要选择合适K值。

⑤自编码器:一种神经网络架构,用于无监督学习和特征学习。它试图将输入数据压缩到低维表示,然后重建原始数据,以捕捉数据的关键特征。用于特征学习、图像去噪、数据降维等。

优点:可用于无监督学习和特征学习;可用于数据去噪和降维。缺点:训练深度自编码器可能需要大量数据和计算资源;超参数可能比较复杂。

⑥随机森林:是一种集成学习方法,通过组合多个决策树来提高预测的准确性和稳定性。每个决策树都是基于随机抽样的数据和特征构建的。用于分类和回归问题,具有很强的预测能力和鲁棒性。

优点:具有较高的预测准确性;能够处理大量特征和数据;对决策树拟合有一定的缓解作用。缺点:难以解释模型;在某些问题上可能过于复杂。

⑦梯度提升:一种集成学习方法,通过迭代训练多个决策树来提高模型性能。每次训练新的树都试图修正一棵树的错误。

优点:高度灵活,适用于各种问题;可以处理不平衡问题。缺点:对异常值敏感;训练时间超长。

⑧决策树:它的工作原理类似于人类在面临决策时所采用的决策过程,通过树形结构表示不同的决策路径。每个内部节点表示一个特征或属性的测试条件,每个叶节点表示一个类别标签或回归值。

优点:可自动选择重要特征,并且不需要对数据进行过多的预处理,如归一化或标准化。缺点:不稳定性——数据的微小变化可能导致决策树结构的巨大变化,这使得决策树不够稳定;可能产生高度复杂的树——在某些情况下,决策树可能会无法达到其他复杂模型的性能;当类别的分布不平衡时,决策树可能偏向于那些具有更多样本的类别;可能产生过拟合问题——决策树容易在训练数据集上过拟合,尤其是在树的深度很大或叶节点的样本数很小的情况下。这可以通过剪枝等技术来缓解。

5.机器学习模型优化算法有哪些?

①网络搜索:是一种通过穷举搜索超参数组合的方法,以找到最佳组合。首先,定义一个超参数的范围和候选值列表,然后通过不同组合进行训练和验证,最后选择性能最佳的组合。

②随机搜索:随机搜索与网格搜索类似,但是它随机选择超参数的组合进行训练和验证,而不是穷举所有组合。随机搜索通常比网格搜索更高效,尤其是超参数的数量很大时。

③贝叶斯优化:是一种基于贝叶斯推断的优化方法,它构建了一个代理模型来估计目标函数的性能,并选择下一个候选点以最小化不确定性。贝叶斯优化通常比随机搜索和网格搜索更高效,特别适用于复杂的优化空间。

④交叉验证:是一种评估模型性能的方法,通常与超参数调优结合使用。它将数据分成多个子集,进行多次训练和验证,以准确评估模型的泛化性能。

⑤模型调整:对于决策树等模型,可以通过限制模型结构,比如剪枝来控制树的复杂度,防止过拟合。

全部评论

相关推荐

一笑而过2222:一、测试点 1. 最小长度测试:输入空字符串或少于最小长度(如 1 位)的字符。 2. 最大长度测试:输入超过最大长度(如 10 位以上)的字符。 3. 边界值测试:正好输入 1 位的密码;正好输入 10 位的密码。 4. 强度验证:输入仅包含数字、仅包含字母(大小写敏感)、包含特殊字符、包含数字字母和特殊字符组合的密码。 5. 字符类型测试:输入包含非 ASCII 字符(如中文、日文等)的密码;输入包含空白符(空格、制表符等)的密码。 6. 格式测试:输入包含不允许字符的密码;输入符合特定格式要求的密码(如必须包含一个大写字母、一个小写字母、一个数字)。 7. 历史密码测试:尝试使用最近一次使用的密码(若系统有规定不能使用最近使用过的密码)。 8. 锁定机制测试:连续输入错误密码检查账户是否被锁定及锁定后解锁账号并重新登录。 9. 重置密码流程测试:模拟忘记密码场景测试重置密码流程及验证重置密码后的密码规则是否一致。 10. 用户体验测试:检查用户输入密码时是否有实时反馈(如强度条显示)及输入过长密码时前端是否给予即时提示。
点赞 评论 收藏
分享
09-28 16:22
已编辑
哈尔滨工程大学 测试开发
一笑而过2222:一、编程语言相关 1. 元组和列表的区别: - 答案:元组不可变,列表可变;元组可用于存储不可更改的数据,列表更灵活用于动态数据存储。 2. python 的参数类型和作用: - 答案:位置参数按顺序传递,关键字参数通过指定参数名传递,默认参数有默认值,可变参数可接收多个值,作用是接收外部数据供函数使用。 3. python 和 C++的区别: - 答案:Python 是解释型语言,语法简洁灵活,开发效率高;C++是编译型语言,性能高,对内存管理更精细。 二、网络协议相关 1. http 的具体内容: - 答案:HTTP 是超文本传输协议,用于在 Web 上传输数据,包括请求和响应格式等。 2. http 的请求方式: - 答案:常见的有 GET、POST、PUT、DELETE 等。 3. get 和 post 的区别: - 答案:GET 用于获取数据,参数在 URL 中;POST 用于提交数据,参数在请求体中。 三、测试工具相关 1. selenium 的元素定位 8 个方式: - 答案:id、name、class name、tag name、link text、partial link text、xpath、css selector。 四、软件测试岗位能力相关 1. 软件测试岗位需要具备哪些能力? - 答案:细心、耐心、沟通能力、技术能力、问题分析和解决能力等。
点赞 评论 收藏
分享
3 23 评论
分享
牛客网
牛客企业服务