zoukankan      html  css  js  c++  java
  • 机器学习之scikit-learn库

    前面讲到了,这个库适合学习,轻量级,所以先学它。

    安装就不讲了,简单。不过得先安装numpy和pandas库才能安装scikit-learn库。

    如果安装了anaconda得话,会自带有这个库。

    ----------------------------------------------------------------------------------------------------------

    1、首先进行字典特征提取

    作用:对字典数据进行特征值提取。

    API:sklearn.feature_extraction.DictVectorizer

    流程:1、实例化类  DictVectorizer()

      2、调用fit_transorm方法输入数据并转换

    上代码:

     1 from sklearn.feature_extraction import DictVectorizer
     2 
     3 def dictvec():
     4     '''
     5     字典数据抽取
     6     :return: None
     7     '''
     8     # 实例化
     9     dict = DictVectorizer()
    10 
    11     # 调用fit_transorm
    12     data = dict.fit_transform([{'name':'X','score': 80},{'name':'Y','score': 90},{'name':'Z','score': 100}])
    13 
    14     print(data)
    15 
    16     return None
    17 
    18 if __name__ == '__main__':
    19     dictvec()

     可以看到输出结果是一个Sparse矩阵,前面得括号里面是坐标,后面的数字是这个坐标的值,比如:(0,0) 1.0 表示在第0行0列的值为1。

    其他没有列出来的坐标如(0,1)、(0,2)等的值默认为0.

    将DictVectorizer()中的sparse参数设置为False可以使得结果容易可读。

     2、文本特征提取

    作用:对文本数据进行提取

    API:sklearn.feature_extraction.text.CountVectorizer


    上代码:假设有两篇文章分别为:
    'life is shortm,i like Python'和'life is too long, i dislike Python'
    
    
     1 from sklearn.feature_extraction.text import CountVectorizer
     2 
     3 def countvec():
     4     '''
     5     对文本进行特征值提取
     6     :return: None
     7     '''
     8     # 实例化
     9     cv = CountVectorizer()
    10 
    11     # 调用fit_transorm
    12     data = cv.fit_transform(['life is shortm,i like Python','life is too long, i dislike Python'])
    13 
    14     print(data)
    15     
    16     return None
    17 
    18 if __name__ == '__main__':
    19     countvec()
    
    

    结果和字典提取是一样的,值得注意的是这里要将parse矩阵转换成比较容易读的二维矩阵的话,是在结果中调用toarray(),而不是设置sparse参数
    如下图:

     get_feature_names()返回一个列表,列表里面是提取的所有特征(本例中提取出了8个单词,单个字母不统计)。

    结果中有两个列表,每个列表对应一篇文章。第一个列表中第一个0表示第一篇文章中dislike没有出现,第一个列表中第一个1表示is出现了,依次类推

    
    
    
    
    
    
     
    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    js数组删除数组元素!
    ASP.NET安全问题--ASP.NET安全架构
    片滚动插件myScroll
    JS 回车提交,兼容IE、火狐、Opera、Chrome、Safari
    poj_2386_dfs
    poj_1852_Ants(复杂问题简单化)
    File Mapping
    Creating a File View
    next_permutation
    Creating a File Mapping Object
  • 原文地址:https://www.cnblogs.com/GouQ/p/11838829.html
Copyright © 2011-2022 走看看