![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
machine_learning
文章平均质量分 66
褚骏逸
这个作者很懒,什么都没留下…
展开
-
keras搭建二分类神经网络代码:不平衡,AUC和AUPR,画图
代码定义性能评估指标def performances(y_true, y_pred, y_prob): tn, fp, fn, tp = confusion_matrix(y_true, y_pred, labels = [0, 1]).ravel().tolist() accuracy = (tp+tn)/(tn+fp+fn+tp) try: recall = tp / (tp+fn) except: recall = 0原创 2021-02-01 21:55:38 · 2726 阅读 · 1 评论 -
在线社交网络的影响力最大化算法
1. 病毒式营销针对社交网络中最有影响力的用户(例如,通过向他们提供免费或价格优惠的样本),人们可以通过口碑利用网络效应的力量,从而将营销信息传递到网络的很大一部分。2. 影响力最大化:病毒式营销的关键算法在一个在线社交网络中选择一组k个用户,即选出具有最大影响力传播的种子集,然后通过信息传播中的种子集来影响用户的预期数量最大。2.1. 定义:扩散模型和影响扩散给定社交图 G=(V,E)G = (V,E)G=(V,E),一个用户集 S⊆VS⊆ VS⊆V,扩散模型MMM捕获SSS在GGG上传播信息的原创 2020-09-02 17:10:23 · 3410 阅读 · 0 评论 -
图数据处理:当每个user包含多个样本时,将其视为不同的样本,为每个sample赋予一个id,并更新边关系
文章目录1. 原始数据2. 数据处理思路2.1. 步1和步22.2. 步32.3. 步42.4. 步51. 原始数据node_data: 节点数据,其中node_data[‘vroleid’]列为用户id,其他列包括node label和node feature。同一个用户id可能有多条样本,如果直接去重则会造成数据损失,随之带来的正负样本不平衡问题会进一步导致其与真是数据分布不符。** edge_data:** 节点关系数据,edge_data[‘vroleid’]和edge_data[‘frie原创 2020-08-20 11:29:23 · 322 阅读 · 0 评论 -
GraphSAINT和基于源码的pytorch实现(从数据处理到训练)
目录1.论文资料2.传统GNN挑战:邻居爆炸(Neighbor Explosion)3.现有方法:图采样4.GraphSAINT:截然不同的采样的视角4.1.算法流程4.2.子图采样4.3.实验结果:优于GCN, SAGE...参考文献1.论文资料作者:曾涵清博士,南加州大学论文:在 ICLR 2020 上发表了GraphSAINT: Graph Sampling Based Inductive Learning Method代码:https://github.com/GraphSAINT/Grap原创 2020-08-06 20:54:04 · 3389 阅读 · 5 评论 -
注意力机制分类、原理、应用
神经网络在进行特征提取的时候,会将所有的输入进行处理,提取得到的特征并没有进行特别的处理。那么,如果神经网络能够像人一样,并不是“观察”到所有的特征,而是只“注意”到那些真正关心的特征呢?...原创 2020-05-31 20:52:13 · 15668 阅读 · 3 评论 -
【自监督算法】自编码器(autoencoder, AE)
十分建议先读keras文档 看完之后感觉好像普通的自编码器好像没啥用啊? 使用自编码器做数据压缩,性能并不怎么样…… 做逐层预训练训练深度网络吧,现在好的初始化策略、Batch Normalization、残差连接啥的都很有效了…… 那自编码器岂不是只有数据去噪、为进行可视化而降维这两个可应用的点了!配合适当的维度和稀疏约束,自编码器可以学习到比PCA等技术更有意思的数据投影。当然了,变分自编码器用于生成模型还是挺好的!1.简介自编码器是一类在半监督学习和非监督学习中使用的人工神经网络。.原创 2020-05-30 16:18:25 · 6773 阅读 · 0 评论 -
残差连接skip connect
文章目录1. 来源1.LSTM的控制门2.ResNet进一步简化和实验验证2.解决:梯度消失2.1.梯度消失2.2.使用残差连接3.解决:网络权重矩阵的退化3.1.网络退化3.2.使用残差连接4.残差连接的有效性5.解释角度5.1.使得信息前后向传播更加顺畅5.2.集成学习5.3.解决梯度破碎问题参考Skip block:将输出表述为输入X和输入的一个非线性变换F(X)的线性叠加。解决了深层网络的训练问题。1. 来源1.LSTM的控制门2.ResNet进一步简化和实验验证公式:y=H(x,WH)原创 2020-05-29 21:22:04 · 7159 阅读 · 0 评论 -
图神经网络综述
1.为什么出现图神经网络GNN?近年来,人们对深度学习方法在图上的扩展越来越感兴趣。在多方因素的成功推动下,研究人员借鉴了卷积网络、循环网络和深度自动编码器的思想,定义和设计了用于处理图数据的神经网络结构:图神经网络(Graph Neural Networks,GNN) 传统的深度学习方法在提取欧氏空间数据(如Image) 的特征方面取得了巨大的成功,但在处理非欧式空间数据(如Graph) 上的表现却仍难以使人满意。许多实际应用场景中的数据是从非欧式空间生成的,如推荐系统中的图。 图是不规则的,每原创 2020-05-28 18:17:22 · 1245 阅读 · 1 评论 -
【NLP面试】简述RNN、LSTM、NLP
目录1.RNN:处理序列数据1.1.为什么需要RNN?1.2.基本原理1.3.缺点1.3.1.短期记忆、训练成本大1.3.2.梯度消失/爆炸1.4.LSTM:RNN的优化算法1.4.1.与RNN相比1.4.2.核心步骤(前向计算过程)1.4.3.反向传播算法BPTT1.4.4.python实现1.4.5.LSTM变体1.4.5.1.在门上增加窥视孔1.4.5.2.整合遗忘门和输入门1.5.GRU:LSTM 的变体1.6.应用3.【科普】NLP3.1.核心任务3.1.1.自然语言理解 – NLU | NLI3原创 2020-05-25 13:37:46 · 581 阅读 · 0 评论 -
【CV面试】简述CNN、计算机视觉、人脸识别
CNN:图像、视频 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一 。 由于卷积神经网络能够进行平移不变分类,因此也被称为平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)。1.CNN解决了什么问题?在CNN出现之前,图像对于人工智能来说是一个难题。原因如下。1.1.将大数据量的图片降维成小数据量 图像需要处理的数据量太大,导致成本很高,效率很低。 图像是由像素构成的,每个像素又是由颜转载 2020-05-24 18:38:29 · 701 阅读 · 1 评论 -
特征工程的方法和步骤
目录0.示意图1.特征类别1.1.类别特征1.2.数值特征1.3.时间特征1.4.空间特征1.5.自然语言处理1.6.深度学习/神经网络1.7.图特征1.7.Leakage1.8.统计聚合1.9.自动化特征工程2.数据预处理2.1.无量纲化方法2.2.归一化2.3.定性特征One-hot/哑编码2.4.定量特征二值化2.5.缺失值填充2.6.数据变换3.特征选择3.1.Filter过滤法3.1.1.方差选择法3.1.2.相关系数法3.1.3.卡方检验3.1.4.互信息法3.2.Wrapper包装法3.2.1原创 2020-05-24 15:11:54 · 3343 阅读 · 0 评论 -
神经网络调参经验【多个大神的经验整理】
目录1.基本概念2.可调参数3.调参技巧3.1.Random Search代替Gird Search3.2.搜索过程:粗调→细调3.3.超参数的选取尺度3.3.1.对数尺度3.3.2.线性尺度4.调参4.1.学习率4.2.Epoch4.3.mini-batch size4.4.激活函数4.5.优化器4.6.权重初始化4.7.Batch Normalization批量归一化5.泛化5.1.欠拟合5.2.过拟合Dropout层:λ\lambdaλ调参参考1.基本概念超参数: 如学习率ααα、adam方法的β原创 2020-05-24 12:01:55 · 2339 阅读 · 0 评论 -
神经网络模型不收敛原因、解决办法
目录0.可能原因汇总1.检查1.1.确保:数据干净、标注正确1.2.样本的信息量太大1.3.确保:归一化、标准化1.4.确保:数据Shuffle1.5.数据预处理1.6.确保:y与loss是搭配的1.7.确保输出层的激活函数正确2.模型优化2.1.learning rate设大了2.2.batchsize2.3.网络设定不合理2.4.数据正则化2.5.ReLU激活函数导致坏梯度2.6.正确初始化权重参考理论上,只要训练样本足够多,神经网络可以拟合原始数据分布。0.可能原因汇总没有对数据进行归一化忘原创 2020-05-22 19:06:40 · 15934 阅读 · 0 评论 -
梯度弥散、梯度爆炸及解决方案
的原创 2020-05-22 15:11:40 · 639 阅读 · 0 评论 -
过拟合/欠拟合、偏差/方差
目录基本概念机器学习的泛化能力过拟合、欠拟合概念模型复杂度↑\uarr↑的变化与【偏差/方差】的关系偏差方差方差和偏差的关系【过/欠拟合】与【方差/偏差】的关系偏差-方差折衷【解决办法】欠拟合【解决办法】过拟合参考基本概念偏差:度量了学习算法的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。方差:度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响。噪声:描述了在当前任务上,任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。经验误原创 2020-05-21 17:47:06 · 2843 阅读 · 1 评论 -
【NLP】Word2vec
目录相比one-hot?One-hot把词向量的维度变小?Word2vecCBOW:给定上下文预测target wordSkip-Gram:给定input word来预测上下文。获取训练数据模型训练训练技巧句子、文档层面的任务实现:Gensim 和 NLTK扩展参考相比one-hot?One-hot优点:(1)解决了分类器不好处理离散数据的问题(2)在一定程度上起到了扩充特征的作用缺点: 尤其是在文本特征表示上(1)是一个词袋模型,不考虑词与词之间的顺序,丢失词的顺序信息。(2)假设词与词原创 2020-05-20 21:27:12 · 453 阅读 · 0 评论 -
【有监督分类】k-NearestNeighbor (kNN)
KNN算法思路 kNN是通过测量不同样本之间的距离进行分类,认为样本可以最接近它的k个邻居来代表。思路: 如果一个样本在特征空间中的k个邻居样本中的大多数属于某一个类别,则该样本也属于这个类别,通常k⩽20k\leqslant20k⩽20 。kNN算法中,所选择的邻居都是已经正确分类的对象。算法过程:Input:Xtrain,Ytrain,XtestInput:X_{train},Y_{train},X_{test}Input:Xtrain,Ytrain,XtestOutput:Ytes原创 2020-05-20 17:11:40 · 390 阅读 · 0 评论 -
【原理】变分自编码器
VAE是一种隐变量模型隐变量模型 广义上的隐变量主要就是指“不能被直接观察到,但是对系统的状态和能观察到的输出存在影响的一种东西”。 隐变量(latent variable)代表了隐因子(latent factor)的组合关系。已知: 数据集DXD_XDX,其中每个点都属于空间XSX_SXS。隐变量Z∈ZSZ∈Z_SZ∈ZS。假设: 有两个变量,z∈ZSz∈Z_Sz∈ZS和x∈XSx∈X_Sx∈XS。存在一个确定性函数族f(z;θ)f(z;θ)f(z;θ),族中的每个函数由θ∈Θ\t原创 2020-05-18 20:20:36 · 419 阅读 · 0 评论 -
深度学习的发展历程(思维导图、时间轴)
机器学习和深度学习的关系事实上,很多PGM也可从神经网络的方面来解释。尤其是VAE,它可看做二类的混合模型。当PGM的层太多时,学习和推断都很难。因此,Deep learning往往偏向于指代Deep neural network。从感知机到深度学习目前所说的深度学习实际上多指2006年开始的一系列模型。深度学习大火的原因:逐渐增加的数据量并行计算、分布式系统的发展硬件GPU等的发展最重要的是,其效果好,优于之前大火的SVM虽然目前深度学习的理论稍滞后,但其效果好呀~未来说比对原创 2020-05-10 18:23:07 · 5959 阅读 · 1 评论 -
SVM:软间隔SVM(原理)
目录示意图1示意图2二分类问题描述1. 硬间隔SVM2. 软间隔SVM(1)Hinge Loss(2)松弛向量(3)最终优化形式3. 求解同硬间隔SVM:对偶+KKT示意图1示意图2值得注意的是:distance(Margin)=2∥ω∥distance(Margin)=\frac 2 {\parallel\omega\parallel}distance(Margin)=∥ω∥2设两条直线方程为Ax+By+C1=0,Ax+By+C2=0Ax+By+C_1=0,Ax+By+C_2=0Ax+By+原创 2020-05-09 21:21:36 · 1496 阅读 · 1 评论 -
SVM:硬/最大间隔SVM(手撕原理)
示意图二分类问题描述Data={(xi,yi)}i=1N,xi∈Rp,yi∈{−1,+1}Data=\{(x_i, y_i)\}_{i=1}^N,x_i\in\R^p,y_i\in\{-1,+1\}Data={(xi,yi)}i=1N,xi∈Rp,yi∈{−1,+1}由于超平面ωTx+b\omega^Tx+bωTx+b有很多个,要找到最好的一个超平面,以得到最低的泛化误差(或测试误差、期望损失)。hard-margin SVM判别模型,与概率无关:f(ω)=sign(ωTx+b)={ω原创 2020-05-08 20:43:31 · 381 阅读 · 1 评论 -
多标签分类算法
本文图片摘自https://www.zhihu.com/question/35486862中景略集智的回答。1. 问题转换(将多标签问题转换为单标签问题)1.1.二元关联(Binary Relevance)将每个标签看作一个单独的类分类问题缺点:它没有考虑标签之间的关联,因为它是单独处理每个目标变量。1.2.分类器链(Classifier Chains)第一个分类器...原创 2020-02-18 11:28:15 · 2670 阅读 · 0 评论 -
scikit-learn中GridSearchCV的使用:Keras接口
首先请先理解GridSearchCV在scikit-learn中的使用,可见博文:scikit-learn中GridSearchCV的使用:多模型,可视化,该博文中有的子函数,本文不再赘述。【环境搭建】 import tensorflow,kerasfrom keras.models import Sequentialfrom keras.layers import Densefr...原创 2018-11-08 15:16:28 · 1289 阅读 · 0 评论 -
对y_pred强制二分类
在使用Keras做0/1二分类问题时,采用sigmoid作为输出层的激活函数。但是结果中并非0和1,而是介于(0,1)之间的小数。找了其他的激活函数,发现没有合适的。所以直接强制二分类吧。y_test_pred = fit.predict(x_test)y_test_pred_binary = []for item in y_test_pred: if item <= ...原创 2018-11-08 15:27:06 · 3310 阅读 · 3 评论 -
【gcforest】源代码修改
gcForest/lib/gcforest/utils/win_utils.py1.源代码如下:nh = (h - win_y) / stride_y + 1nw = (w - win_x) / stride_x + 1修改方法:把x和y互换2.源代码如下:src = X[:, k, di:di+nh*stride_y:stride_y, dj:dj+nw*stride_...原创 2019-07-31 20:35:12 · 354 阅读 · 0 评论 -
【gcForest源码解读】win_utils.py
一.序列数据 样本\序列 1 2 3 4 5 6 7 8 9 10 11 Sample_1 A ...原创 2019-07-31 20:34:56 · 244 阅读 · 2 评论 -
【xgboost】安装
使用了各种方法,也没安装成功,每次import xgboost都会报错。未成功方法:1. anaconda show -t conda xgboost #选择一个win64的进行安装2. git clone https://github.com/dmlc/xgboost.git 下载最新版的dll文件,存入xgboost目录http://www.picnet.com.au/b...原创 2018-11-18 15:53:47 · 178 阅读 · 0 评论 -
【gcForest】安装;【Git】安装;【安装依赖】
官方提示:该软件包是在python 2.7中开发的,当前版本不建议使用更高版本的python。But:我用的python3.5,可以正常运行哦~1.安装git2.git clone https://****.git 3.git clone到本地的代码在运行目录下C:\Users\dell,将C:\Users\dell\gcForest\lib\gcforest复制到C:\Use...原创 2018-11-18 12:24:41 · 1904 阅读 · 2 评论 -
scikit-learn中GridSearchCV的使用:多模型,可视化
步骤:1.选择并构建训练模型model2.将训练模型model投入到GridSearchCV中,得到GridSearchCV模型grid_model3.用grid_model拟合训练集数据,选择在validation_dataset上效果最好的参数的模型best_estimator4.1.用best_estimator拟合训练集(得到的结果应该与之前不同,因为之前用交叉验证等方法对...原创 2018-11-08 14:50:11 · 10807 阅读 · 1 评论