总结机器学习部分计算原理

  感觉学习python的机器学习还是要总结下的,东西太多了,又不知道那个是常用的,不如总结一下以免忘记,也好以后查看。

  1、数据集

    数据集就是大量的、有效的数据,数据集分为训练集和测试集,以下全部为个人理解:训练集就是样本数据,通过对大量样本数据进行统计学计算,得到“样本们”表达出的共有的性质,就是特征。我觉得就可以类比于人类“找规律”,机器通过训练集“找规律”,找到规律后,就可以以这个规律来验证其他的数据是否符合,从而判断其他数据代表的内容是不是想要得到的目标。

    最常见的小型数据集就是sklearn自带的鸢尾花数据集,sklearn是python的第三方库,开源的机器学习工具包,我们可以从中找到鸢尾花数据集,代码如下

1 from sklearn.datasets import load_iris
2 # 测试鸢尾花数集
3 def dataset():
4     iris = load_iris()
5     print(iris)

    打印出来的效果是这样的:

 

 

 

 

 

        数据太多了,就不全截屏了,可以看到的是,共150条样本,均分成3类(指3类鸢尾花,分别是'setosa', 'versicolor', 'virginica',分别是山鸢尾花,变色鸢尾花和维吉尼亚鸢尾花),分为4个属性(分别是'sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)',分别是花萼长度,花萼宽度,花瓣长度,花瓣宽度)。想要了解更多可以 看一看探索sklearn | 鸢尾花数据集分析鸢尾花数据集

  2、字典特征抽取

    特征抽取,个人理解就是将所有的东西统一转化为数字,因为只有数字才可以进行计算处理。这里就涉及到了one-hot编码的转化方式。这是一个比较难理解的编码方式,它转换的规则应该用程序来解释。下面的程序就是字典特征抽取。

 1 def dict_trans():
 2     # 设置数据
 3     data = [{"关键词": "理工大学","位置":"山西"},
 4             {"关键词": "理工大学","位置":"北京"},
 5             {"关键词": "清华大学","位置":"北京"}]
 6     # 实例化DictVectorizer,参数sparse默认True,默认截图第二个
 7     trans = DictVectorizer(sparse=False)
 8     # 进行特征抽取
 9     datax = trans.fit_transform(data)
10     print(datax)
11     # 打印特征属性名字
12     print(trans.get_feature_names())

 

 

 

 

 

 

    可以通过运行结果了解one-hot编码格式是什么样的:第一张图是3x4矩阵,可以看到提取出4个特征属性对应矩阵的4列,而data中有3个样本正好对应矩阵的3行,所以可以看出,形成的3x4矩阵,行表示样本,列表示4个特征属性,而1和0代表当前样本有没有这个特征属性。

    在第二张图中表示的是图一的描述位置,(0,1)代表第0行第1列有值,1.0表示值为1,剩下的以此类推。当然,如果data中给的特征属性不是字符串,而是数字,那么在图一的矩阵中相应位置上就会显示数字,而图二中的位置表示的值就是给定的数字。

  3、文本特征抽取

    文本特征抽取和字典特征抽取实现代码基本相同,但其中,data应当是列表格式,下附代码和输出

 

1 # 文本特征抽取
2 def text_trans():
3     data = ['理工大学 山西','理工大学 北京','清华大学 北京']
4     trans = CountVectorizer()
5     datax = trans.fit_transform(data)
6     # CountVectorizer没有参数sparse,所以用toarray达到输出效果
7     print(datax.toarray())
8     print(trans.get_feature_names())

 

 

 

 

 

 

 

     文本特征抽取需要注意的一点是输入的数据,CountVectorizer()方法可以识别单个字、符号的无用字符串,它也可以根据标点符号、空格分割出特征属性,但它不可以将中文段落识别成一个个中文词组,所以应当配合jieba(同样是python的第三方库,专门用来处理中文)切词共同食用。

 

参考资料:https://blog.csdn.net/u013019338/article/details/87475669

     https://www.cnblogs.com/mandy-study/p/7941365.html

     https://blog.csdn.net/chuan403082010/article/details/85217891

推荐数据集网站(国内能上的):https://tianchi.aliyun.com/dataset/

               https://www.kdnuggets.com/datasets/index.html

               https://www.pkbigdata.com/common/cmptIndex.html

     

posted @ 2020-03-13 14:10  一夕思醉  阅读(172)  评论(0编辑  收藏  举报