机器学习
有想法的工程师
这个作者很懒,什么都没留下…
展开
-
knn算法初识
knn是什么knn是分类算法的一种,也是最最基础的一种分类算法,设计的数学知识只有一条公式,就是下图其实就是我们高中所学过的,不过也是一个很实用的数学公式knn的算法逻辑就是,我们有一批原始数据,然后通过算出新来的数据跟原有的数据的距离,得出新来的数据更类似于那张原有数据,以此判断出新来的数据应该归为那种类型 那如何用python实现argsort就是对矩阵进行...原创 2018-08-05 18:53:49 · 258 阅读 · 0 评论 -
对模型进行交叉验证
什么是交叉验证将训练数据集分为abc三组,通过ab训练出的模型被c验证,通过bc训练出的模型被a验证,通过ac训练出的模型被b验证,然后看在哪些超参数下,这个模型在3组验证中效果最好,那就选用该超参数组合为什么要用到交叉验证因为如果选用训练数据集训练模型,测试数据集来测试模型,那么有可能训练出来的模型会对测试数据集过拟合,因为我们一直是在针对测试数据集来调参,从而无法获得最佳的模型...原创 2019-04-21 00:06:17 · 1831 阅读 · 0 评论 -
多项式回归
什么是多项式回归相对于线性回归y=ax+b这种形式,多项式回归是,有高幂的项出现如何计算多项式回归其实多项式回归和线性回归是有很大联系,通过类比的方式线性回归 y=ax+b 可以看做是一个特征值x对应着一个标签y多项式回归 可以看做是[, x]两个特征值对应着一个标签y所以,使用多项式回归的思路1、先增加特征值,以2次幂为例,就增加多一列到已有的特征值中,组成[, x...原创 2019-01-20 17:11:12 · 527 阅读 · 0 评论 -
主成分分析法
概念主成分分析法就是提取样本的特征值,将多个特征转化为少数几个特征,以便达到降维样本的目的,这样可以简化样本的数据,更容易理解以及在平面表示用法1、降维数据,数据压缩,方便计算,也方便理解和在三维,或者二维平面画图2、降噪,能减少数据中一些非必要的噪点的影响原理如下图,给出蓝色点,需要找出一条向量,跟所有的点的距离是最小的,同时所有点映射在这个向量的点,距离是最大的,因为只...原创 2018-12-19 23:33:19 · 538 阅读 · 0 评论 -
随机梯度下降法以及梯度下降法调试
什么是随机梯度下降法就是从现有的数据中随机取出一部分数据进行运算,相对于批量梯度下降法每一次运算就要全部数据参与计算,随机梯度下降法可以在损失极小的精度下,换取较大的速度提升如何随机就是学习率会随着循环次数的增加而变化,也就是的值会变,具体取值约为 5/(50+i) i为当前循环的次数,这样每一次下降的速度也是随着循环的次数增加而减少,符合梯度下降的规则,越靠近最优解,下降就越快代...原创 2018-10-05 23:32:46 · 445 阅读 · 0 评论 -
多元线性回归用梯度下降法来训练模型
多元线性回归训练分为两种,一种是公式训练,一种是梯度下降法训练公式训练我已经记录了,具体可以看https://blog.csdn.net/qq_41342577/article/details/82320174梯度训练法原理 https://blog.csdn.net/qq_41342577/article/details/82718519如何使用梯度下降法来求出所需参数损...原创 2018-09-24 22:57:39 · 2128 阅读 · 0 评论 -
用线性回归方程来模拟梯度下降法
这里为了更好的记录梯度下降法的逻辑,用简单的二元线性回归方程来模拟梯度下降法来找到最小值,然后以后也可以将这个逻辑来寻找最小最优算法1、通过一点点的向最小值靠近,然后判断跟下一个点对应的损失函数的值是否相等或者低于某一个值,来判断是否已经处于一个不再下降的点所以得出线性回归的损失函数是MSE,也就是均方误差,然后对均方误差求导,就能得到梯度值,具体实现代码如下,以简单线性回归方...原创 2018-09-15 23:33:18 · 513 阅读 · 0 评论 -
多项式线性回归总结
这里主要记录多项式线性回归,会附带一部分简单线性回归的讲解线性回归其实是典型的参数训练的机器学习方法,而且专门解决回归问题首先先讲下简单线性回归简单线性回归函数表达式y=ax+b其中代码实现import numpy as npimport matplotlib.pyplot as pltclass SimpleLinearRegression: ...原创 2018-09-02 22:44:31 · 2297 阅读 · 0 评论 -
KNN算法优缺点总结,以及机器学习流程的总结
KNN算法作为一个最简单,也是一个很实用的机器学习的算法,日常的使用中也能处理很多问题,这里做一下总结记录优点1、KNN可以处理分类问题,同时天然可以处理多分类问题,比如鸢尾花的分类2、简单,易懂,同时也很强大,对于手写数字的识别,鸢尾花这一类问题来说,准确率很高3、KNN还可以处理回归问题,也就是预测 缺点1、效率低,因为每一次分类或者回归,都要把训练数据和测试数据都...原创 2018-08-25 13:34:14 · 19083 阅读 · 0 评论 -
数据归一化
用于输送给模型的数据是要经过处理的,这样得出的模型才能越来越准确,这里记录一下数据归一化的处理为什么要数据归一化比如我们拿鸢尾花数据来讲,如果我们把萼片的宽度单位换成米,长度换成是毫米,那么通过KNN算法来计算,萼片的宽度数值就会小到可以忽略不计,但是萼片的长度就对整体数据影响很大,这就对后面的结果影响很大。所以这个问题也说明,整体的数据需要保持同一个单位量级,不过现实中我们很多特征是代表...原创 2018-08-20 21:26:33 · 2086 阅读 · 0 评论 -
寻找超参数
机器学习领域,在确定好算法之后,也需要确定这个算法需要哪些参数,比如像线性函数那样,y=ax+b 需要确定a和b的值,算法中很多参数也是需要不断摸索才能确定出一个最好的数值,这里就会有两个概念超参数,算法运行之前需要确定的参数 模型参数,算法过程中需要确定的参数这里先记录寻找超参数的方法,会以knn算法为例为了找出一个机器学习算法中最合适的参数,我们大部分会使用三种方式领域知识 ...原创 2018-08-19 01:20:15 · 11032 阅读 · 0 评论 -
机器学习中的 train_test_split模式
什么是train_test_split模式说白了就是将我们的训练集分成两部分,一部分用来真实机器算法训练用的,一部分是用来校验训练好的模型用的这里使用knn算法来预判新来的是哪种鸢尾花的品种,这里用的是sklearn提供的鸢尾花数据集上图代码中我自己写了一个方法将数据简单的分成了训练集和测试集,不过我们这里其实已经引入了train_test_split这个模块的方法,可以直接帮...原创 2018-08-12 13:24:54 · 4357 阅读 · 0 评论 -
训练模型时,解决方差过大的方法
如果我们选好一种算法是刚好能应对我们的数据分析的,那么从算法层面,我们需要解决的问题主要集中在如何减少方差过大的情况,因为这会减低我们的算法的泛化能力,主要有以下几点方法降低模型的复杂度 减少数据维度:降噪 增加样品总数 使用验证集 模型正则化...原创 2019-04-23 23:19:40 · 3402 阅读 · 0 评论