机器学习概述
机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测
数据集的构成
可用的数据集
Kaggle:1.大数据竞赛平台;2.数据由很多科学家提供;3.数据真实;4.数据量巨大
UCI:1.收录了360个数据集;2.覆盖科学、生活、经济等领域;3.数据量有几十万
scikit-learn:1.数据量较小;2.方便学习
常用数据集数据的结构组成
结构:特征值+目标值
(注:有些数据集可以没有目标值)
特征工程
数据中对于特征的处理
pandas:一个数据读取非常方便以及基本的处理格式的工具
sklearn:对于特征的处理提供了强大的接口
特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性
特征工程的意义
直接影响预测结果
数据的特征抽取
特征抽取对文本等数据进行特征值化(特征值化是为了计算机更好的去理解数据)
字典特征抽取
作用:对字典数据进行特征值化,把字典中一些类别数据,分别进行转换成特征
类:sklearn.feature_extraction.DictVectorizer
DictVectorizer语法
流程
1.实例化类DictVectorizer
2.调用fit_transform方法输入数据并转换(注意返回格式)
文本特征抽取
作用:对文本数据进行特征值化
类:sklearn.feature_extraction.text.CountVectorizer
CountVectorizer语法
文本特征抽取:Count
对于单个英文字母不同:没有分类依据
流程
1.实例化类CountVectorizer
2.调用fit_transform方法输入数据并转换(注意返回格式,利用toarray()进行sparse矩阵转换array数组)
tf-idf分析问题
Tf:term frequency(词的频率),表示出现的次数
idf:inverse document frequency(逆文档频率),log(总文档数量/该词出现的文档数)
tf*idf表示重要性程度
TF-IDF:如果某个词或者词语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类
TF-IDF作用:用于评估一个词对于一个文件集或一个语料库中的其中一份文件的重要程度
类:sklearn.feature_extraction.text.TfidfVectorizer
TfidfVectorizer语法
归一化
特点:通过对原始数据进行变换把数据映射到(默认为[0,1])之间
(三个特征同等重要的时候:进行归一化)
sklearn归一化API
sklearn归一化API:sklearn.preprocessing.MinMaxScaler
归一化步骤
1.实例化MinMaxScalar
2.通过fit_transform转换
MinMaxScalar语法
归一化的缺点:对于异常点对最大值最小值影响太大
标准化
目的:使得某一个特征对最终结果不会造成更大影响
特点:通过对原始数据进行变换把数据变换到均值为0,方差为1的范围内
对于归一化来说:如果出现异常点,影响了最大值和最小值,那么结果显然会发生改变
对于标准化来说:如果出现异常点,由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小
sklearn特征化API
sklearn特征化API:scikit-learn.preprocessing.StandardScaler
StandardScaler语法
标准化步骤
1.实例化StandardScaler
2.通过fit_transform转换