数据处理

This commit is contained in:
yinkanglong_lab
2021-03-21 22:46:33 +08:00
parent 20a6a22f08
commit f4df8cbec9
3 changed files with 671 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
# fit&transform说明
## 1 概述
* fit和transform没有任何关系仅仅是数据处理的两个不同环节之所以出来fit_transform这个函数名仅仅是为了写代码方便会高效一点。
* sklearn里的封装好的各种算法使用前都要fitfit相对于整个代码而言为后续API服务。fit之后然后调用各种API方法transform只是其中一个API方法所以当你调用transform之外的方法也必须要先fit。
* fit原义指的是安装、使适合的意思其实有点train的含义但是和train不同的是它并不是一个训练的过程而是一个适配的过程过程都是确定的最后得到一个可用于转换的有价值的信息。
## 2 使用
## 2.1 数据预处理中方法
```
fit(): Method calculates the parameters μ and σ and saves them as internal objects.
解释简单来说就是求得训练集X的均值方差最大值最小值,这些训练集X固有的属性。
```
```
transform(): Method using these calculated parameters apply the transformation to a particular dataset.
解释在fit的基础上进行标准化降维归一化等操作看具体用的是哪个工具如PCAStandardScaler等
```
```
fit_transform(): joins the fit() and transform() method for transformation of dataset.
解释fit_transform是fit和transform的组合既包括了训练又包含了转换。
```
* transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
* fit_transform(trainData)对部分数据先拟合fit找到该part的整体指标如均值、方差、最大值最小值等等根据具体转换的目的然后对该trainData进行转换transform从而实现数据的标准化、归一化等等。
* 根据对之前部分trainData进行fit的整体指标对剩余的数据testData使用同样的均值、方差、最大最小值等指标进行转换transform(testData)从而保证train、test处理方式相同。
* 所以,一般都是这么用:
```
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_tranform(X_train)
sc.tranform(X_test)
```
## 2.2 各种算法的fittransform方法
1. CountVectorizer举例sklearn的CountVectorizer库是根据输入数据获取词频矩阵稀疏矩阵
1. fit(raw_documents) :根据CountVectorizer参数规则进行操作比如滤除停用词等拟合原始数据生成文档中有价值的词汇表
2. transform(raw_documents):使用符合fit的词汇表或提供给构造函数的词汇表从原始文本文档中提取词频转换成词频矩阵.
3. fit_transform(raw_documents, y=None):学习词汇词典并返回术语 - 文档矩阵(稀疏矩阵)。
2. TfidfTransformer举例TF-IDF(Term frequency * Inverse Doc Frequency)词权重。
在较低的文本语料库中一些词非常常见例如英文中的“the”“a”“is”因此很少带有文档实际内容的有用信息。如果我们将单纯的计数数据直接喂给分类器那些频繁出现的词会掩盖那些很少出现但是更有意义的词的频率。
为了重新计算特征的计数权重以便转化为适合分类器使用的浮点值通常都会进行tf-idf转换。词重要性度量一般使用文本挖掘的启发式方法TF-IDF。IDF逆向文件频率inverse document frequency是一个词语普遍重要性的度量不同词重要性的度量
1. fit(raw_documents, y=None):根据训练集生成词典和逆文档词频 由fit方法计算的每个特征的权重存储在model的idf_属性中。
2. transform(raw_documents, copy=True)使用fit或fit_transform学习的词汇和文档频率df将文档转换为文档 - 词矩阵。返回稀疏矩阵,[n_samples, n_features]Tf-idf加权文档矩阵Tf-idf-weighted document-term matrix
## 3 总结
* 上述第一类和第二类等价。算法中的fit方法的应用等价于第一类的fit只不过产生的结果意义不同不是均值等统计意义而是根据算法本身拟合获取不同信息以备后用transform根据fit的结果转换成目标形式具体需深究代码实现。
* 必须先用fit_transform(trainData)之后再transform(testData)
* 如果直接transform(testData),程序会报错。
* 如果fit_transfrom(trainData)后使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long