机器学习、深度学习能做什么:
1、传统预约
2、图像识别
3、自然语言处理
什么是机器学习:
1、数据
2、模型
3、预测
从历史数据中获得规律?这写历史数据是什么样的格式??
(1)数据集构成
特征值和目标值(对于每一行数据我们可以称之为样本,有些数据可以没有目标值)
机器学习算法分类
监督学习
目标值: 类别-分类问题
k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归
目标是:连续型的数据-回归问题
线性回归、岭回归
目标值:无-无监督学习
聚类:k-means
1、预测明天的天气是多少度?回归
2、预测明天天气是阴天还是晴天?分类
3、人脸的年龄预约?分类/回归
4、人脸识别? 分类
机器学习开发流程:
1)获取数据
2)数据处理
3)特征工程
4)机器学习算法训练-模型
5)模型评估
6)应用
特征工程
1.数据集
1.1可用数据集
数据集
学习阶段可用数据集
1)sklean
2)kaggle
3)UCI
1 Scikit-learn 工具介绍
pip install -i https://pypi.douban.com/simple sklearn
1.2 sklearn数据集
load_*: 获取小规模数据集
fetch_* :获取大规模的数据集,需要网上下载
2 sklearn 小数据集
sklearn.datasets.load_iris()
3 sklearn 大数据集
sklearn.datasets.fecth_20newsgroups(data_home=None)
4 数据集的返回值
datasets.base.Bunch(集成字典)
1.3 数据集划分
训练数据 :用于训练,构建模型
测试数据:在模型体验时使用,用于评估模型是否有效
测试集 :20% - 30%
2.特征工程介绍
算法、特征工程
2.1为什么需要特征工程
2.2什么是特征公工程
sklearn 特征工程
pandas 数据清洗,数据处理
特征抽取/特征提取
机器学习算法-统计方法-数学公式5
文本类型-》数值
类型-》数值
3.1特征提取
sklearn.feature_extraction
3.2 字典特征提取-类别-one-hot 编码
sklearn.feature_extraction.DictVectorizer(sparse=True)
矩阵 matrix 二维数组
向量:vector 一维数组
父类 :转换器类
返回spares矩阵
spares 稀疏
将非0值按位置表示出来
节省内存,提高加载效率
应用场景:
1)数据集中特征比较多
1)数据集的特征转换为字典
2)DicVectorizer()转换
2)本身拿到的就是字典
3.3 文本特征的提取:
单词 作为特征
特征:特征词
方法1:CountVectorizer()
统计每个特征词出现的次数
stop_words停用的
停用词表
关键词:在某一个类别的文章中,出现次数多,但是在其它文章中出现次数比较少
方法2:TfidfVectorizer()
TF-IDF 衡量一个字的重要程度
两个词: 经济 非常
1000篇文章 -语料库
100篇文章-非常
10篇文章-经济
两篇文章
文章A(100词) 10次”经济“ TF-IDF: 0.2
tf=10/100=0.1
idf=lg 1000/10=2
文章B(100词)10次”非场“ TF-IDF:0.1
tf=10/100=0.1
idf=log 10 1000/100 =1
tf-词频(term-frequency)
idf-逆向文档频率 是一个词语普遍重要性的度量
特征预处理
1.什么是特征预处理
为什么我们需要归一化/标准化?
特征值的单位或者大小相差较大,或者某特征的方差相比其他特征要大出几个数量级,容易影响目标结果,使得一些算法无法学习到其他特征
无量纲化
归一化:
总结 注意是最大值最小值是变化的,最大值和最小值最容易受异常点的影响,所以这重方法鲁棒性很差,只适合传统精确的小数据场景
标准化:(x-mean)/std
标准差:离散程度或者集中程度
标准化总结:在已有样本足够多的情况下比较稳定,使得现在嘈杂大数据场景
特征降维
降维 降低维度
二维数组:
此处的维度:
降低特征的个数
效果:特征与特征之间不相关
降维:
特征选择:
Filer过滤式
方差选择法:低方差过滤
相关系数:特征与特征之间的相关程度
皮尔逊相关系数
特征与特征之间相关性很高:
1)选取其中一个
2)加权求和
3)主成分分析
Embeded嵌入式
决策树
正则化
深度学习
主成分分析(PCA):
定义:高维数据转换为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
作用:是数据的维数压缩,尽可能的降低原数据的维数
应用:回归分析或者聚类分析当中,损失少量数据
sklearan.decomposition.PCA(n_components=None)
n_components
小数:表示保留百分之多少的信息
整数:减少到多少特征
分类算法
目标值:类别
1.sklearn转换器和估计器
2.knn算法
3.模型选择与调优
4.朴素贝叶斯算法
5.决策树
6.随机森林
3.1 sklearn转换器和估计器
转换器
估计器(estimator)
3.1.1 转换器
1.实例化(实例化一个转换器类(Transformer))
2.调用fit_transform(对于文档建立分类词频,不能同时调用)
标准化:
(x-mean)/std
fit_tranform()
fit() //计算每一列的平均值,标准差
tansform() //(x-mean)/std进行最终的转换
3.1.2 估计器(sklearn 机器学习算法的实现)
估计器(estimator)
1.实例化一个estimator
2.estimator.fit(x_train,y_train) 计算
--调用完毕,目标生成
3.模型评估
1)直接对比真实值和预测值
y_predict=estimator.predict(x_test)
y_test==y_predict
2)计算准确值
estimator.score(x_test,y_test)
3.2 k-近邻算法
KNN核心思想:
根据你的邻居来推断的类别
k-近邻算法 原理
k=1
容易受到异常值的影响
如何确定谁是邻居:
计算机距离:
距离公式
曼哈顿距离 绝对值距离
明可夫斯基距离
k值取得过小,容易受到异常点的影响
k值过大,容易受到样本不均衡的影响
无量纲化
标准化
总结:
优点:简单,易于理解,易于实现,无需训练
缺点:必须指定 k值,k值选择不当则分类精度不能保证
懒惰算法,对测试样本进行分类时,计算量大,内存开销大
使用场景:小数据场景,几千-几万样本,具体场景,具体业务去测试
3.3 模型选择与调优
3.3.1 什么是交叉验证(cross vaiidation)
分为 训练集,测试集
目的:为了让被评估的模型更加准确可信。
3.3.2超参数搜索-网格搜索(Grid Search)
为了寻找k值
3.3.3 案例:预测facebook签到位置
流程分析:
1)获取数据
2)数据处理
目的:
特征值
目标值
a 缩小数据范围
b time->
c 过滤签到次数少的地方
数据集划分
3)特征工程:标准化
4)KNN算法预估流程
5)模型选择与调优
6)模型评估
3.4朴素贝叶斯算法
3.4.1 什么是朴素贝叶斯分类算法
3.4.2概率基础
3.4.3 联合概率,条件概率和相互独立
联合概率:包含多个条件,且所有条件同时成立的概率
p(A,B)
条件概率:就是事件A在另一个事件B已经发生的条件下发生的概率
P(A|B)
相互独立:如果P(A,B)=P (A)P(B),则称为事件A与事件B相互独立
朴素?
特征与特征事件是相互独立的
朴素贝叶斯算法
朴素+贝叶斯
贝叶斯:P(C|W)=P(W|C)P(C)/P(W)
应用场景:
文本分类
单词作为特征
3.4.4 拉普拉斯平滑系数
目的:为了防止算出的分类概率为0
p(F|C)=Ni+α/N+αm
3.4.5朴素贝叶斯算法总结
优点:朴素贝叶斯算法发源于古典数学理论,有稳定的分类效率
对缺失数据不太敏感,常用于文本分类
分类准确高,速度快
缺点:由于使用了样本独立性的假设,如果特征属性有关联的形况下效果不好
3.5决策树
3.5.1 认识决策树
如何高效的进行决策?
特征的先后顺序
3.5.2 决策树分类原理详解
1)信息
香农:消除随机不定性的东西
信息的衡量-信息量-信息熵
H(X)=Σp(xi)logb(p(xi))
3.5.3决策树的划分依据之一=======信息增益
特征A对训练数据集D的信息增益g(D,A ),定义为集合D的信息熵H(D)与特征A的信息条件熵H(D|A)之差:公式为g(D,A)=H(D)-H(D|A )
条件熵的计算H(D/A)=ΣDi/DH(Di)
优点:可视化:可解释能力强
缺点:容易产生过拟合
3.6集成学习方法之随机森林
3.6.1 什么是集成学习放法:建立几个模型组合来解决单一预测问题,它的工作原理是生成多个模拟器/模型,各自独立地学习和做出预测,这些预测最后组合成组合预测,因此优于任何一个单分类的做出预测。
3.6.2什么是随机森林
随机:
森林:包含多个决策树的分类器
3.6.3 随机森林原理过程
训练集:特征值、目标集
N个样本
特征值 目标值
M个特征
随机
两个随机
训练集随机:--N个样本中随机有放回的抽取N个
bootstrap 随机有放回的抽样
特征随机:--从M个特征中随机抽取m个特征
M>>m
降维
3.6.4 总结:
在当前所有算法中,具有极好准确率
能够有效地运行在大数据集上,处理具有高维数特征的输入样本,而且不需要降维
能够评估各个特征在跟类问题上的重要性