
机器学习/深度学习
一些机器学习和深度学习的东西……
木子六日
好好学习天天向上
展开
-
Keras简单梳理
Keras基础首先你必须安装TensorFlow或者其他keras支持的后端keras的官方中文说明文档链接:Keras中文说明文档;有了keras之后,搭建网络结构会变得非常方便;文章目录Keras基础keras实现线性回归keras实现非线性回归mnist手写数字识别keras实现cnnkeras实现lstm模型的保存与载入keras实现线性回归先举一个例子看下keras有多方便,以下是keras实现线性回归的一个例子:import numpy as npimport matplotli原创 2020-10-11 13:49:50 · 321 阅读 · 0 评论 -
集成学习(三)—— Adaboost的理念和推导
Adaboost的理念与推导说明adaboost也是集成学习的一种,也是很多模型一起做决策,最终投票决定,下面会介绍一下adaboost的理念、流程以及简要推导。理念1.错题应该被多做bagging中的抽样是随机的,但更boosting的策略是使那些被分错类的数据以更高的概率出现,简单来说,在平时练习的过程中应该多做错题,这样真正考试的时候才更有把握。2.强者拥有更多的话语权我们有很...原创 2020-02-20 17:05:51 · 305 阅读 · 0 评论 -
集成学习(二)—— 随机森林
随机森林简介随机森林就是 决策树+bagging+随机属性。就是说在决策树的基础上,使用bagging搞了多个模型最后投票决定分类。另外不同数据集之间的属性也可能是不一样的,因为不仅是样本随机选,属性也是随机选的,可能在这个数据集里样本有abc三个属性,到了另一个数据集里就是def三个属性了。大概就是这样吧,也没啥好说的。sklearn实现随机森林import numpy as...原创 2020-02-16 21:26:12 · 507 阅读 · 0 评论 -
集成学习(一)—— Bagging
Baggging概述bagging又叫套袋法,集成学习的一种。简单来说是这样的:我们有了训练集T,有放回地取数据至集合T1中,再有放回地取数据到T2中,……,有放回地取数据至Tk中;这样我们就有了k个训练集,对于每一个训练集分别训练(可用同一种方法,也可也不同方法),我们就有了k个模型;对于分类问题,采用投票的方式确定最终的分类,对于回归问题,取均值作为最终的预测数据。当然baggi...原创 2020-02-13 21:43:31 · 661 阅读 · 0 评论 -
决策树(三)—— CART算法
CART算法基尼系数信息熵可以用来衡量某事的不确定性,还有一个指标叫做基尼系数,也可以用来衡量不确定性。Gini=1−∑iKpi2Gini = 1-\sum_i^Kp_i^2Gini=1−i∑Kpi2K代表类别,p代表概率。拿投硬币来说,如果是正常的硬币,那么正反两面的概率都是二分之一。如果硬币做了手脚,使得正面的概率变为0.8,那么可以说对于投一次硬币这件事而言,它的不确定性变...原创 2020-02-11 17:00:28 · 686 阅读 · 0 评论 -
决策树(二)—— ID3和C4.5
ID3和C4.5决策树看这张图就明白了。简单来说就是根据特征构造一棵树,叶子结点代表了分类的结果,叶子结点到根节点的路径代表了不同特征的组合。也就是说我们认为不同特征的组合造成了分类结果的不同。ID3那我们怎么构造这棵树呢?把哪些特征放在上面哪些放在下面呢?上一篇博客提到了信息熵的相关知识。ID3算法就是根据信息增益来排序的。我们自然是把最重要的信息放在上面,这里的重要意味着有...原创 2020-02-10 16:27:24 · 406 阅读 · 0 评论 -
决策树(一)—— 信息熵及衍生概念
决策树信息量首先明确一个概念,信息和质量、时间、长度等一样,也是一个物理概念,其最小单位是bit,也就是二进制一位所代表的信息大小。时间过了5秒,代表着过了5个原子钟(世界上最准的那个)的一秒这么长的时间,即5*1=5。那信息有3bit,就代表着抛三次硬币所能产生结果的信息大小,我们知道有23=82^3=823=8种结果。那么信息量的大小就能计算了,因为3=log283=log_283=...原创 2020-02-09 18:32:24 · 631 阅读 · 0 评论 -
KNN —— 基本介绍与简要实现
KNN介绍knn又叫做k最近邻,也是一个分类的算法,其基本思想如下:我们预测一个样本属于哪一类,就看在一定范围内,它离那个类别最近。K代表你指定的范围,比如你指定K为7,就是说在离测试数据最近的7个样本中,哪个类别占得多,那我们就把测试数据分到那一类。一般来说如果是二分类的话,K都会取奇数,免得出现一样的情况。步骤计算测试点到所有样本点的距离对距离进行从小到大排序取前K个最近的...原创 2020-02-03 17:01:42 · 554 阅读 · 0 评论 -
神经网络(三)—— BP算法基本推导
BP算法前情回顾上回我们说到,单层的线性神经网络权值的迭代公式是:w:=w−ηXT(f(wX)−y)f′(wX)w:=w-\eta X^T(f(wX)-y)f'(wX)w:=w−ηXT(f(wX)−y)f′(wX)其中呢,这个(f(wX)−y)f′(wX)(f(wX)-y)f'(wX)(f(wX)−y)f′(wX)我们称它为δ\deltaδ,于是w:=w−ηXTδw:=w-\eta...原创 2020-01-30 18:46:32 · 1088 阅读 · 0 评论 -
神经网络(二)—— 线性神经网络
线性神经网络介绍线性神经网络和感知机的区别不大,只是把激活函数由y=sign(x)变成了purelin函数y=x。为什么要改激活函数呢?感知机是通过误分类点来不断修改权值,这样会导致最终的超平面虽然的确完成了分类的任务,但是它未必分的那么‘平均’。我们希望那些已经正确分类的点也会对权值产生影响。感知机那块我们的目的是找出合适的权值w,使得最终sign(wx)的值与实现给定的y值一样,就...原创 2020-01-28 23:24:02 · 442 阅读 · 0 评论 -
神经网络(一)—— 单层感知机
感知机介绍感知机是一个二类分类的线性分类模型,用来做分类的,类别用+1和-1表示。样本中的各个特征组成了空间中的不同的点,点被分成两类,+1和-1。我们的目的就是找到一个超平面将这两类点分开。超平面可以用wx+b表示,或者将b改写成w0w_0w0,将x的第一列加上偏置项(全1)。那么我们就可以用wx来表示这个超平面。将样本数据x代入,若所得wx>0,则说明该点在此超平面上方,<...原创 2020-01-26 23:02:25 · 1141 阅读 · 0 评论 -
逻辑回归(四)—— 非线性逻辑回归
逻辑回归说明其实和线性的逻辑回归一模一样,还是以前的套路,把非线性的项看成单独的一个特征,多加几列就行了。# 多项式特征处理poly_reg = PolynomialFeatures(degree=3)x_poly = poly_reg.fit_transform(x_data)这样就行了,degree代表你要最高次是几次。因为不再是直线,画图不好画,我们可以用等高线来画,总共只有...原创 2020-01-25 16:45:12 · 2424 阅读 · 0 评论 -
逻辑回归(三)—— 实现
逻辑回归说明之前的代价函数写成了这样J(θ)=−∑i=1nyilnhθ(xi)+(1−yi)ln(1−hθ(xi))J(\theta)=-\sum_{i=1}^ny_ilnh_\theta(x_i)+(1-y_i)ln(1-h_\theta(x_i))J(θ)=−i=1∑nyilnhθ(xi)+(1−yi)ln(1−hθ(xi))梯度下降的迭代函数写成了这样θj:=θj...原创 2020-01-23 23:29:16 · 177 阅读 · 0 评论 -
逻辑回归(二)—— 一些指标
逻辑回归一些指标正确率逻辑回归不是做分类么,假设有100个数据,里面有80个类别为1,20个类别为0。我们的目的是把类别为0的数据找出来。我们收集了其中50个数据进行分类。最后分出了40个1,10个0。那么正确率就是precision=1050=20%precision=\frac{10}{50}=20\%precision=5010=20%,也就是找出来的比上所有收集的数据。...原创 2020-01-23 21:13:10 · 275 阅读 · 0 评论 -
逻辑回归(一)—— 基本推导
逻辑回归介绍逻辑回归是用来做分类的,样本已经做好了分类,我们构建模型使得面对一个新的样本时可以对它进行分类。sigmoid函数先来看这样一个函数y=11+e−xy = \frac{1}{1+e^{-x}}y=1+e−x1这个函数叫做sigmoid函数,它的图像是这样的可以看到无论x去什么值,总能把y映射到0~1之间。hθ(x)=11+e−θTxh_\theta(x)=\fr...原创 2020-01-22 22:08:42 · 372 阅读 · 0 评论 -
线性回归(七)—— 弹性网
弹性网(elastic net)介绍前面介绍了两种正则化方法来解决过拟合问题,分别是LASSO的L1正则化和Ridge的L2正则化。其实惩罚函数有无数多个λ∑i=1m∣θi∣q\lambda\sum_{i=1}^m|\theta_i|^qλi=1∑m∣θi∣q这里q取1就变成了LASSO,q取2就变成了Ridge。当然q也可以取其他的值后来有人把LASSO和Ridge结合了...原创 2020-01-19 20:50:46 · 2907 阅读 · 0 评论 -
线性回归(六)—— LASSO
LASSO介绍在岭回归那一篇说到特征过多而样本过少会出现过拟合的问题,岭回归的解决策略是加一个惩罚函数,也就是正则化。其实岭回归中的正则化只是L2正则化,如果换成是L1正则化,那么代价函数就会变为J(θ0,θ1,…,θn)=12m(∑i=1m(yi−hθ(xi))2+λ∑i=1m∣θi∣)J(\theta_0,\theta_1,…,\theta_n) = \frac{1}{2m}(\su...原创 2020-01-19 20:21:17 · 832 阅读 · 0 评论 -
线性回归(五)—— 岭回归
岭回归问题在标准方程法里,我们推导出了求解回归系数的一个公式w=(XTX)−1XTyw=(X^TX)^{-1}X^Tyw=(XTX)−1XTy这个公式一看就知道是有问题的,当XTXX^TXXTX不是满秩的时候,不就求不了逆了吗?若XTXX^T XXTX不是满秩,也就是说明特征值中存在向量共线。特征向量共线会带来另一个问题:过拟合。就是说你画出的曲线弯弯扭扭,过于复杂,稍微改变一点...原创 2020-01-19 16:35:29 · 2172 阅读 · 0 评论 -
线性回归(四)—— 标准方程法
标准方程法预备知识下文均使用大写字母表示矩阵,小写字母带下标表示变量,小写字母无下标表示向量一个标量多元函数对一个向量的导数是这样定义的我们假设这个函数是f(x)=w0x0+w1x1+…+wnxnf(x)=w_0x_0+w_1x_1+…+w_nx_nf(x)=w0x0+w1x1+…+wnxn那么∂f(x)∂x=[∂f(x)∂x0,∂f(x)∂x1,∂f(x)∂x2...原创 2020-01-18 19:03:36 · 1642 阅读 · 0 评论 -
线性回归(三)—— 多项式回归
多项式回归目的 这里说的是一元的情况。 多项式回归不再用直线拟合,而是使用曲线,我们要找的函数变成了h(x)=θ0+θ1x+θ2x2+…θnxnh(x) = \theta_0+\theta_1x+\theta_2x^2+…\theta_nx^nh(x)=θ0+θ1x+θ2x2+…θnxn 还是要找到这些系数。办法 其实跟多元线性回归一模一样,把xnx^nxn看成...原创 2020-01-17 15:33:41 · 1314 阅读 · 0 评论 -
线性回归(二)—— 多元线性回归
多元线性回归目的 当影响结果的原因不止一个的时候,就不能用一元线性回归了。比如说二元线性回归就是得用一个平面拟合。这时候我们的目的也就不只是找出最好的θ0\theta_0θ0和θ1\theta_1θ1,而是要找出好多θ\thetaθ. h(x)=θ0+θ1x1+θ2x2+…θnxnh(x) = \theta_0+\theta_1x_1+\theta_2x_2+…\theta_nx_n...原创 2020-01-16 22:22:58 · 825 阅读 · 0 评论 -
线性回归(一)—— 一元线性回归
一元线性回归目的 有一些样本点,点有自变量x和因变量y构成坐标。要用一条直线拟合也就是 y=θ0+θ1xy = \theta_0+\theta_1xy=θ0+θ1x 我们要找到两个系数使得其最符合这条直线。代价函数 J(θ0,θ1)=12m∑i=1m(yi−hθ(xi))2J(\theta_0,\theta_1) = \frac{1}{2m}\sum_{i=1}^{m}...原创 2020-01-16 20:12:27 · 658 阅读 · 0 评论