机器学习之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出现了,依次类推


 


 

 

 

posted @ 2019-11-11 22:02  牛公的跑奔  阅读(680)  评论(0编辑  收藏  举报
总访问量:AmazingCounters.com