最后是文本变量。很遗憾Titanic数据集中没有合适的文本变量。一般我们处理文本变量的方法是,合并所有的文本形成一个变量,然后调用Count Vectorizer或者TfidfVectorizer算法,将文本数据转换成数字。

大部分情况下,TfidfVectorizer比CountVectorizer表现更好;而且,下面一组参数几乎任何时候都有效。

如果你只在训练集上使用这些文本向量,请把它们保存到磁盘,以便在验证集上继续使用。

3. 正则化特征,特征选择

然后,我们来到了栈模块(stack module),这里的栈不是模型栈而是特征栈。在经过上一步的处理后,我们得到了不同的特征。

根据你得到的是稠密特征还是稀疏特征,你可以使用numpy模块的hstack或者sparse hstack把所有特征存进一个栈。

如果还有其他处理过程,比如PCA或者特征选择,我们还可以使用FeatureUnion模块。本文后面会继续提到分解和特征选择。

有了上面的特征,我们就可以开始应用机器学习模型了。现阶段,你只需要考虑基于树的模型就足够了。这些模型包括:

随机森林分类器 RandomForestClassifier

随机森林回归器 RandomForestRegressor

ExtraTreesClassifier

ExtraTreesRegressor

XGBClassifier

XGBRegressor

在直接使用上面的特征之前,首先需要进行正则化。对于使用线性模型而言,我们可以选择scikit-learn中的Normalizer或者StandardScaler。这些正则方法只针对稠密特征有效,在稀疏特征上不会给出好的结果。

假如上面的过程得到了一个“好的”模型,那我们可以继续优化超参数;假如没有得到

“足够好的”模型,我们可以通过下面的方法继续优化模型。

下一步包含分解方法:

PCA

为了简单起见,我们不谈LDA和QDA变换。对高维数据,一般采用PCA算法分解数据。对图片数据,我们从10-15个components开始逐渐增加,直到结果质量充分提高;对其他类型数据,我们初始选择50-60个components。

SVD

对于文本数据,在文本转换成稀疏矩阵后,使用奇异值分解(Singular Value Decomposition, SVD)转换数据。Scikit-learn提供了一份SVD的变种算法TruncatedSVD。

对于TF-IDF或者count向量化方法,SVD的components个数选择120-200之间一般是有效果的。更高的components个数会提高效果,但也需要更高的计算代价。

贪心特征选择

有多种方法达到特征选择的目的,其中最常见的一个是贪心特征选择(向前或向后)。在贪心特征选择中,我们选择一个特征,训练一个模型,然后在一项固定的指标上评估模型表现。然后我们一个一个地添加或者删除特征,记录每一步中模型的表现。最后选择让模型表现最好的特征集。贪心特征选择的一种实现,可以参考这里

Gradient Boosting Machine

特征选择还可以通过Gradient Boosting Machine达到。推荐使用xgboost代替scikit-learn中的GBM实现,因为xgboost更快而且更加具有可伸缩性。

4. 模型选择,超参数优化

我们一般采用下面的算法选择机器学习模型:

分类

随机森林 Random Forest

GBM

逻辑回归 Logistic Regression

朴素贝叶斯 Naive Bayes

支持向量机 Support Vector Machine

k近邻 k-Nearest Neighbors

回归

随机森林 Random Forest

GBM

线性回归 Linear Regression

岭回归 Ridge

Lasso

SVR

下面是作者给出他建议的模型和相对应的经验参数值,参数的选择经过时间和数据的积累。作者号称,上面的模型和参数组合已经超过了其他所有的模型。

5. 保存转换器

最后,记得保存转换器,在验证集应用训练出的模型。

三、总结

1.识别问题的类型,数据分割成两部分:训练集,验证集

2.识别数据中的变量,形成特征

3.正则化征,选择特征

4.选择模型,优化超参数

5.保存转换器

作者:renqHIT

python tfidf特征变换_机器学习的“万能模板” - 数据分析相关推荐

  1. python tfidf特征变换_Python机器学习之“特征工程”

    本次将介绍特征工程的一些常见示例:表示分类数据的特征.表示文本的特征和表示图像的特征.另外,还会介绍提高模型复杂度的衍生特征和处理缺失数据的填充方法.这个过程通常被称为向量化,因为它把任意格式的数据转 ...

  2. python tfidf特征变换_使用sklearn提取文本的tfidf特征

    from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, TfidfTransformer corpu ...

  3. python tfidf特征变换_Spark MLlib机器学习开发指南(4)--特征提取--TF-IDF

    基于最新2.2.0版本翻译 本节介绍和特征一起工作的算法,大致分为以下几类:提取:从原始数据提取特征 转换:缩放,转换,或者修改特征 选择:从一个大的特征集合里面选择一个子集 局部敏感哈希(LSH): ...

  4. python tfidf特征变换_Python中的TfidfVectorizer参数解析

    vectorizer = CountVectorizer() #构建一个计算词频(TF)的玩意儿,当然这里面不足是可以做这些 transformer = TfidfTransformer() #构建一 ...

  5. python实训报告万能模板_实习报告万能模板

    实习报告万能模板 每个岗位都要实习都要写实习报告, xx 这里有个万能模 板哦看看适不适合你. 第一次参加社会实践,我明白中学生社会实践是引导我 们学生走出校门,走向社会,接触社会,了解社会,投身社 ...

  6. 公务员学python有什么用_未来公务员都会是数据分析高手了,你还要当个只会Excel的小白吗?...

    原标题:未来公务员都会是数据分析高手了,你还要当个只会Excel的小白吗? 大数据风潮席卷全球,为什么人人都要学数据分析? 1.为什么要学数据分析 大数据号称新时代的石油,很多行业都开始用数据驱动业务 ...

  7. echarts 大屏模板_年会策划万能模板 ,玩转年会看这篇!

    原标题:年会策划万能模板 ,玩转年会看这篇! 临近年末,活动策划人的年度大考又要来了,如何做一场让老板满意,员工舒心的策划呢? 这里小编分享一套年会策划的万能模板,玩转年会! 致辞: 20xx年即将到 ...

  8. 决策树对鸢尾花数据两特征组合分类python代码的结果_机器学习笔记-决策树

    在看决策树之前,先看下之前说过的逻辑回归 上图为判断是否要交往的逻辑回归算法图 把身高,财富,颜值分别与w1,w2,w3相乘求和得到一个结果. (其中w1为高的权重,如果比较在意身高,那么w1就会偏大 ...

  9. Python 散点图线性拟合_机器学习之利用Python进行简单线性回归分析

    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析.本文首先对人工智能/机器学习/深度学习.相关分析/因果分析/回归分析等易混淆的概念进行区分,最后结合案例介绍 ...

最新文章

  1. 曾被ICLR拒稿,字节跳动今斩获最佳论文,ACL 2021各大奖项揭晓
  2. eclipse启动不了
  3. juniper交换机 mac地址和端口绑定
  4. node 大写_大写Node.js模块
  5. linux环境下snap安装vscode
  6. 机器人布罩_机器人防护罩的主要作用是什么?
  7. accept搭配用法_accept的用法与搭配是什么
  8. [luogu P2183] [国家集训队]礼物 {exlucas}
  9. MacBook 快捷键个人总结和设置
  10. 微信文章排版技巧和相关排版工具
  11. java纳秒级时间戳_golang的time包:秒、毫秒、纳秒时间戳输出方式
  12. 蓝牙耳机南卡和vivo哪个好用?南卡与vivo实际评测!
  13. dlna 电脑连r1_电脑上dlna功能怎么用?
  14. 张赐荣:计算机网络快速入门教程
  15. Win10应用商店、应用打不开或闪退的解决方法
  16. 《对比Excel,轻松学习Python数据分析》读书笔记------数据运算
  17. TI 生态大宇宙 - 波卡 Polkadot
  18. *继承IObjectSafety接口,实现vb activeX控件安全性(IE不提示安全问题)
  19. 【旅游景点分析】--从数据搜集到清洗再到可视化呈现
  20. Sybases数据库----安装

热门文章

  1. LeetCode刷题第二天——3Longest Substring Without repeating character 4 Median of Two Sorted Arrays...
  2. Clipboard.js实现点击自动复制内容的功能
  3. ALV可输入状态下输入金额字段变小数的问题
  4. linux教程:配置Tomcat开机启动
  5. runtime官方文档
  6. FetchType与FetchMode的区别
  7. 充实你的素材库!10款免费的 PSD 素材下载
  8. 昂着头的艺术-伯爵在城堡的日记
  9. 【ASP.NET Web API教程】2.3 与实体框架一起使用Web API
  10. 高效的序列化/反序列化数据方式 Protobuf