赞
踩
链接
sklearn)是针对Python 编程语言的免费软件机器学习库 [1] 。它具有各种分类,回归和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,
传统的交叉验证由于假定样本独立同分布,因此随机打乱分为训练集和验证集。
但是对于时间序列来讲,需要考虑序列间的时间依赖。1.预测后一半;2.日向前链
1重新采样数据集:上下采样法。
2使用正确的评估标准,当数据不平衡时可以采用精度,调用度,F1得分,MCC,AUC等评估指标
好的指标:ROC和AUC、F值、G-Mean;不好的指标:Precision、Recall
迁移学习就是把之前训练好的模型直接拿来用,可以充分利用之前数据信息,而且能够避免自己实验数据量较小等问题。简单来讲就是给模型做初始化,初始化的数据来自于训练好的模型。
Auc体现出容忍样本倾斜的能力,只反应模型对正负样本排序能力的强弱,而其直观含以上是任意取一个正样本和负样本,正样本的得分大于负样本的概率。
AUC 最普遍的定义是 ROC 曲线下的面积。但其实另一种定义更常用,分别随机从正负样本集中抽取一个正样本,一个负样本,正样本的预测值大于负样本的概率。
AUC 的全称是 AreaUnderRoc 即 Roc 曲线与坐标轴形成的面积,取值范围 [0, 1].
它也是首先对score从大到小排序,然后令最大score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。然后把所有的正类样本的rank相加,
生成模型是先从数据中学习联合概率分布,然后利用贝叶斯公式求得特征和标签对应的条件概率分布。判别模型直接学习条件概率分布,直观的输入什么特征就预测可能的类别。
L范数(L1 norm)L1范数可以使权值稀疏,方便特征提取。 L2范数可以防止过拟合,提升模型的泛化能力。L1和L2的差别,一个让绝对值最小,一个让平方最小,
基于信息增益最大的作为最优特征,以此为决策树的根节点
特征工程包括数据与特征处理、特征选择和降维三部分。
数据与特征处理包括:
1.数据选择、清洗、采样
数据格式化;
数据清洗,填充缺失值、去掉脏数据,将不可信的样本丢掉,缺省值极多的字段考虑不用;
采样:针对正负样本不平衡的情况,当正样本远大于负样本时,且量都很大时,使用下采样,量不大时,可采集更多的数据或oversampling或修改损失函数;采样过程中可利用分层抽样保持不同类别数据的比例。
2.不同类型数据的特征处理
数值型:幅度调整/归一化、log等变化、统计值(例如max、min、mean、std)、离散化、分桶等
类别型:one-hot编码等
时间型:提取出连续值的持续时间和间隔时间;提取出离散值的“年”、“月”、“日”、“一年中哪个星期/季度”、“一周中的星期几”、“工作日/周末”等信息
文本型:使用If-idf特征
统计型:加减平均、分位线、次序、比例
意义:
对数据进行预处理,可提高数据质量;对数据进行清洗可填充缺失值、光滑噪声数据,识别和删除离群点数据,保证数据的一致性;
使用正确的采样方法可解决因数据不平衡带来的预测偏差;
对不同的数据类型进行不同的特征处理有助于提高特征的可用性,例如对数值型数据进行归一化可将数据转化到统一量纲下;对类别型数据,可用one-hot编码方法将类别数据数字化,数字化特征之后可更用来计算距离、相似性等;可从时间型数据当中提取中更多的时间特征
特征选择包括:
1.Filter:使用方差、Pearson相关系数、互信息等方法过滤特征,评估单个特征和结果值之间的相关程度,留下Top相关的特征部分。
2.Wrapper:可利用“递归特征删除算法”,把特征选择看做一个特征子集搜索问题,筛选各种特征子集,用模型评估效果。
3.Embedded:可利用正则化方式选择特征,使用带惩罚项的基模型,除了选择出特征外,同时也进行了降纬。
意义:
-剔除对结果预测不大的特征,减小冗余,选择有意义的特征输入模型,提高计算性能。
降维:
方法:主成分分析法(PCA)和线性判别分析(LDA)
意义:通过PCA或LDA方法,将较高纬度样本空间映射到较低维度的样本空间,从而达到降纬的目的,减少模型的训练时间,提高模型的计算性能
1)更快的训练速度和更高的效率:LightGBM使用基于直方图的算法。
2)更低的内存占用:使用离散的箱子(bins)保存并替换连续值导致更少的内存占用。
3)更高的准确率(相比于其他任何提升算法):它通过leaf-wise分裂方法产生比level-wise分裂方法更复杂的树,这就是实现更高准确率的主要因素。然而,它有时候或导致过拟合,但是我们可以通过设置|max-depth|参数来防止过拟合的发生。
4)大数据处理能力:相比于XGBoost,由于它在训练时间上的缩减,它同样能够具有处理大数据的能力。
5)支持并行学习。
Libsvm:svm的工具包
MXNet有两个主要的进程server和worker, server负责分布式存储模型参数,worker负责计算,且worker之间不能直接通信,只能通过server互相影响,mxnet常用来做数据并行,每个GPU设备上都训练完整的DL模型
Tensorflow有worker,server,client三种进程,worker是可以相互通信的,可以根据op的依赖关系主动收发数据。
MXNet常用来做数据并行,每个GPU设备上包含了计算图中所有的op,而Tensorflow可以由用户指定op的放置,一般情况下一个GPU设备负责某个和几个op的训练任务。
Tensorflow是用数据流图来进行数值计算的,而数据流图是描述有向图的数值计算过程。在有向图中,节点表示为数学运算,边表示传输多维数据,节点也可以被分配到计算设备上从而并行的执行操作
Tf. Interactivesession()默认自己就是用户要操作的会话,而tf.Session()没有这个默认,所以eval()启动计算时需要指明使用的是哪个会话。
是一个由Python编写的开源人工神经网络库
神经网络在训练的时候随着网络层数的加深,激活函数的输入值的整体分布逐渐往激活函的取值区间上下限靠近,从而导致在反向传播时低层的神经网络的梯度消失。而Batch Normalization的作用是把一个batch内的所有数据,通过规范化的手段,将越来越偏的分布拉回到标准化的分布,使得激活函数的输入值落在激活函数对输入比较敏感的区域,从而使梯度变大,加快学习收敛速度,避免梯度消失的问题。
加入缩放平移变量γ和β的原因是: 不一定每次都是标准正态分布,也许需要偏移或者拉伸。直白的说就是为了保证每一次数据经过归一化后还保留原有学习来的特征,同时又能完成归一化操作,加速训练。 这两个参数是用来学习的参数。
1.保留网络各层在训练过程中的学习成果;
2. 保证激活单元的非线性表达能力;
3. 使批归一化具有自我关闭能力。
在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。这种现象叫做消失的梯度问题
循环神经网络模型(RNN)是一种节点定向连接成环的人工神经网络,是一种反馈神经网络,RNN利用内部的记忆来处理任意时序的输入序列,并且在其处理单元之间既有内部的反馈连接又有前馈连接,,在RNN网络结构中中,隐藏层的输入不仅包括输入层的输出还包含上一时刻隐藏层的输出,网络会对之前的信息进行记忆并应用于当前的输入计算中。
若卷积神将网络的上一层有N个卷积核,则对应的通道数也为N。设群数目为M,在进行卷积操作的时候,将通道分成M份,每个group对应N/M个通道,然后每个group卷积完成后输出叠在一起,作为当前层的输出通道。
并不能说明这个模型无效,
导致模型不收敛的原因可能有 数据分类的标注不准确,样本的信息量太大导致模型不足以fit整个样本空间。学习率设置的太大容易产生震荡,太小会导致不收敛。可能复杂的分类任务用了简单的模型。数据没有进行归一化的操作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。