1 前言
在使用sklearn处理数据的时候,会经常看到fit_tranform(),但是偶尔也会遇到fit()和transform()函数,不太明白怎么使用,于是查询资料整理一下。
2 理解
fit:原义指的是安装、使适合的意思,其实有点train的含义但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是定死的,最后只是得到了一个统一的转换的规则模型。
transform:是将数据进行转换,比如数据的归一化和标准化,将测试数据按照训练数据同样的模型进行转换,得到特征向量。
fit_transform:可以看做是fit和transform的结合,如果训练阶段使用fit_transform,则在测试阶段只需要对测试样本进行transform就行了。
下面来看一下这两个函数的API以及参数含义:
1、fit_transform()函数
即fit_transform()的作用就是先训练,找到转换数据的规则,然后根据找到的规则转换数据。
2、transform()函数
即tranform()的作用是根据找到的规则对数据进行转换。
3 小栗子
训练阶段:
corpus = _readbunchobj(wordbag_path).contents
tf_vectorizer = CountVectorizer(max_df=0.95,min_df=2,stop_words=stpwrdlst)
tf = tf_vectorizer.fit_transform(corpus)
测试阶段:
contents = _readfile(file_name)
tf = tf_vectorizer.transform([contents])
参考文章