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出现了,依次类推

    
    
    
    
    
    
     
    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    CEF3研究(三)
    [你必须知道的.NET]第二十一回:认识全面的null
    [你必须知道的.NET]第二十回:学习方法论
    [你必须知道的.NET]第十九回:对象创建始末(下)
    [你必须知道的.NET]第十八回:对象创建始末(上)
    [你必须知道的.NET]第十七回:貌合神离:覆写和重载
    纯js的N级联动列表框 —— 基于jQuery
    基于存储过程的MVC开源分页控件
    【程序7】统计出所输入字符中英文字母、空格、数字和其它字符的个数
    【程序6】 求最大公约数和最小公倍数
  • 原文地址:https://www.cnblogs.com/GouQ/p/11838829.html
Copyright © 2011-2022 走看看