特征工程(二)TfidfVectorizer


'''
将原始数据的word特征数字化为tfidf特征,并将结果保存到本地

article特征可做类似处理

'''
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
import pickle
import time

t_start = time.time()

"""=====================================================================================================================
1 数据预处理
"""
df_train = pd.read_csv('train_set.csv')
df_test = pd.read_csv('test_set.csv')

df_train.drop(columns='arti
### 特征提取的概念 特征提取是一种将原始数据转换为一组数值的过程,这些数值可以更好地表示数据中的模式并用于机器学习模型的训练。通过特征提取,可以从复杂的数据集中获取有意义的信息,并将其转化为适合算法处理的形式。 在机器学习领域,特征提取通常涉及从高维空间到低维空间的映射过程,从而减少冗余信息并提高模型性能[^1]。 --- ### 常见的特征提取方法 #### 字典特征提取 字典特征提取适用于结构化数据,尤其是键值对形式的数据。它通过对输入数据进行编码,将类别型变量或其他离散特征映射为数值型向量。这种方法常用于表格数据预处理阶段。 #### 文本特征提取 对于文本数据,常见的特征提取技术包括词袋模型(Bag of Words)、TF-IDF 和 N-gram 等。其中 TF-IDF 是一种基于词频和逆文档频率的方法,能够衡量单词的重要性。其核心思想在于降低高频但无意义词语的影响,提升稀有关键词的作用。 #### 图像特征提取 图像特征提取可以通过多种方式完成,例如局部值模式 (LBP) 或方向梯度直方图 (HOG)。 - **LBP** 提取的是纹理特征,具体做法是对每个像素点与其邻域内的其他像素比较大小关系,最终形成一个描述整个区域纹理特性的向量[^3]。 - **HOG** 则关注边缘方向分布情况,先计算每一块区域内梯度的方向直方图,再把这些直方图拼接起来构成全局特征矢量。 --- ### 特征选择方法概述 除了上述提到的具体特征提取手段外,在实际应用过程中还需要考虑如何挑选最有效的特征组合。这一步骤被称为特征选择,主要分为以下几类: 1. **Filter 方法** Filter 方法完全不依赖任何特定的学习器,仅依靠数据本身的特性来进行分析判断。比如采用相关系数或者互信息作为评价指标来决定哪些属性应该保留下来[^2]。 2. **Wrapper 方法** Wrapper 方法则更加注重与后续建模环节之间的联系,会反复尝试不同的子集配置并通过交叉验证等方式测量它们的表现优劣程度。由于这种方式需要多次调用基础估计函数执行预测任务,因此往往耗时较长但也可能获得更精确的结果。 3. **Embedded 方法** Embedded 类似于 wrapper 的思路却又有所不同之处就在于它是直接内置到了某些优化求解框架内部去同步解决参数寻优以及维度缩减两方面的问题;典型代表如 Lasso 回归等正则化线性回归变种版本均属于此类别之一。 --- ```python from sklearn.feature_extraction.text import TfidfVectorizer # 创建一个简单的语料库 corpus = [ 'This is the first document.', 'This document is the second document.', 'And this is the third one.', 'Is this the first document?', ] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(corpus) print(vectorizer.get_feature_names_out()) print(X.toarray()) ``` 以上代码展示了如何使用 `TfidfVectorizer` 对一段文字集合实施 tf-idf 转换操作。 --- ### 总结 综上所述,无论是针对哪种类型的数据源开展工作,合理的运用各种先进的特征工程技术都是构建高效能预测系统的基石所在。而与此同时合理规划好相应的降维策略同样不可或缺——只有这样才能既保证捕捉住尽可能多的有效信号又不至于让系统陷入过拟合困境之中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值