美文网首页
特征提升

特征提升

作者: lip136 | 来源:发表于2017-09-22 12:01 被阅读0次

特征提取

目的:将数字化的信号数据、符号化的文本转化成特征向量。

  1. 字典储存的数据,用DictVectorizer进行特征抽取与向量化。
from sklearn.feature_extraction import DictVectorizer
measurements = [{'city':'Dubai','temperature':33},{'city':'London','temperature':12},{'city':'San Fransisco','temperature':18}]
vec = DictVectorizer()
print vec.fit_transform(measurements).toarray()
print vec.get_feature_names()
  1. 文本数据
    (1). 文本特征表示方法--词袋法(Bag of Words)
    将不重复的词汇集合成词表,每条训练文本都可以在词表上映射一个特征向量。
    (2). 特征数值的计算方法
    CountVectorizer
    考虑每种词汇在该条训练文本中的频率。
#coding:utf-8
from sklearn.datasets import fetch_20newsgroups
from sklearn.cross_validation import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report

news = fetch_20newsgroups(subset='all')
x_train,x_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25,random_state=33)
#默认不去除英文停用词
count_vec = CountVectorizer()
#训练特征向量
x_count_train = count_vec.fit_transform(x_train)
x_count_test = count_vec.transform(x_test)

#对朴素贝叶斯分类器进行初始化
mnb_count = MultinomialNB()
#对训练样本参数学习
mnb_count.fit(x_count_train,y_train)

print '20组新闻数据使用朴素贝叶斯count',mnb_count.score(x_count_test,y_test)

y_count_predict = mnb_count.predict(x_count_test)

print classification_report(y_test,y_count_predict,target_names=news.target_names)

TfidfVectorizer
不仅关注本条训练数据,还关注其他数据。

#coding:utf-8
from sklearn.datasets import fetch_20newsgroups
from sklearn.cross_validation import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report

news = fetch_20newsgroups(subset='all')
x_train,x_test,y_train,y_test =train_test_split(news.data,news.target,test_size=0.25,random_state=33)

tfidf_vec = TfidfVectorizer()
x_tfidf_train = tfidf_vec.fit_transform(x_train)
x_tfidf_test = tfidf_vec.transform(x_test)

mnb_tfidf = MultinomialNB()
mnb_tfidf.fit(x_tfidf_train,y_train)

print '20组新闻数据使用朴素贝叶斯tfidf:',mnb_tfidf.score(x_tfidf_test,y_test)
y_tfidf_predict = mnb_tfidf.predict(x_tfidf_test)
print classification_report(y_test,y_tfidf_predict,target_names=news.target_names)

在训练文本量较多的时候,利用Tfidf提升模型性能作用。

相关文章

  • 特征提升

    特征提取 目的:将数字化的信号数据、符号化的文本转化成特征向量。 字典储存的数据,用DictVectorizer进...

  • 特征提升之特征抽取----DictVectorizer

    原文 说明:DictVectorizer的处理对象是符号化(非数字化)的但是具有一定结构的特征数据,如字典等,将符...

  • 27 Pandas怎样找出最影响结果的那些特征

    27 Pandas怎样找出最影响结果的那些特征? 应用场景: 机器学习的特征选择,去除无用的特征,可以提升模型效果...

  • [Deep Learning] 特征工程

    特征工程(Feature Engineering)是从原始数据中创造新的特征以提升算法学习效果的过程。特征工程与特...

  • 特征工程

    Feature Enginnering 应用机器学习的本质是特征工程。通过特征工程,我们能持续地提升效果,而模型算...

  • 1.tensorflow版本的变迁

    Tensorflow 1.X —— 主要特征 XLA —— Accelerate Linear Algebra提升...

  • Scikit-learn提供的例子介绍几种常用的特征选择

    特征选择 特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升模型的性能,更能帮助我们...

  • 转载--结合Scikit-learn介绍几种常用的特征选择方法

    作者: Edwin Jarvis 特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。好的特征选择能够提升...

  • SLAM相关

    特征点检测的算法更新 针对前期关键点检测的算法更新: 链接 特征点的提取效果: 对VO的效果提升: 其他方法

  • Q&A第二期

    1、Q:线下auc提升了,但是线上auc未提升(或者很低)是什么原因?A1:首先需要跑特征diff,同一次请求,在...

网友评论

      本文标题:特征提升

      本文链接:https://www.haomeiwen.com/subject/wevxextx.html