决策树
什么是决策树:类似于程序设计中的条件分支结构if-else结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法。
决策树:由多个判断节点组成的树,每个内部节点代表属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
决策树分类原理
信息熵:数据有序熵小,无序熵大。
信息增益:使用划分前后集合熵的差值来衡量使用当前特征对于样本集合划分效果的好坏。
信息增益越高则越靠近树节点,然后依次叶节点进行划分。
基尼值和基尼指数:基尼值越小,数据集的纯度越高。
ID3算法:信息增益(只能对离散属性的数据集构成决策树)
C4.5算法:信息增益率(解决了ID3分支过程中总喜欢偏向选择值较多的属性)
CART算法:基尼系数(可以进行分类和回归,可以处理离散属性,也可处理连续属性)
剪枝
是决策树学习算法中对付过拟合的主要手段。
预剪枝和后剪枝:根据是否能提升决策树的泛化能力
特征工程-特征提取
定义:将任意数据(如文本或图像)转换为可用于机器学习的数字特征。
特征提取分类:字典特征提取(特征离散化)、文本特征提取、图像特征提取(深度学习)
特征提取API
sklearn.feature_extraction
1.字典特征提取
作用:对字典数据进行特征值化
sklearn.feature_extraction.DictVectorizer()
data=[{'city':'北京','temperature':100}]
#1.实例化一个转换器类
transfer=DictVectorizer(sparse=False)
#2.调用fit_transform
data=transfer.fit_transform(data)
2.文本特征提取
作用:对文本数据进行特征值化
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])
对中文需要进行分词处理
jieba分词
text=’’.join(list(jieba.cut(text)))
3.Tf-idf文本特征提取
主要思想:如果某个词或者短语在一篇文章中出现的概率高,并且在其他文章中很少出现,则认为这个词或者短语具有很好的类别区分能力,适合用于分类。
TF-IDF作用:用以评估一字词对于一个文件集或者一个语料库中的其中一份文件的重要程度。
决策树算法API
sklearn.tree.DecisionTreeClassifier()