VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 初识人工智能(二):机器学习(一):sklearn特征抽取

作者:@小灰灰
本文为作者原创,转载请注明出处:https://www.cnblogs.com/liuhui0308/p/12680798.html


回到顶部(go to top)

1. sklearn特征抽取

1.1 安装sklearn

pip install Scikit-learn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

没有报错,导入命令查看是否可用:


  1. import sklearn

注:安装scikit-learn需要Numpy,pandas等库。

1.2 特征抽取

例子:


  1. # 特征抽取
  2.  
  3. # 导入包
  4. from sklearn.feature_extraction.text import CountVectorizer
  5.  
  6. # 实例化CountVectorizer
  7. vector = CountVectorizer()
  8.  
  9. # 调用fit_transform输入并转换数据
  10. res = vector.fit_transform(["life is short,i like python","life is too long,i dislike python"])
  11.  
  12. # 打印结果
  13. print(vector.get_feature_names())
  14.  
  15. print(res.toarray())

运行结果:

通过例子我们可以得出结论,特征抽取对文本等数据进行特征值化。 

1.3 字典特征抽取

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

类:sklearn.feature_extraction.DictVectorizer

DictVectorizer语法:

DictVectorizer(sparse=True,…)

  • DictVectorizer.fit_transform(X)
    •   X:字典或者包含字典的迭代器
    •   返回值:返回sparse矩阵
  • DictVectorizer.inverse_transform(X)
    •   X:array数组或者sparse矩阵
    •   返回值:转换之前数据格式
  • DictVectorizer.get_feature_names()
    •   返回类别名称
  • DictVectorizer.transform(X)
    •   按照原先的标准转换

  1. from sklearn.feature_extraction import DictVectorizer
  2.  
  3. def dictvec():
  4. """
  5. 字典数据抽取
  6. :return: None
  7. """
  8. # 实例化
  9. dict = DictVectorizer()
  10.  
  11. # 调用fit_transform
  12. data = dict.fit_transform([{'city': '北京','temperature': 100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature': 30}])
  13.  
  14. print(dict.get_feature_names())
  15.  
  16. print(dict.inverse_transform(data))
  17.  
  18. print(data)
  19.  
  20. return None
  21.  
  22. if __name__ == "__main__":
  23. dictvec()

运行结果:

修改属性,让数据更直观。


  1. from sklearn.feature_extraction import DictVectorizer
  2.  
  3. def dictvec():
  4. """
  5. 字典数据抽取
  6. :return: None
  7. """
  8. # 实例化
  9. dict = DictVectorizer(sparse=False)
  10.  
  11. # 调用fit_transform
  12. data = dict.fit_transform([{'city': '北京','temperature': 100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature': 30}])
  13.  
  14. print(dict.get_feature_names())
  15.  
  16. print(dict.inverse_transform(data))
  17.  
  18. print(data)
  19.  
  20. return None
  21.  
  22. if __name__ == "__main__":
  23. dictvec()

运行结果:

 1.4 文本特征抽取

作用:对文本数据进行特征值化。

类:sklearn.feature_extraction.text.CountVectorizer

CountVectorizer语法:

CountVectorizer(max_df=1.0,min_df=1,…)

  • 返回词频矩阵
  • CountVectorizer.fit_transform(X,y)
    •   X:文本或者包含文本字符串的可迭代对象
    •   返回值:返回sparse矩阵
  • CountVectorizer.inverse_transform(X)
    •   X:array数组或者sparse矩阵
    •   返回值:转换之前数据格式
  • CountVectorizer.get_feature_names()
    •   返回值:单词列表

  1. from sklearn.feature_extraction.text import CountVectorizer
  2.  
  3. def countvec():
  4. """
  5. 对文本进行特征值化
  6. :return: None
  7. """
  8. cv = CountVectorizer()
  9.  
  10. data = cv.fit_transform(["人生 苦短,我 喜欢 python", "人生漫长,不用 python"])
  11.  
  12. print(cv.get_feature_names())
  13.  
  14. print(data.toarray())
  15.  
  16. return None

相关教程