机器学习算法的特征工程与意义详解

特征就是从数据中抽取出来的对结果预测有用的信息。

特征工程是使用专业知识背景知识和技巧处理数据,是得特征能在机器学习算法上发挥更好的作用的过程。

数据采集

数据清洗

数据清洗做的事情:洗掉脏数据

思考角度:

1、单维度考量

身高3m的人?显然不可能

一个月买脸盆墩布花了10w的人?也不太可能

组合或统计属性判定

号称在美国但IP却一直在大陆的新闻阅读用户?

要统计一个人是否会去买篮球鞋,然而你的样本中女性占80%?

2、统计方法

使用箱线图/boxplot上下界

取出缺省值多的字段

不可信的样本要去掉,缺省值极多的字段考虑不用

数据采样

分类问题中,很多情况下正负样本是不均衡的。比如患某些疾病的患者和健康人。

大多数模型对正负样本比是敏感的(如逻辑回归LR)

解决方法:随机采样、分层采样如果是正样本>>负样本,而且量都很大:在正样本下采样。(如正样本200万个,负样本20万个,此时在正样本中随机采样20万个,正负样本1:1构建分类器)如果是正样本>>负样本,量不大:1、采集更多数据;2、可以oversampling,即过采样(如有10万正样本,1000负样本,最简单的方法是将1000负样本多重复几遍。然而这样做可能会加大过拟合风险,故会将负样本经过一些小的处理。如图像识别里面判断是否为猫,可将图片旋转?镜像处理?加上一些噪声?均可);3、修改损失函数。

数值型

1、幅度调整/归一化-幅度缩放Scaling-标准化Standardization-归一化Normalization

2、将数值进行Log等变化

3、统计值max、min、mean、std

4、离散化

对连续值可以将其离散化,按照一个区间来分(分箱、分桶)

下面代码生成满足标准高斯分布的20个随机数,使用pandas的cut函数可以将数据划分。

importnumpyasnpimportpandasaspdarr=np.random.randn(20)factor=pd.cut(arr,4)factorOut[5]:[(-0.643,0.329],(0.329,1.302],(-1.616,-0.643],(-1.616,-0.643],(-0.643,0.329],...,(-0.643,0.329],(-0.643,0.329],(-0.643,0.329],(0.329,1.302],(-1.616,-0.643]]Length:20Categories(4,interval[float64]):[(-2.593,-1.616]<(-1.616,-0.643]<(-0.643,0.329]<(0.329,1.302]]5、高次与四则运算特征

通过高次多项式或四则运算来将数据升维。

6、数值转为类别

类别型

1、one_hot编码/哑变量

原数据

做one_hot编码之后

注:不适合类别特别多的字段

2、Hash技巧

如上图,将文本型映射成向量

其他类型

1、文本型

词袋模型/bagofwords

word2vec

文本数据预处理后,去掉停用词,剩下的词组成的list,在词库中的映射稀疏向量。

上述向量没有加上词的顺序,可以将词袋中的词扩充到n-gram。下图即为将“Bi-gramsarecool!”这句话映射成1个单词和两个单词。

Tf-idf特征

Tf-idf是一种统计方法,用以评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随它在语料库中出现的频率成反比下降。

TF:TermFrequency

TF(t)=(词t在当前文中出现的次数)/(t在全部语料库中出现的次数)

IDF:

IDF(t)=ln(总文档数/含t的文档数)

TF-IDF权重=TF(t)*IDF(t)

2、统计特征

加减平均

分位线

次序型

比例型

特征处理示例

4、特征选择方法

特征选择意义:

噪声:部分特征是对预测结果有负影响

特征选择VS降维:

前者剔除原本特征里和结果预测关系不大的,后者做降维操作,但是保存大部分信息

SVD或PCA确实也能解决一定的高维问题

过滤式特征选择

缺点:没有考虑到特征之间的关联作用,可能把有用的关联特征误剔除

#SelectKBest选择排名前k个的特征fromsklearn.datasetsimportload_irisfromsklearn.feature_selectionimportSelectKBest#chi2是卡方统计量fromsklearn.feature_selectionimportchi2iris=load_iris()X,y=iris.data,iris.target#之前的X数据集是有4个特征的X.shapeOut[13]:(150,4)#使用SelectKBest,使用卡方统计量,选出top2的两个特征X_new=SelectKBest(chi2,k=2).fit_transform(X,y)X_new.shapeOut[15]:(150,2)包裹式(wrapper)特征选择

把特征选择看做一个特征子集搜索问题,筛选出各种特征子集,用模型评估结果。

典型的包裹式算法为“递归特征删除算法”(recusivefeatureeliminationalgorithm)如用逻辑回归,如何去做?

用全量跑一个模型

几个参数estimato为选择的模型,n_features_to_select为迭代到最后几个特征值。

fromsklearn.feature_selectionimportRFEfromsklearn.linear_modelimportLinearRegressionfromsklearn.datasetsimportload_bostonboston=load_boston()lr=LinearRegression()rfe=RFE(lr,n_features_to_select=1)X=boston["data"]#数据有13个特征X.shapeOut[27]:(506,13)Y=boston["target"]names=boston["feature_names"]rfe.fit(X,Y)Out[28]:RFE(estimator=LinearRegression(copy_X=True,fit_intercept=True,n_jobs=1,normalize=False),n_features_to_select=1,step=1,verbose=)#使用递归特征删除算法,将数据的13个特征排序,数字为对应特征的序号rfe.ranking_Out[29]:array([8,10,9,3,1,2,13,5,7,11,4,12,6])嵌入式特征选择

根据模型来分析特征的重要性(有别于上面的方式,是从生产的模型权重等)

最常见的方式为正则化方法来做特征选择

一般用L1正则化来进行特征选择,用L2正则化来防止过拟合。

THE END
1.数据清洗的重要性与技巧:提升大数据分析的准确性和效率提升模型性能:在机器学习和数据分析领域,模型的性能在很大程度上依赖于输入数据的质量。数据清洗包括特征选择和特征工程,这些步骤可以帮助模型更好地识别数据中的模式,从而提高模型的预测能力。 节省时间和资源:在数据分析的早期阶段进行数据清洗可以避免在后续阶段进行昂贵的修正。自动化数据清洗流程可以进一步节省时间和资https://blog.csdn.net/Shaidou_Data/article/details/144110971
2.数据清洗在数据分析中的作用是什么?数据清洗在数据分析中的作用是什么? 收藏 数据清洗在数据分析中扮演着至关重要的角色。数据分析是指从大量数据中提取有价值的信息和洞察力,以支持决策和推动业务发展。然而,在进行数据分析之前,对原始数据进行清洗是必不可少的步骤。 数据清洗是指检查、处理和修复数据中的错误、不一致性和不完整性,以确保数据质量https://www.cda.cn/view/204242.html
3.大数据应用导论Chapter02大数据的采集与清洗网络爬虫(Web Crawler / Web Spider)是实现互联网数据采集的主要方式,是自动下载网页并提取所需信息的程序。其运行的主要对象是网站(website)。 3.1、爬虫的作用 作为搜索引擎的网页搜集器,抓取整个互联网,比如百度等 作为垂直搜索引擎,抓取特定主题信息,如视频网站等 https://blog.51cto.com/14683590/5236225
4.批处理交换任务组件介绍亿信华辰文档中心表交换输入组件用于选择指定系统,从该系统数据库连接池中选择源表进行数据的抽取,从不同系统选择数据源以达到数据交换的目的,作为后续组件的数据来源。其他功能同表输入4.2 表交换输出 作用:表交换输出组件用于将前置组件获取到的结果集,加载到目的系统的连接池的数据库表中。https://help.esensoft.com/edition-view-1239-1.html
5.什么是数据清洗?面对常见的数据清洗问题,有哪些解决方法?(2)在机器学习和人工智能领域,数据清洗的作用主要体现在数据收集、清洗、预处理、存储和分析等方面。通过数据清洗处理不完整、错误或重复的数据,为模型训练提供高质量的数据。 二、常见的数据清洗问题及处理方法 其实,数据清洗作为数据处理的一部分,不是简单的过程,而是会面临各种各样的问题,这里给大家列举几个常见的https://www.fanruan.com/bw/article/180930
6.www.ptzfcg.gov.cn/upload/document/20180724/0279275ee54644f69.2投标人应在投标截止时间前按照福建省政府采购网上公开信息系统设定的操作流程将电子投标文件上传至福建省政府采购网上公开信息系统,同时将投标人的CA证书连同密封的纸质投标文件送达招标文件第一章第10条载明的地点,否则投标将被拒绝。 10、开标时间及地点:详见招标公告或更正公告(若有),若不一致,以更正公告(若有)http://www.ptzfcg.gov.cn/upload/document/20180724/0279275ee54644f6adb79e806e1b3734.html
7.engineering):利用领域知识和现有数据,创造出新的特征,用于文章主要介绍了特征工程的相关内容,包括特征工程的定义、重要性,以及特征理解、清洗、构造、选择、变换和降维等方面。具体涵盖了结构化与非结构化、定量与定性数据的区分,数据清洗中的数据对齐、缺失值处理、异常值处理等方法,特征构造中的统计量构造、周期值、数据分桶、特征组合,特征选择的三种形式及多种具体方法,特https://juejin.cn/post/6874516288149028872
8.数据清洗的主要手段有哪些?数据清洗是数据治理过程中非常重要的一环,它指的是对数据进行清理、筛选、去重、格式化等操作,以确保https://www.zhihu.com/question/428793497/answer/2967637109