特征抽取sklearn.feature_extraction 模块提供了从原始数据如文本,图像等众抽取能够被机器学习算法直接处理的特征向量。

1.特征抽取方法之 Loading Features from Dicts

  1. measurements=[
  2. {'city':'Dubai','temperature':33.},
  3. {'city':'London','temperature':12.},
  4. {'city':'San Fransisco','temperature':18.},
  5. ]
  6.  
  7. from sklearn.feature_extraction import DictVectorizer
  8. vec=DictVectorizer()
  9. print(vec.fit_transform(measurements).toarray())
  10. print(vec.get_feature_names())
  11.  
  12. #[[ 1. 0. 0. 33.]
  13. #[ 0. 1. 0. 12.]
  14. #[ 0. 0. 1. 18.]]
  15.  
  16. #['city=Dubai', 'city=London', 'city=San Fransisco', 'temperature']

2.特征抽取方法之 Features hashing

3.特征抽取方法之 Text Feature Extraction

词袋模型 the bag of words represenatation

  1. #词袋模型
  2. from sklearn.feature_extraction.text import CountVectorizer
  3. #查看默认的参数
  4. vectorizer=CountVectorizer(min_df=1)
  5. print(vectorizer)
  6.  
  7. """
  8. CountVectorizer(analyzer='word', binary=False, decode_error='strict',
  9. dtype=<class 'numpy.int64'>, encoding='utf-8', input='content',
  10. lowercase=True, max_df=1.0, max_features=None, min_df=1,
  11. ngram_range=(1, 1), preprocessor=None, stop_words=None,
  12. strip_accents=None, token_pattern='(?u)\\b\\w\\w+\\b',
  13. tokenizer=None, vocabulary=None)
  14.  
  15. """
  16.  
  17. corpus=["this is the first document.",
  18. "this is the second second document.",
  19. "and the third one.",
  20. "Is this the first document?"]
  21. x=vectorizer.fit_transform(corpus)
  22. print(x)
  23.  
  24. """
  25. (0, 1) 1
  26. (0, 2) 1
  27. (0, 6) 1
  28. (0, 3) 1
  29. (0, 8) 1
  30. (1, 5) 2
  31. (1, 1) 1
  32. (1, 6) 1
  33. (1, 3) 1
  34. (1, 8) 1
  35. (2, 4) 1
  36. (2, 7) 1
  37. (2, 0) 1
  38. (2, 6) 1
  39. (3, 1) 1
  40. (3, 2) 1
  41. (3, 6) 1
  42. (3, 3) 1
  43. (3, 8) 1
  44. """

默认是可以识别的字符串至少为2个字符

  1. analyze=vectorizer.build_analyzer()
  2. print(analyze("this is a document to anzlyze.")==
        (["this","is","document","to","anzlyze"]))
  3.  
  4. #True

在fit阶段被analyser发现的每一个词语都会被分配一个独特的整形索引,该索引对应于特征向量矩阵中的一列

  1. print(vectorizer.get_feature_names()==(
  2. ["and","document","first","is","one","second","the","third","this"]
  3. ))
  4. #True
  5. print(x.toarray())
  6. """
  7. [[0 1 1 1 0 0 1 0 1]
  8. [0 1 0 1 0 2 1 0 1]
  9. [1 0 0 0 1 0 1 1 0]
  10. [0 1 1 1 0 0 1 0 1]]
  11. """

获取属性

  1. print(vectorizer.vocabulary_.get('document'))
  2. #1

对于一些没有出现过的字或者字符,则会显示为0

  1. vectorizer.transform(["somthing completely new."]).toarray()
  2. """
  3. [[0 1 1 1 0 0 1 0 1]
  4. [0 1 0 1 0 2 1 0 1]
  5. [1 0 0 0 1 0 1 1 0]
  6. [0 1 1 1 0 0 1 0 1]]
  7. """

在上边的语料库中,第一个和最后一个单词是一模一样的,只是顺序不一样,他们会被编码成相同的特征向量,所以词袋表示法会丢失了单词顺序的前后相关性信息,为了保持某些局部的顺序性,可以抽取2个词和一个词

  1. bigram_vectorizer=CountVectorizer(ngram_range=(1,2),token_pattern=r"\b\w+\b",min_df=1)
  2. analyze=bigram_vectorizer.build_analyzer()
  3. print(analyze("Bi-grams are cool!")==(['Bi','grams','are','cool','Bi grams',
  4. 'grams are','are cool']))
  5.  
  6. #True
  7. x_2=bigram_vectorizer.fit_transform(corpus).toarray()
  8. print(x_2)
  9.  
  10. """
  11. [[0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0]
  12. [0 0 1 0 0 1 1 0 0 2 1 1 1 0 1 0 0 0 1 1 0]
  13. [1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0]
  14. [0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1]]
  15. """

sklearn中模型抽取的更多相关文章

  1. sklearn 中模型保存的两种方法

    一. sklearn中提供了高效的模型持久化模块joblib,将模型保存至硬盘. from sklearn.externals import joblib #lr是一个LogisticRegressi ...

  2. sklearn中模型评估和预测

    一.模型验证方法如下: 通过交叉验证得分:model_sleection.cross_val_score(estimator,X) 对每个输入数据点产生交叉验证估计:model_selection.c ...

  3. sklearn保存模型的两种方式

    sklearn 中模型保存的两种方法   一. sklearn中提供了高效的模型持久化模块joblib,将模型保存至硬盘. from sklearn.externals import joblib # ...

  4. 第十三次作业——回归模型与房价预测&第十一次作业——sklearn中朴素贝叶斯模型及其应用&第七次作业——numpy统计分布显示

    第十三次作业——回归模型与房价预测 1. 导入boston房价数据集 2. 一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示. 3. 多元线性回归模型,建立13个变量与房价之间的预测模 ...

  5. sklearn中的模型评估-构建评估函数

    1.介绍 有三种不同的方法来评估一个模型的预测质量: estimator的score方法:sklearn中的estimator都具有一个score方法,它提供了一个缺省的评估法则来解决问题. Scor ...

  6. sklearn中的KMeans算法

    1.聚类算法又叫做“无监督分类”,其目的是将数据划分成有意义或有用的组(或簇).这种划分可以基于我们的业务需求或建模需求来完成,也可以单纯地帮助我们探索数据的自然结构和分布. 2.KMeans算法将一 ...

  7. 机器学习实战基础(二十四):sklearn中的降维算法PCA和SVD(五) PCA与SVD 之 重要接口inverse_transform

    重要接口inverse_transform  在上周的特征工程课中,我们学到了神奇的接口inverse_transform,可以将我们归一化,标准化,甚至做过哑变量的特征矩阵还原回原始数据中的特征矩阵 ...

  8. Python 3 利用 Dlib 19.7 和 sklearn机器学习模型 实现人脸微笑检测

    0.引言  利用机器学习的方法训练微笑检测模型,给一张人脸照片,判断是否微笑:   使用的数据集中69张没笑脸,65张有笑脸,训练结果识别精度在95%附近: 效果: 图1 示例效果 工程利用pytho ...

  9. sklearn中的Pipeline

    在将sklearn中的模型持久化时,使用sklearn.pipeline.Pipeline(steps, memory=None)将各个步骤串联起来可以很方便地保存模型. 例如,首先对数据进行了PCA ...

随机推荐

  1. RFS自动化测试工具安装与使用总结

    转载:http://blog.csdn.net/a5650892/article/details/77826021 一,调试1,在调试时,总时提示“无法打开浏览器”解决办法:1,把浏览器的代理关闭2, ...

  2. error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4该符号在函数_WinMain@16 中被引用

    编译链接报错 error LNK2019: 无法解析的外部符号 __imp__GetStockObject@4该符号在函数_WinMain@16 中被引用 解决方案: 在代码中添加链接库gdi32.l ...

  3. Java-Class-C:cn.hutool.core.date.DateUtil

    ylbtech-Java-Class-C:cn.hutool.core.date.DateUtil 1.返回顶部   2.返回顶部 1.1. import cn.hutool.core.date.Da ...

  4. jenkins在pipline中运行后台命令

    需求 在jenkin中启动java程序或者python程序的时候,希望程序在后台执行,并在jenkins构建完成之后继续执行.在工作中有两个地方我碰到了这种需求 在shell script输入框中pi ...

  5. Codeforces 1173A Nauuo and Votes

    题目链接:http://codeforces.com/problemset/problem/1173/A 思路:模拟. AC代码: #include<bits/stdc++.h> usin ...

  6. python3 使用int函数将浮点数转换成整数

    int函数将浮点数转换成整数需要注意的地方 >>> int(153)153>>> int(153.4)153>>> int(153.5)153&g ...

  7. 6.1_springboot2.x分布式-整合SpringCloud

    1.SpringCloud简介 ​ Spring Cloud是一个分布式的整体解决方案.Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性t ...

  8. webpack4.x的使用历程

    第一次接触的webpack是在一个3.x的资料中 在4.x的运用中遇到了好多的坑,我就以小白的身份把我使用webpaxk的过程分享出来,其中很多不足欢迎大佬们指正 node安装不再赘述 一.安装 np ...

  9. 2018-2-13-win10-uwp-如何拖动一个TextBlock的文字到另一个TextBlock-

    title author date CreateTime categories win10 uwp 如何拖动一个TextBlock的文字到另一个TextBlock lindexi 2018-2-13 ...

  10. SolidWorks新建三维零件

    1.创建工作目录. 2.新建一个零件三维模型文件. 3.创建零件中的各个特征 (1).创建第一个特征(基础特征) ①选择命令 ②创建截面草图 定义草图平面 定义截面草图 完成草图 ③定义深度等属性 定 ...