机器学习笔记

    xiaoxiao2023-11-28  152

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

    最新回复(0)