人工智能概述
什么是机器学习?
机器学习开发流程?
特征工程概述
①数据集
②特征抽取
人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能核心,是使计算机具有智能的根本途径。
机器学习的主要由 数据 (数据集由特征值+目标值构成)、 模型 、 预测 三部分组成。
机器学习算法(模型)主要分为监督学习(有目标值) 和 无监督学习(无目标值) 两类,监督学习包含分类算法和回归算法;无监督学习主要指聚类算法。
①获取数据 —> ②数据处理 —> ③特征工程 —> ④机器学习算法、训练 —> ⑤模型评估 —> ⑥应用
其中①②步骤,与大数据中类似,机器学习的主要工作集中在③④⑤上面,本次学习主要是使用Sklearn来进行验证实践,开发学习环境(Win10+python3+sublime)来进行。
特征工程,是指用一系列工程化的方式从原始数据中筛选出更好的数据特征,以提升模型的训练效果。它主要包含以下4个部分:①数据集—>②特征抽取—>③特征预处理—>④特征降维。
初学者数据集来源可从 sklearn自带、kaggle(google旗下)大数据竞赛平台、UCl大学公开数据集等。更多的,若需要的话,可参考链接该博主的博文内容:免费数据集-整理。
获取到的数据集特征,需将训练结果与测试结果进行比较,来评判训练结果的好坏,这时候需将数据划分为 训练集、测试集,其中训练集 > 测试集(测试集约占数据集的 20~30%)。
1、学习使用的是sklearn自带的鸢尾花数据集,sklearn中加载小数据集使用 load_*、大数据集使用 fetch_*;
获取数据集、划分数据集的模块分别在:sklearn.datasets 、sklearn.model_selection中,按需import即可。
数据和特征决定了机器学习的上限,而算法和模型只是逼近,合适的特征值,事半功倍。机器学习算法是统计方法和数学公式的实现,因而需将文本类型的特征转换为数值特征。
Sklearn中主要介绍了两类特征提取的方法:字典特征提取 和 文本特征提取。
1、字典特征提取
它的主要作用是:将字典中属于类别的特征,使用one-hot编码表示出来(如sparse矩阵:将非0值的为位置均表示出来,可以节省内存,提高运行/加载效率)。
适用场景:1)数据集中类别特征较多时;2)本身拿到的数据为字典类型时。
使用字典特征抽取的方法封装在 sklearn.feature_extraction.DictVectorizer 中,按需import即可。
2、文本特征抽取
若不明确规定,机器会将长句作为特征保存,长句特征的匹配度肯定是极低的,因而文本类型的数据集,会将单词作为特征词来进行统计分析。
sklearn中有两种抽取文本特征的方法:1)CountVectorizer;2)TfidfVectorizer;同样是封装在sklearn.feature_extraction.text 中的,按需import调用。
2.1 CountVectorizer
CountVectorizer是统计每个样本中,特征词出现的次数。符号、名称代词等不具分析意义的词,默认忽略,也可使用 stop_words 参数,来设置停用词(类似if、true等没有意义的词,可参考停用词表)。
像英文短句、和做了分词的中文短句,可直接使用CountVectorizer来进行统计,中文句子默认是不会进行分词的,可使用Jieba (import jieba)来进行自动分词(jieba基本满足日常,但在医学、法学等特殊行业,分词效果不佳)。
jieba的使用方式如上。
2.2 TfidfVectorizer
TfidfVectorizer 是通过数学量化方法,可自动识别关键词,统计TF(term frequency,词频)来衡量一个特征词的重要程度。
例子:给定两个热词 “非常” 、“经济” 在1000篇文章的数据集中,100篇中出现了“非常”,10篇出现了“经济”,可以得到:
“非常”的IDF(Reverse Document frequency,逆向文本频率)log 10为底 (1000/10) = 2 ;
“经济”的IDF(Reverse Document frequency,逆向文本频率)log 10为底 (1000/100) = 1 ;
现有文章A(100词),出现了10次“经济” ,TF = 10/100 = 0.1 ,TF-IDF = 0.1 x 2 = 0.2 ;
现有文章B(100词),出现了10次“非常”, TF = 10/100 = 0.1 ,TF-IDF = 0.1 x 1 =0.1 ;
根据 TF-IDF 的值,可以判断:“经济”这个词对分类更加关键,因而常被应用在分类机器算法进行文章分类中前期预处理。
练习代码+数据集下载地址:
链接:https://pan.baidu.com/s/1OS1YBO4bscXkQVkWcdcRTA?pwd=urn2
提取码:urn2
学习视频