python数据挖掘入门与实战——学习笔记(第5、6章)
来源:互联网 发布:c语言 pipe 编辑:程序博客网 时间:2024/06/10 14:14
chapter 5 用转换器抽取特征(感觉有点特征工程的意思)
本章所讨论的是如何从数据集中抽取数值和类别型特征,并选出最佳特征。
特征抽取
对于各个实物,我们只有先把现实用特征表示出来,才能借助数据挖掘的力量找到问题的答案。特征选择的另一个优点在于降低真实世界的复杂度。
dataframe中的unique函数有点类似于SQL中的distinct,能把一列中互不相同的元素筛选出来。
数据离散化:条件判断,划分。
特征选择
sklearn中的VarianceThreshold转换器可用来删除特征值的方差达不到最低标准的特征。
from sklearn.feature_selection import VarianceThresholdvt = VarianceThreshold()xt = vt.fit_transform(x)输出xt后,会发现不符合要求的列消失了。
print(vt.variances_) #输出每一列的方差
选择最佳特征
sklearn提供了几个用于选择单变量特征的转换器:
SelectKBest返回k个最佳特征
SelectPercentile返回表现最佳的前r%个特征
单个特征和某一类别之间相关性的计算方法有很多。常用的有卡方检验、互信息、信息熵等。
使用SelectKBest转换器类,用卡方函数打分
from sklearn.feature_selection import SelectKBestfrom sklearn.feature_selection import chi2transformer = SelectKBest(score_func=chi2, k=3)xt_chi2 = transformer.fit_transform(x, y)#对数据集进行预处理和转换,结果为分类效果较好的三个特征print(transformer.scores_)#打印每一列的相关性
PCA
from sklearn.decomposition import PCApca = PCA(n_components = 5)xd = pca.fit_transform(x)
创建自己的转换器
转换器有两个关键函数。
fit():接收训练数据,设置内部函数。
transform():转换过程。接收训练数据集或相同格式的新数据集。
转换器接收numpy数组作为输入,根据均值将其离散化。任何高于均值的特征值替换为1,小于或等于均值的替换为0.
from sklearn.base import TransformerMixinfrom sklearn.utils import as_float_arrayclass MeanDiscrete(TransformerMixin): def fit(self, x): x = as_float_array(x) self.mean = x.mean(axis = 0) return self def transform(self, x): x = as_float_array(x) assert x.shape[1] == self.mean.shape[0] return x > self.mean
chapter 6 使用朴素贝叶斯进行社会媒体挖掘
N元语法
比起用单个词做特征,使用N元语法能更好地描述文档。N元语法是指由几个连续的词组成的子序列。拿本章用的数据集来讲,N元语法指的就是每条消息里一组连续的词。
N元语法的计算方法跟计算单个词语方法相同,把构成N元语法的几个词看成是词袋中的一个词。数据集中每一项就变成了N元语法在给定文档中的词频。
比如,“厉害了我的国”,设N = 3,则这句话的3元语法为,“厉害了”、“害了我”、“了我的”、“我的国”。
N元语法比起单个词,可有助于理解词语用法的上下文信息、有助于发现拼写错误。它的缺点是特征矩阵变得更为稀疏。
当用流水线组合起来后,为了得到模型,就用流水线的fit函数,创建模型。借助流水线的named_steps属性和步骤名,就能访问流水线的每一个步骤。如,可访问朴素贝叶斯模型。
model = pipeline.fit(x, y)nb = model.named_steps['naive-bayes']
- python数据挖掘入门与实战——学习笔记(第5、6章)
- python数据挖掘入门与实战——学习笔记(第1、2章)
- python数据挖掘入门与实战——学习笔记(第3、4章)
- 笔记《Python数据分析与实战挖掘》
- Python数据分析与挖掘实战—挖掘建模
- python数据分析与挖掘学习笔记(7)-交通路标自动识别实战与神经网络算法
- nba2014年数据获取——最近在读《Python数据挖掘入门与实战》
- python数据挖掘与分析实战 第5章 一处错误
- 《Python数据分析与挖掘实战》笔记(一):数据挖掘基础
- Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理
- 数据挖掘python学习——《写给程序员的数据挖掘实践指南》第2章
- 数据挖掘python学习——《写给程序员的数据挖掘实践指南》第3章
- python数据分析与挖掘学习笔记(6)-电商网站数据分析及商品自动推荐实战与关联规则算法
- python数据分析与挖掘学习笔记(6)-电商网站数据分析及商品自动推荐实战与关联规则算法
- Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据
- Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程
- python数据挖掘与分析实战—1、2、3
- 《python数据分析与挖掘实战》笔记-3.1代码问题
- 3DSlicer26:Add Extension/Module filepath,"no module named ..."
- 修复常见ACPI问题(DSDT等)
- 使用Eclipse的Working Set让界面更简洁
- 字串的连接最长路径查找(字符数组和排序)
- hadoop_9.06
- python数据挖掘入门与实战——学习笔记(第5、6章)
- 实现密码输入框小眼睛的功能
- bugly 集成 回调时上传lua堆栈信息
- HDOJ5884 二分+哈夫曼树
- Cocos2d从入门到睡觉:学习(二)
- git使用
- Android控件之ImageSwitcher_图片切换和TextSwitcher_文字切换
- 回溯算法
- plsql编程