「Python」sklearn第三弹-多项式特征和缺失值处理

简介: 本文是讲解机器学习模块sklearn第三讲,主要讲解数据挖掘中的多项式特征以及缺失值的相关处理。

「Python」sklearn第三弹-多项式特征和缺失值处理


本文是讲解机器学习模块sklearn第三讲,主要讲解数据挖掘中的多项式特征以及缺失值的相关处理。


多项式特征


why? 在数据挖掘中,获取数据的代价经常是非常高昂的。所以有时就需要人为的制造一些特征,并且有的特征之间是有关联的。生成多项式特征可以轻松的为我们获取更多的数据,并获得特征的更高维度和互相间关系的项且引入了特征之间的非线性关系,可以有效的增加模型的复杂度。


PolynomialFeatures


在sklearn中通过PolynomialFeatures方法来生成多项式特征,使用方法如下:

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
data = np.arange(6).reshape(3, 2)
poly = PolynomialFeatures(2)
# (degree=2, inte\fraction_only=True)#degree=n表示生成n项式特征,只需要特征之间交互
data = poly.fit_transform(data)
>>>data
array([[ 1.,  0.,  1.,  0.,  0.,  1.],
       [ 1.,  2.,  3.,  4.,  6.,  9.],
       [ 1.,  4.,  5., 16., 20., 25.]])

缺失值处理


why?

由于各种原因,真实世界中的许多数据集都包含缺失数据,这类数据经常被编码成空格、NaN,或者是其他的占位符。

但是这样的数据集并不能被sklearn学习算法兼容,因为大多的学习算法都默认假设数组中的元素都是数值,因而所有的元素都有自己的意义。


使用不完整的数据集的一个基本策略就是舍弃掉整行或整列包含缺失值的数据。但是这样就付出了舍弃可能有价值数据(即使是不完整的 )的代价。 处理缺失数值的一个更好的策略就是从已有的数据推断出缺失的数值。


在sklearn中使用imputer方法,通过指定参数,来实现填充缺失值的方法。主要提供了使用平均值代替缺失值,使用中位数代替缺失值,使用频率最高的值代替缺失值三种方法。


Imputer

class sklearn.preprocessing.Imputer(missing_values=’NaN’, strategy=’mean’, axis=0, verbose=0, copy=True)

参数:

  • missing_values: integer or “NaN”, optional (default=”NaN”)
  • strategy : string, optional (default=”mean”)
  • The imputation strategy.
  • If “mean”, then replace missing values using the mean along the axis. 使用平均值代替
  • If “median”, then replace missing values using the median along the axis.使用中值代替
  • If “most_frequent”, then replace missing using the most frequent value along the axis.使用众数代替,也就是出现次数最多的数


  • axis: 默认为 axis=0
  • axis = 0, 按列处理
  • aixs =1 , 按行处理


代码实例:

from sklearn.preprocessing import Imputer
data = [[np.nan, 2], [6, np.nan], [7, 4],[np.nan,4]]
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)#缺失值为nan,沿着每一列,使用平均值来代替缺失值
data = imp.fit_transform(data)
>>>data
array([[6.5       , 2.        ],
       [6.        , 3.33333333],
       [7.        , 4.        ],
       [6.5       , 4.        ]])
'''
strategy:
`mean`表示使用平均值代替缺失值
`median`表示使用中位数代替缺失值
`most_frequent`表示使用出现频率最多的值代替缺失值
missing_values: 表示何为缺失值
`NaN`表示`np.nan`为缺失值
`0`表示`0`为缺失值


相关文章
|
3月前
|
机器学习/深度学习 算法 数据可视化
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
特征工程是机器学习流程中的关键步骤,通过将原始数据转换为更具意义的特征,增强模型对数据关系的理解能力。本文重点介绍处理数值变量的高级特征工程技术,包括归一化、多项式特征、FunctionTransformer、KBinsDiscretizer、对数变换、PowerTransformer、QuantileTransformer和PCA,旨在提升模型性能。这些技术能够揭示数据中的潜在模式、优化变量表示,并应对数据分布和内在特性带来的挑战,从而提高模型的稳健性和泛化能力。每种技术都有其独特优势,适用于不同类型的数据和问题。通过实验和验证选择最适合的变换方法至关重要。
53 5
8种数值变量的特征工程技术:利用Sklearn、Numpy和Python将数值转化为预测模型的有效特征
|
2月前
|
机器学习/深度学习 数据格式 Python
将特征向量转化为Python代码
将特征向量转化为Python代码
25 3
|
2月前
|
机器学习/深度学习 数据格式 Python
将特征向量转化为Python代码
将特征向量转化为Python代码
20 3
|
3月前
|
机器学习/深度学习 数据格式 Python
将特征向量转化为Python代码
将特征向量转化为Python代码
31 1
|
2月前
|
机器学习/深度学习 开发者 Python
Python中进行特征重要性分析的9个常用方法
在Python机器学习中,特征重要性分析是理解模型预测关键因素的重要步骤。本文介绍了九种常用方法:排列重要性、内置特征重要性(如`coef_`)、逐项删除法、相关性分析、递归特征消除(RFE)、LASSO回归、SHAP值、部分依赖图和互信息。这些方法适用于不同类型模型和场景,帮助识别关键特征,指导特征选择与模型解释。通过综合应用这些技术,可以提高模型的透明度和预测性能。
170 0
|
4月前
|
机器学习/深度学习 分布式计算 大数据
几行 Python 代码就可以提取数百个时间序列特征
几行 Python 代码就可以提取数百个时间序列特征
|
4月前
|
机器学习/深度学习 存储 算法
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码baseline
本文通过可视化分析,总结了2024年考研国家分数线的变化趋势,指出管理类MBA降低5分,哲学、历史学、理学、医学等10个专业分数线上涨,而经济学等专业出现下降,反映出不同专业分数线受考生数量、竞争情况和政策调整等因素的影响。
74 2
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码baseline
|
4月前
|
机器学习/深度学习 存储 算法
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码实现
本文提供了2024泰迪杯B题“基于多模态特征融合的图像文本检索”的Python代码实现,包括问题分析、多模态特征提取、特征融合模型和算法的构建,以及如何使用召回率作为评价标准进行模型性能评估的详细说明。
57 2
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索Python代码实现
|
4月前
|
数据采集 存储 算法
【2024泰迪杯】B 题:基于多模态特征融合的图像文本检索20页论文及Python代码
本文介绍了2024年泰迪杯B题的解决方案,该题目要求构建基于多模态特征融合的图像文本检索模型和算法,通过深入分析和预处理数据集,构建了OFA、BertCLIP和ChineseCLIP三种多模态特征融合模型,并通过投票融合机制优化检索效果,实验结果表明所提模型在图像与文本检索任务中显著提高了检索准确性和效率。
124 2
|
5月前
|
机器学习/深度学习 数据采集 自然语言处理
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战
Python基于词袋模型特征和TFIDF特征进行支持向量机模型中文邮件分类项目实战