机器学习使用数学模型对数据进行拟合来做预测或者帮助理解。模型以特征作为输入。特征是原始数据的一种数字表达,从数据到模型的中间过程,就是特征工程。特种工程是将原始数据提取出来,然后转换为适合机器学习模型的形式。
这一步骤非常关键,优秀的特种工程可以有效的降低建模难度。虽然在建立一个ML流水线的时候,大部分时间都是用来做特种工程和数据清洗的,但是因为数据和模型的多样,很难泛化这一过程。
尽管如此,本书会逐章介绍:怎么表示文本数据或图像,怎么对自动生成的特征降维,什么时候/怎么标准化等等。一点点形成一个完整的特种工程方法论。
Chapter
1.filtering, binning, scaling, log/power transforms, interaction feature
2-3. 自然文字特种工程: bag-of-words, n-grams, phrase detection
4. if-idf
5. encoding techniques of categorical variables, including feature hashing and bin-counting
6. PCA
7. 用k-means 做特征化
8. 图像的特征提取,如SIFT, HOG
9. 推荐系统实战
在正式开始前,我们先来看一看机器学习过程的结构 ML pipeline
Data
真实世界的反映
- 股市数据:每天的股价,公司财报,甚至评论文章
- 人体健康数据:心跳,血糖,血压
- 客户数据:购物数据等等等等
Tasks
数据很重要,很值钱,详见各大家的著作如吴军的智能时代。
这里作者举了个例子:股价在交易所发生变化,被金融中介机构收集,存在数据库中,然后被一个公司购买,转为Hive存在Hadoop集群,用脚本取出来,再经过取样,按摩,清洗,转化为可以丢进模型的格式,用Python预测,结果存入csv文件,再经过分析迭代,重写为C++或java在全集跑一遍,得到最终预测结果。
Models
许多数据有这样的特点:wrong, redundant, missing.
模型要的是特征,不是raw data
Features
特征分好坏
- 好的特种工程用简单的模型
- 不好的特种工程用复杂的模型还不一定能达到同样的效果
Model evaluation
insights,prediction