
机器学习实战
文章平均质量分 74
stackooooover
这个作者很懒,什么都没留下…
展开
-
四十六.风控评分卡模型关键点理解
风控评分卡模型一.评分卡模型选择一.评分卡模型选择评分卡模型一般会选择线性模型,逻辑回归是一种广义线性模型,评分卡中使用的就是逻辑回归,为什么要用逻辑回归模型?银行决定是否给个人或企业贷款的关键因素是对未来违约概率的预测,而逻辑回归能将特征信息投射到一个概率区间,...原创 2022-04-09 00:00:00 · 1144 阅读 · 0 评论 -
四十五.门控循环单元(GRU)简介和keras实现
目录1.网络结构(1)记忆体hth^{t}ht(2)候选状态ht^\widehat{h^{t}}ht(3)重置门和更新门1.网络结构U是LSTM的一种变体,可以说是简化版本的LSTM,但是预测效果也很不错,因此更常用。GRU使记忆体hth^{t}ht融合了长期记忆和短期记忆。(1)记忆体hth^{t}htht=zt⊙ht−1+(1−zt)⊙ht^h^{t}=z^{t}\odot h^{t-1}+(1-z^{t})\odot \widehat{h^{t}}ht=zt⊙ht−1+(1−zt)⊙ht原创 2021-09-07 22:13:33 · 1633 阅读 · 0 评论 -
四十四.长短期记忆网络(LSTM)过程和keras实现股票预测
目录1.概述2.LSTM结构(1)短期记忆(2)长期记忆(细胞态)(3)输入门、遗忘门、输出门1.概述传统循环网络RNN可以通过记忆体实现短期记忆进行连续数据的预测。但是,当连续数据的序列变长时,会使展开时间步过长,在反向传播更新参数的过程中,梯度要按时间步连续相乘,会导致梯度消失或者梯度爆炸。LSTM是RNN的变体,通过门结构,有效的解决了梯度爆炸或者梯度消失问题。LSTM在RNN的基础上引入了三个门结构和记录长期记忆的细胞态以及归纳出新知识的候选态。2.LSTM结构(1)短期记忆短期记忆原创 2021-09-04 11:05:27 · 1023 阅读 · 0 评论 -
四十三.用RNN进行股票预测
#载入数据import pandas as pdmaotai = pd.read_csv('./SH600519.csv')#读取茅台股票文件print(maotai.shape)输出:(2426, 8)#划分训练集和测试集training_set = maotai.iloc[0:2126, 2:3].values #提取0-2125列的第2行作为训练集test_set = maotai.iloc[2126:, 2:3].values # 后300天的开盘价作为测试集print(tr原创 2021-08-31 11:25:24 · 511 阅读 · 0 评论 -
四十一.ResNet18
目录1.数据预处理(1)数据预览(2)归一化处理2.预测(1)搭建残差块(2)搭建ResNet18网络(3)预测1.数据预处理(1)数据预览训练集和测试集一共60000个样本,每个样本都是32×32×332\times 32\times 332×32×3的RGB图像,样本值0-255,标签有10种类别。from tensorflow.keras.datasets import cifar10from collections import Counterimport numpy as np(x_原创 2021-08-10 10:50:19 · 650 阅读 · 0 评论 -
三十九.卷积神经网络实现cifar10分类
目录1.数据预处理(1)导入数据(2)数据预览(3)数据标准化(4)样本展示2.预测(1)搭建模型(2)配置网络(3)断点存续(4)训练网络3.ACC曲线图与Loss曲线图1.数据预处理(1)导入数据from tensorflow.keras import datasetscifar10 = datasets.cifar10(x_train,y_train),(x_test,y_test)=cifar10.load_data()(2)数据预览from collections import C原创 2021-08-01 13:43:45 · 988 阅读 · 0 评论 -
三十七.使用TF2中的深度神经网络模型预测mnist数据集
目录1.数据预处理(1)数据集预览(2)标准化和数据维度调整(3)图片增强2.模型搭建与训练(1)模型搭建(2)断点存续(3)开始训练(4)模型结构信息3.图示效果4.预测(待续)1.数据预处理(1)数据集预览#训练集60000个样本,测试集10000个,样本特征值的范围0-255,类别一共有10种import tensorflow as tffrom collections import Counter(x_train,y_train),(x_test,y_test) = tf.keras.d原创 2021-07-24 12:52:12 · 514 阅读 · 0 评论 -
三十五.常用激活函数总结
目录1.Sigmod函数(1)公式(2)TF2调用sigmod2.Tanh函数(1)公式(2)TF2调用Tanh3.Relu函数(1)公式(2)TF2调用Relu1.Sigmod函数(1)公式f(x)=11+e−xf(x)=\frac{1}{1+e^{-x}}f(x)=1+e−x1可以将数据映射到(0,1)(0,1)(0,1)区间。缺点:a.易造成梯度消失。b.输出非0均值,收敛慢。c.幂运算复杂,训练时间长。(2)TF2调用sigmodimport tensorflow as t原创 2021-07-22 16:40:30 · 89 阅读 · 0 评论 -
三十四.学习率调整原理和实现
目录1.学习率衰减(1)简介(2)常用公式(3)指数衰减学习率的实现2.待总结1.学习率衰减(1)简介从经验上看,学习率在一开始要保持大些来保证收敛速度,在收敛到最优点附近时要小些以避免来回震荡。比较简单的学习率调整可以通过学习率衰减来实现。(2)常用公式假设初始学习率为α0\alpha _{0}α0,第ttt轮的学习率为αt\alpha _{t}αt,常见的学习率衰减函数有一下几种:a.逆时衰减αt=α011+βt\alpha _{t}=\alpha _{0}\frac{1}{1+\原创 2021-07-22 10:58:09 · 259 阅读 · 0 评论 -
三十三.TF2自动梯度计算实现神经网络分类
#数据预处理#载入数据from sklearn.datasets import load_irisiris = load_iris()x,y=iris.data,iris.targetprint(x.shape,y.shape)输出:(150, 4) (150,)#打乱数据import numpy as npimport tensorflow as tfnp.random.seed(100)np.random.shuffle(x)np.random.seed(100)np.ra原创 2021-07-21 17:16:53 · 179 阅读 · 0 评论 -
三十二.TF2实现自动梯度计算
目录1.自动梯度计算2.通过自动梯度计算迭代求极值1.自动梯度计算#损失函数为平方损失,初值为3,损失函数的导数为二倍初值,则梯度为6import tensorflow as tfwith tf.GradientTape() as tape: w = tf.Variable(tf.constant(3.0)) loss = tf.pow(w,2)grad = tape.gradient(loss,w)print(grad.numpy())输出:6.02.通过自动梯度计算迭原创 2021-07-21 09:59:11 · 241 阅读 · 0 评论 -
三十一.Tensorflow2常用函数总结
目录1.创建张量2.将numpy数据类型转为tensor数据类型3.常用张量创建函数4.生成随机数5.数据类型转换6.行列操作7.可训练参数8.运算法则9.特征和标签配对10.独热编码11.自减12.返回指定维度的最值索引13.比较大小14.三目运算15.numpy生成随机数16.两个数组按垂直方向叠加17.生成网格数据1.创建张量import tensorflow as tfa = tf.constant([1,5],dtype=tf.int64)print(a)输出:tf.Tensor([1原创 2021-07-21 00:19:28 · 813 阅读 · 0 评论 -
三十.全连接神经网络原理
目录1.网络结构解析(1)图示(2)结构解析2.前向传播(1)前向传播原理(2)前向传播流程3.反向传播(1)反向传播原理1.网络结构解析(1)图示(2)结构解析图中结构一共有四层,最左边为输入层,中间两层为隐藏层,最右边为输出层。通常在说神经网络层数结构的时候不包含输入层,所以输入层也被称为第000层。上图为三层神经网络,图中的各参数代表的意义如下:aila_{i}^{l}ail:第lll层第iii个神经元的输出。zilz_{i}^{l}zil:第lll层第iii个神经元的未激活输出。原创 2021-07-19 18:31:03 · 2354 阅读 · 1 评论 -
二十九.集成学习之XGBoost原理和实现
目录1.XGBoost与GBDT的不同点2.XGBoost损失函数推导与优化1.XGBoost与GBDT的不同点(1)GBDT只支持CART决策树,XGBoost支持其他学习器。(2)XGBoost的损失函数相当于GBDT加正则化项。(3)GBDT只对误差部分的负梯度(一阶泰勒展开)拟合,二XGBoost对误差部分进行二阶泰勒展开,拟合更准确。(4)缺失值的处理不同。2.XGBoost损失函数推导与优化GBDT的损失函数为:Lt=∑i=1mL(yi,ft−1(xi)+ht(xi))L_{t原创 2021-07-17 12:17:06 · 102 阅读 · 0 评论 -
二十八.集成学习之梯度提升树(GBDT)的原理与sklearn实现
目录1.简介2.负梯度拟合1.简介GBDT也是前向分布算法,但是它的学习器只能用CART回归树。在提升树的系列算法中,前一轮迭代得到的强学习器是ft−1(x)f_{t-1}(x)ft−1(x),损失函数是L(y,ft−1(x))L(y,f_{t-1}(x))L(y,ft−1(x)),则本轮的目标是寻找到一个弱学习器ht(x)h_{t}(x)ht(x),使本轮的损失L(y,ft−1(x)+ht(x))L(y,f_{t-1}(x)+h_{t}(x))L(y,ft−1(x)+ht(x))最小。在原创 2021-07-16 16:16:57 · 511 阅读 · 0 评论 -
二十七.集成学习之Adaboost的原理和sklearn实现
目录1.简介2.二分类样本权重和弱学习器系数推导1.简介Adaboost为加法模型,学习算法为前向分步学习算法。作为经典的boosting算法,Adaboost通过计算前一个基学习器的误差率,更新后一个基学习器的系数和样本集的权重系数,最后再通过结合策略进行预测。理论上任何学习器都可以用于Adaboost。但一般来说,使用最广泛的Adaboost弱学习器是决策树和神经网络。对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树。2.二分类样本权重和弱学习器系数原创 2021-07-15 17:41:43 · 442 阅读 · 0 评论 -
二十六.集成学习之随机森林(RF)的原理和sklearn实现
目录1.集成学习(1)概述(2)个体学习器(3)boosting(4)bagging(5)结合策略2.随机森林(1)简介(2)算法流程3.sklearn实现RF(1)默认参数的RF(2)网格搜索确定弱学习器个数(3)网格搜索确定最大深度1.集成学习(1)概述集成学习的思想是众人拾柴火焰高。训练若干个个体学习期,通过一个集合策略,最终形成一个强学习器。因此,集成学习主要有两个问题需要解决:一是如何得到若干个个体学习器;二是如何选择结合策略。(2)个体学习器个体学习器的组成分为同质和异质。同质指所有个原创 2021-07-13 23:54:16 · 578 阅读 · 0 评论 -
二十五.决策树之CART决策树的原理和sklearn实现
目录1.简介2.基尼系数3.CART分类树(1)数据集的基尼系数(2)数据集对于某个特征的基尼系数(3)连续值特征处理(4)离散值特征处理1.简介CART算法采用的是基尼系数作为划分依据。ID3、C4.5算法生成的决策树都是多叉树,而CART算法生成的决策树为二叉树。2.基尼系数基尼系数代表了信息的不纯度,基尼系数越小,不纯度越低,特征越好。在分类问题中,假设有KKK个类别,第kkk个类别的概率为PkP_{k}Pk,则基尼系数为:Gini(P)=∑k=1KPk(1−Pk)=1−∑k=1KPk原创 2021-07-13 11:42:37 · 2401 阅读 · 0 评论 -
二十一.支持向量机(SVM)原理和sklearn实现
目录1.支持向量机和感知机2.线性可分SVM之硬间隔最大化(1)函数间隔和几何间隔1.支持向量机和感知机感知机:通过误分类点距离之和最小,寻找一个分类超平面,将不同类别的数据分隔在超平面两侧,这样的超平面有无数个。支持向量机:最大化几何间隔寻找分类超平面,这样的超平面只有一个。2.线性可分SVM之硬间隔最大化(1)函数间隔和几何间隔定义样本点(xi,yi)(\mathbf{x}^{i},y^{i})(xi,yi)关于超平面(w,b)(\mathbf{w},b)(w,b)的函数间隔为:...原创 2021-07-09 17:33:48 · 477 阅读 · 0 评论 -
二十.朴素贝叶斯原理和sklearn实现
目录1.判别模型和生成模型2.贝叶斯公式3.朴素贝叶斯模型(1)先验概率(2)条件概率(3)联合概率分布(4)后验概率4.目标函数推导5.算法流程(1)先验概率(2)条件概率1.判别模型和生成模型判别模型:判别模型直接学习自变量xxx和因变量yyy之间的关系,这种关系可能是函数y=f(x)y=f(x)y=f(x),也可能是条件概率P(y∣x)P(y|x)P(y∣x)。生成模型:生成模型需要先求出自变量和因变量的联合概率分布P(x,y)P(x,y)P(x,y),再通过联合概率分布求出条件概率P(y∣x)原创 2021-07-07 11:13:56 · 429 阅读 · 0 评论 -
十九.降维之线性判别分析(LDA)原理和sklearn实现
目录1.LDA的数学原理(1)类间散度矩阵(2)类内散度矩阵(3)协方差矩阵2.LDA算法流程3.LDA与PCA的区别4.sklearn实现LDA(1)生成数据(2)PCA(3)LDA1.LDA的数学原理LDA是一种有监督的降维技术,它的每个样本输出都是有类别的。LDA的思想是投影后类间方差尽可能大,类内方差尽可能小。(1)类间散度矩阵类间散度矩阵为:Sb=∑i=1C(μi−μ)(μi−μ)T\boldsymbol{S}_{b}=\sum_{i=1}^{C}(\mu _{i}-\mu)(\mu原创 2021-07-06 00:39:28 · 1114 阅读 · 0 评论 -
十八.降维之主成分分析(PCA)原理和sklearn实现
目录1.PCA原理1.PCA原理PCA的目的是找出数据中最主要的方面,用数据最主要的方面来代替原始数据。于PCA的原理有两种解释,一种为最小投影距离,另一种为最大投影方差。这里从最大投影方差来推理PCA:(1)mmm个nnn维样本,将数据中心化后满足:∑i=1mxi=0\sum _{i=1}^{m}x^{i}=0i=1∑mxi=0(2)...原创 2021-07-05 13:03:16 · 465 阅读 · 0 评论 -
十七.降维之谱分解和奇异值分解
目录1.谱分解(1)特征值和特征向量(2)特征值分解(3)numpy实现特征值分解2.奇异值分解(SVD)(1)简介(2)SVD和PCA(3)numpy实现SVD1.谱分解谱分解又称为特征值分解,只有方阵才能进行谱分解。(1)特征值和特征向量方阵A\mathbf{A}A,如果存在非零向量x\mathbf{x}x和实数λ\lambdaλ,满足:Ax=λx\mathbf{Ax}=\lambda \textbf{x}Ax=λx则称λ\lambdaλ为A\mathbf{A}A的特征值,x\mathb原创 2021-07-02 11:46:55 · 1158 阅读 · 0 评论 -
十六.DBSCAN聚类原理和sklearn实现
目录1.基本概念2.算法流程3.sklearn实现DBSCAN(1)数据集1.基本概念DBSCAN:具有噪声的基于密度的聚类方法。从名字中就可以看出来,簇划分是根据样本密度来决定的。ϵϵϵ-邻域:样本xxx以ϵϵϵ为半径的范围内包含的所有样本的集合,这个集合称为xxx的ϵϵϵ-邻域。核心对象:样本xxx的ϵ-领域内样本数大于阈值MinPts,则xxx为核心对象。直接密度可达:若某点ppp在点qqq的ϵϵϵ-邻域内,且qqq是核心对象,则ppp由qqq直接密度可达。密度可达:有序列点q1,q2,q原创 2021-07-02 00:53:39 · 1426 阅读 · 0 评论 -
十五.K均值(K-means)聚类原理和sklearn实现
目录1.聚类2.k-means聚类3.算法流程4.K-means++算法5.Mini Batch K-means6.评估指标7.sklearn实现K-means(1)数据集(2)2簇k-means(3)4簇k-means(4)MiniBatchKMeans1.聚类聚类是一种无监督的算法。当样本没有标签只有特征时,可以用聚类进行分类。2.k-means聚类k-means聚类的基本思想是最小化平方误差,可以理解为让同一个簇内的点尽量靠近。假设样本可分为kkk个簇,分别是(C1,C2,C3,...,Ck原创 2021-07-01 11:25:29 · 823 阅读 · 0 评论 -
十四.K最近邻(KNN)原理和sklearn实现、网格搜索
目录1.概述2.算法流程(1)计算距离(2)选择最近邻点(3)预测3.KNN优化之KD树(1)KD树之建树(2)KD树之搜索4.sklearn实现KNN(1)数据预处理(2)预测和评价(3)网格搜索1.概述KNN的原理非常简单明了,根据离样本最近的kkk个点的标签来决定样本的类别或值。既可以用来分类,也可以进行回归。分类:多数表决。在数据集中,找出与样本特征最近的kkk个数据点,这些数据点中占比最多的类别即为要预测的样本的类别。回归:取平均值。在数据集中,找出与样本特征最近的kkk个数据点,取它们的原创 2021-06-30 11:11:44 · 645 阅读 · 0 评论 -
十三.感知机原理和sklearn实现
目录1.感知机模型2.损失函数3.参数优化4.感知机的对偶形式5.感知机算法流程(对偶形式)6.sklearn实现感知机(1)生成数据集(2)数据预处理(3)训练和评价1.感知机模型感知机是一个分类模型,它的分类策略是寻找一个分类超平面,将不同类别的样本分离在超平面两侧。同时,将误分类点到直线的距离之和作为损失函数,误分类距离之和越小,效果越好。需要注意的是,这样的超平面可能有无数个。mmm个样本,每个样本有nnn维特征和一个标签yyy:(x11,x21,x31,...,xn1,y1),(x22,x原创 2021-06-29 23:54:46 · 705 阅读 · 1 评论 -
十二.softmax多分类和sklearn实现
目录1.softmax函数1.softmax函数原创 2021-06-29 09:33:07 · 2368 阅读 · 2 评论 -
十.过拟合解决方案之正则化和sklearn实现Ridge回归
目录1.过拟合2.正则化(1)L1正则(2)L2正则3.sklearn实现Ridge回归1.过拟合当模型过于复杂时,将一些离群点或者说噪声也完全拟合,造成模型在训练集上表现优异,在测试集或者说泛化时表现较差,这种现象称之为过拟合。2.正则化将经验风险最小化函数改为结构风险最小化函数,或者说将损失函数加上正则化项,可以使模型变简单,从而避免过拟合。以线性回归为例,常用的正则化有L1L1L1正则和L2L2L2正则。(1)L1正则线性回归的损失函数加上L1L1L1正则化项以后为:J(θ)=12(X原创 2021-06-17 17:00:28 · 497 阅读 · 0 评论 -
九.交叉验证
目录1.概述2.不同的交叉验证3.sklearn+线性回归+交叉验证(1)准备数据(2)建模和预测(3)结果评价1.概述当数据样本量较少的时候,会重复的切割数据集,将数据集分为多组训练集和测试集,训练多个模型,选择效果最好的模型。2.不同的交叉验证(1)简单交叉验证:随机的将样本数据分为两部分,用训练集来训练模型,在测试集上验证模型及参数。再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后选择评估最优的模型和参数。(2)S折交叉验证:样本数据随机的分成S份,每次随机的选择S-1份作原创 2021-06-15 17:15:57 · 380 阅读 · 0 评论 -
八.用sklearn实现线性回归、标准化和归一化
八.用sklearn实现线性回归、标准化和归一化1.数据集简介2.使用sklearn的线性回归模型进行预测1.数据集简介波士顿房价数据集包含了506处波士顿不同地理位置的房产的房价数据(因变量),和与之对应的包含房屋以及房屋周围的详细信息(自变量),其中包含城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等13个维度的数据,因此,波士顿房价数据集能够应用到回归问题上。2.使用sklearn的线性回归模型进行预测...原创 2021-06-15 15:19:41 · 2203 阅读 · 0 评论