机器学习、深度学习能做什么: 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 总结: 在当前所有算法中,具有极好准确率 能够有效地运行在大数据集上,处理具有高维数特征的输入样本,而且不需要降维 能够评估各个特征在跟类问题上的重要性