精华内容
下载资源
问答
  • 评价类算法
    千次阅读
    更多相关内容
  • 通过学习这部分资料可应对大多数分析评价类数学建模竞赛问题
  • 可实现分析评价类数学建模问题,通过合理规划学习可有效提高自己matlab编程能力
  • MATLAB基础(六)评价类算法

    万次阅读 2018-08-24 14:39:09
    •常见的综合评定方法分为两: •(1)综合评定法:直接评分法(专家打分综合法)、总分法、加权综合评定法、AHP+模糊综合评判、模糊神经网络评价法、待定系数法及分类法. •现代综合评价方法:层次分析法...

    常见的综合评定方法分为两类:

    1)综合评定法:直接评分法(专家打分综合法)、总分法、加权综合评定法、AHP+模糊综合评判、模糊神经网络评价法、待定系数法及分类法.

    现代综合评价方法:层次分析法(Analytic Hierarchy Process,AHP)、数据包络分析法(Data Envelopment Analysis,DEA)、人工神经网络评价法(Artificial Neural Network,ANN)、灰色综合评价法、模糊综合评定法

    两种经典的综合评判决策:

    总分法:S=ΣSi.加权综合评定法:E=ΣaiSi

    (2)两两比较法:顺序法和优序法.

    常见的评价类模型

    层次分析法

    模糊综合评价法

    神经网络算法

     

    模糊综合评价算法

    1965年,美国著名自动控制专家查德(L.A. Zadeh)教授提出了模糊(fuzzy)的概念,并发表了第一篇用数学方法研究模糊现象的论文“模糊集合”(fuzzy set)。他提出用“模糊集合”作为表现模糊事物的数学模型。并在“模糊集合”上逐步建立运算、变换规律,开展有关的理论研究,就有可能构造出研究现实世界中的大量模糊的数学基础,能够对看来相当复杂的模糊系统进行定量的描述和处理的数学方法。

    在模糊集合中,给定范围内元素对它的隶属关系不一定只有“是”或“否”两种情况,而是用介于0和1之间的实数来表示隶属程度,还存在中间过渡状态。比如“老人”是个模糊概念,70岁的肯定属于老人,它的从属程度是 1,40岁的人肯定不算老人,它的从属程度为 0,按照查德给出的公式,55岁属于“老”的程度为0.5,即“半老”,60岁属于“老”的程度0.8。查德认为,指明各个元素的隶属集合,就等于指定了一个集合。当隶属于0和1之间值时,就是模糊集合,即论域上的元素符合概念的程度不是绝对的0或1(不是或是),而是介于0和1之间的一个实数。

     

                                                                                                 BP神经网络

    1、BP网络构建

    (1)生成BP网络

    :由维的输入样本最小最大值构成的维矩阵。

    :各层的神经元个数。

    *通常情况输入层神经元个数与选取的指标相关,隐含层通常不超过输入层的2 倍

    :各层的神经元传递函数。

    *常用的传递函数

       purelin:线性传递函数

       tansig:正切S型传递函数

       logsig:对数S型传递函数

    :训练用函数的名称。

    (2)网络训练

    (3)网络仿真

     

    BP网络的训练函数

    训练方法

    训练函数

    梯度下降法

    traingd

    有动量的梯度下降法

    traingdm

    自适应lr梯度下降法

    traingda

    自适应lr动量梯度下降法

    traingdx

    弹性梯度下降法

    trainrp

    Fletcher-Reeves共轭梯度法

    traincgf

    Ploak-Ribiere共轭梯度法

    traincgp

    Powell-Beale共轭梯度法

    traincgb

    量化共轭梯度法

    trainscg

    拟牛顿算法

    trainbfg

    一步正割算法

    trainoss

    Levenberg-Marquardt

    trainlm

     

    BP网络训练参数

    训练参数

    参数介绍

    训练函数

    net.trainParam.epochs

    最大训练次数(缺省为10)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.goal

    训练要求精度(缺省为0)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.lr

    学习率(缺省为0.01)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.max_fail

    最大失败次数(缺省为5)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.min_grad

    最小梯度要求(缺省为1e-10)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.show

    显示训练迭代过程(NaN表示不显示,缺省为25)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.time

    最大训练时间(缺省为inf)

    traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm

    net.trainParam.mc

    动量因子(缺省0.9)

    traingdm、traingdx

    net.trainParam.lr_inc

    学习率lr增长比(缺省为1.05)

    traingda、traingdx

    net.trainParam.lr_dec

    学习率lr下降比(缺省为0.7)

    traingda、traingdx

    net.trainParam.max_perf_inc

    表现函数增加最大比(缺省为1.04)

    traingda、traingdx

    net.trainParam.delt_inc

    权值变化增加量(缺省为1.2)

    trainrp

    net.trainParam.delt_dec

    权值变化减小量(缺省为0.5)

    trainrp

    net.trainParam.delt0

    初始权值变化(缺省为0.07)

    trainrp

    net.trainParam.deltamax

    权值变化最大值(缺省为50.0)

    trainrp

    net.trainParam.searchFcn

    一维线性搜索方法(缺省为srchcha)

    traincgf、traincgp、traincgb、trainbfg、trainoss

    net.trainParam.sigma

    因为二次求导对权值调整的影响参数(缺省值5.0e-5)

    trainscg

    net.trainParam.lambda

    Hessian矩阵不确定性调节参数(缺省为5.0e-7)

    trainscg

    net.trainParam.men_reduc

    控制计算机内存/速度的参量,内存较大设为1,否则设为2(缺省为1)

    trainlm

    net.trainParam.mu

    的初始值(缺省为0.001)

    trainlm

    net.trainParam.mu_dec

    的减小率(缺省为0.1)

    trainlm

    net.trainParam.mu_inc

    的增长率(缺省为10)

    trainlm

    net.trainParam.mu_max

    的最大值(缺省为1e10)

    trainlm

    2、BP网络举例

    举例1、

    %traingd

    clear;

    clc;

    P=[-1 -1 2 2 4;0 5 0 5 7];

    T=[-1 -1 1 1 -1];

    %利用minmax函数求输入样本范围

    net = newff(minmax(P),[5,1],{'tansig','purelin'},'trainrp');

     

    net.trainParam.show=50;%

    net.trainParam.lr=0.05;

    net.trainParam.epochs=300;

    net.trainParam.goal=1e-5;

    [net,tr]=train(net,P,T);

     

    net.iw{1,1}%隐层权值

    net.b{1}%隐层阈值

     

    net.lw{2,1}%输出层权值

    net.b{2}%输出层阈值

     

    sim(net,P)

     

    举例2、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。

    样本数据:

    输入X

    输出D

    输入X

    输出D

    输入X

    输出D

    -1.0000

    -0.9602

    -0.3000

    0.1336

    0.4000

    0.3072

    -0.9000

    -0.5770

    -0.2000

    -0.2013

    0.5000

    0.3960

    -0.8000

    -0.0729

    -0.1000

    -0.4344

    0.6000

    0.3449

    -0.7000

    0.3771

    0

    -0.5000

    0.7000

    0.1816

    -0.6000

    0.6405

    0.1000

    -0.3930

    0.8000

    -0.3120

    -0.5000

    0.6600

    0.2000

    -0.1647

    0.9000

    -0.2189

    -0.4000

    0.4609

    0.3000

    -0.0988

    1.0000

    -0.3201

    解:

    看到期望输出的范围是,所以利用双极性Sigmoid函数作为转移函数。

    程序如下:

    clear;

    clc;

    X=-1:0.1:1;

    D=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...

        0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...

        0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];

    figure;

    plot(X,D,'*'); %绘制原始数据分布图(附录:1-1)

    net = newff([-1 1],[5 1],{'tansig','tansig'});

    net.trainParam.epochs = 100; %训练的最大次数

    net.trainParam.goal = 0.005; %全局最小误差

    net = train(net,X,D);

    O = sim(net,X);

    figure;

    plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线(附录:1-2、1-3)

    V = net.iw{1,1}%输入层到中间层权值

    theta1 = net.b{1}%中间层各神经元阈值

    W = net.lw{2,1}%中间层到输出层权值

    theta2 = net.b{2}%输出层各神经元阈值

    所得结果如下:

    输入层到中间层的权值:

    中间层各神经元的阈值:

    中间层到输出层的权值:

    输出层各神经元的阈值:

     

    举例3、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。

    样本数据:

    输入X

    输出D

    输入X

    输出D

    输入X

    输出D

    0

    0

    4

    4

    8

    2

    1

    1

    5

    3

    9

    3

    2

    2

    6

    2

    10

    4

    3

    3

    7

    1

     

     

    解:

    看到期望输出的范围超出,所以输出层神经元利用线性函数作为转移函数。

    程序如下:

    clear;

    clc;

    X = [0 1 2 3 4 5 6 7 8 9 10];

    D = [0 1 2 3 4 3 2 1 2 3 4];

    figure;

    plot(X,D,'*'); %绘制原始数据分布图

    net = newff([0 10],[5 1],{'tansig','purelin'})

    net.trainParam.epochs = 100;

    net.trainParam.goal=0.005;

    net=train(net,X,D);

    O=sim(net,X);

    figure;

    plot(X,D,'*',X,O); %绘制训练后得到的结果和误差曲线(附录:2-2、2-3)

    V = net.iw{1,1}%输入层到中间层权值

    theta1 = net.b{1}%中间层各神经元阈值

    W = net.lw{2,1}%中间层到输出层权值

    theta2 = net.b{2}%输出层各神经元阈值

    所得结果如下:

    输入层到中间层的权值:

    中间层各神经元的阈值: 

    中间层到输出层的权值:

    输出层各神经元的阈值:

     

    问题:以下是上证指数2009年2月2日到3月27日的收盘价格,构建一个三层BP神经网络,利用该组信号的6个过去值预测信号的将来值。

     

    日期

    价格

    日期

    价格

    2009/02/02

    2011.682

    2009/03/02

    2093.452

    2009/02/03

    2060.812

    2009/03/03

    2071.432

    2009/02/04

    2107.751

    2009/03/04

    2198.112

    2009/02/05

    2098.021

    2009/03/05

    2221.082

    2009/02/06

    2181.241

    2009/03/06

    2193.012

    2009/02/09

    2224.711

    2009/03/09

    2118.752

    2009/02/10

    2265.161

    2009/03/10

    2158.572

    2009/02/11

    2260.822

    2009/03/11

    2139.021

    2009/02/12

    2248.092

    2009/03/12

    2133.881

    2009/02/13

    2320.792

    2009/03/13

    2128.851

    2009/02/16

    2389.392

    2009/03/16

    2153.291

    2009/02/17

    2319.442

    2009/03/17

    2218.331

    2009/02/18

    2209.862

    2009/03/18

    2223.731

    2009/02/19

    2227.132

    2009/03/19

    2265.761

    2009/02/20

    2261.482

    2009/03/20

    2281.091

    2009/02/23

    2305.782

    2009/03/23

    2325.481

    2009/02/24

    2200.652

    2009/03/24

    2338.421

    2009/02/25

    2206.572

    2009/03/25

    2291.551

    2009/02/26

    2121.252

    2009/03/26

    2361.701

    2009/02/27

    2082.852

    2009/03/27

    2374.44

     

     

    注:https://blog.csdn.net/wuchangi/article/details/79236016#newff%E5%87%BD%E6%95%B0%E6%96%B0%E7%89%88%E6%9C%AC

    展开全文
  • 代码 基于EDA算法的综合评价代码代码 基于EDA算法的综合评价代码代码 基于EDA算法的综合评价代码代码 基于EDA算法的综合评价代码代码 基于EDA算法的综合评价代码代码 基于EDA算法的综合评价代码代码 基于EDA算法的...
  • 图像质量评价算法

    2014-03-05 21:56:39
    对图像的熵,信噪比,峰值信噪比之评价指标完全实用
  • 数据挖掘十大算法之分类算法(分类介绍及评价指标) 接上篇文章,接下来学习挖掘算法中的分类算法: 首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为分类算法,聚类算法和关联规则三大 算法分类 连接...

    接上篇文章,接下来学习挖掘算法中的分类算法:

    首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为分类算法聚类算法关联规则三大类

    算法分类

    连接分析:PageRank

    关联分析:Apriori

    分类算法:ID3、C4.5,朴素贝叶斯,SVM,KNN,Adaboost,CART

    聚类算法:K-Means,EM

    这里研究分类算法中的决策算法——ID3算法,有ID3算法的知识背景后分析C4.5算法就会容易很多

    1. 分类相关知识

    1.1 分类的概念

    分析分类算法,那么首先我们需要知道什么是分类,这里我们给出定义:

    分类是最常见的数据挖掘任务,也是人类众多规则之一

    给定数据集D={t1,t2,…,tn},元组ti为D的真子集,类的集合C={C1,……,Cm}

    我们将分类的问题定义为:

    image-20220407163435550

    关于分类我们应该知道:

    • 考察一个新出现的对象的特征,并归类到已定义类中。
    • 在数据挖掘中,分类的对象通常是数据库表或文件中的记录
    • 分类工作首先要有一个清晰定义的类
    • 注意: 类的个数是确定的,预先定义好的
    • 其次,要有一系列已分类实例

    1.2 分类的流程

    分类的流程为:

    • 步骤一:数据准备
    • 步骤二:特征选择
    • 步骤三:建立分类器

    我们通过一个例子来解释一下以上三个流程:

    我们看下面的数据集,根据已知样本的相关信息,能否对未知的样本进行分类? 动物A和动物B是什么类型的动物呢?

    image-20220407165501206

    步骤一:数据准备

    image-20220407165614740

    步骤二:特征选择

    选择与类别相关的特征,比如,绿色代表与类别非常相关,黑色代表部分相关,灰色代表完全无关

    image-20220407170244822

    建立分类器。分类器通常可以看作一个函数。在这里我们可以简单的分析出:

    产蛋并且有翅膀、脚的只数就可以分类为鸟类;不产蛋、没有翅膀、并且脚的只数为4只的可以分类为爬行动物,但是我们看动物A和动物B都不能满足所以的分类条件,所以在这里我们并不能将其进行分类

    我们给出分类器的公式:
    f ( x i 1 , x i 2 , x i 3 , . . . . . . , x i n ) → y i f (xi1,xi2,xi3,......,xin)→ yi f(xi1,xi2,xi3,......,xin)yi
    我们通过下面的分类过程来演示一下分类器

    第一步 建立模型

    例如下图中,训练集通过分类算法建立模型,我们可以得到:

    • 如果这个人是教授或者他的任教时间超过了6年,那么他就可以被终身聘用

    第二步:使用模型进行分类

    我们看下图,通过上面建立好的分类集,我们就可以判断Jeff是教授,所以他可以被终身聘用

    image-20220407172210745

    1.3 分类模型评价标准

    分类流程中,最重要的一步就是怎么找到分类模型,并且如何衡量分类模型的正确性

    这里就引出了如何评价分类模型的问题,对于分类模型,主要可以从以下几个方面进行评价:

    1. 预测的准确度:模型正确地预测新的或之前没见过的数据类别的能力
    2. 速度:产生和使用模型的计算成本
    3. 强壮型:当存在噪声数据或具有空缺值的数据时,模型正确预测的能力
    4. 可伸缩性:当给定大量数据时,有效地构造模型的能力
    5. 可解释性:学习模型提供的理解和洞察的层次

    分类评价的常用术语有:

    1. 真正类(True Positive , TP):被模型预测为正例的正样本个数
    2. 假正类(False Positive , FP):被模型预测为正例的负样本个数
    3. 假负类(False Negative , FN):被模型预测为负例的正样本个数
    4. 真负类(True Negative , TN):被模型预测为负例的负样本个数
    5. 混淆矩阵(confusion matrix):是用来反应某一个分类模型的分类结果,其中行表示的是真实的类别,列表示的是模型预测的类别

    image-20220407180431743

    在分类的时候,我们有二分类和多分类,所谓的二分类就是将分类的结果分为两类,例如我们将人的性别分为男人和女人

    二分类算法的评价指标包括以下几个:

    1. 正确度(accuracy):accuracy = (TP + TN) / (P + N),即被分对的样本数除以所有样本数,正确率越高,分类器越好

    2. 错误率(error rate):错误率和正确率相反,描述被分类器错分的比例。error rate = (FP + FN) / (P + N),对某一个实例来说,分队和分错是互斥事件,所以我们有accuracy = 1 - error rate

    3. 灵敏度(sensitive):sensitive = TP / P,表示的是所有正例中被分对的比例。灵敏度衡量了分类器对真例的识别能力

    4. 特效度(specificity):specificity = TN / N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力

    5. 精度(precision):precision = TP / (TP + FP),精度是精确性的度量,表示被分为正例的实例中实际为正例的比例

    6. 召回率(recall):recall = TP / (TP + FN) = TP / P = sensitive,召回率是对覆盖面的度量,度量有多个正例被正确地分为正例

    7. ROC(Receiver Operating Characteristic)曲线和AUC(曲线包围面积),ROC曲线也被成为接受者操作曲线,来源于信号检测领域,可以用来比较两个分类器的性能。ROC曲线关注两个指标TPR(true positive rate)和FPR(false positive rate)
      T P R = T P / ( T P + F N ) TPR = TP / (TP + FN) TPR=TP/(TP+FN)

      F P R = F P / ( F P + T N ) FPR = FP / (FP + TN) FPR=FP/(FP+TN)

      详细的介绍请看这篇文章:机器学习分类模型评价指标详述

    2. 二分类分类案例

    我们通过一个二分类的例子来将上面的评价指标串起来

    我们有以下数据集,我们需要进行海洋生物识别,鱼类标签为1,非鱼类为0:

    image-20220407184153624

    我们根据分别表可以知道:

    TP=900:真阳 FP=200: 假阳

    FN=100: 假阴 TN=800: 真阴

    image-20220407184520099

    image-20220407184533727

    image-20220407184623786

    image-20220407191917514

    image-20220407191952433

    image-20220407192047304

    image-20220407192104209

    image-20220407192118218

    image-20220407192132945

    image-20220407192145053

    image-20220407192158351

    image-20220407192223467

    参考文章:

    展开全文
  • 如何评价算法的好坏?

    千次阅读 2019-11-25 11:48:10
    评价一个算法的好坏,我认为关键是看能不能解决问题。如果算法能很好地解决实际的问题,那么我认为就是好算法。 比如预测的算法,关键是看预测的准确率,即预测值与实际值之间的接近程度,而不是看算法本身的评分...

    2019-11-23 18:32:55

    序言

    评价一个算法的好坏,我认为关键是看能不能解决问题。如果算法能很好地解决实际的问题,那么我认为就是好算法。 比如预测的算法,关键是看预测的准确率,即预测值与实际值之间的接近程度,而不是看算法本身的评分高低。

    在《 如何用人工智能预测双 11 的交易额 》这篇文章中,利用线性回归算法,我预测 2019 年双 11 交易额为 2471 亿元,而阿里官方公布的实际交易额是 2684 亿元,预测值比实际值少 7.9%,对这个结果,我觉得准确率不够高。反思预测的过程,我认为可以从以下几个方面来进行改进。

    1. 样本

    为了简化算法模型,我舍弃掉了前几年相对较小的数据,只保留了最近 5 年的数据。

    在数据量本身就比较少的情况下,我仍然遵循简单原则,这无形中就加大了算法不稳定的风险,出现了欠拟合的问题。

    尽管算法的评分很高,但是评分高并不代表算法就好。所以,样本的选择非常重要,不能单纯地追求算法的评分高,而忽略样本的质量。

    2. 算法

    如果保留所有样本,那么显然数据呈现的规律并不是线性的,用多项式回归算法应该是个更好的选择。

    假如用三次多项式回归算法进行预测,那么算法代码如下:

    # 导入所需的库
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn.linear_model import LinearRegression
    from sklearn.preprocessing import PolynomialFeatures
    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import StandardScaler
    
    # 内嵌画图
    %matplotlib inline
    
    # 设置正常显示中文标签
    plt.rcParams['font.sans-serif'] = ['SimHei']
    
    # 读取数据,在林骥的公众号后台回复「1111」
    df = pd.read_excel('./data/1111.xlsx')
    
    # x 年份
    x = np.array(df.iloc[:, 0]).reshape(-1, 1)
    
    # y 交易额
    y = np.array(df.iloc[:, 1])
    
    # z 预测的年份
    z = [[2019]]
    
    # 用管道的方式调用多项式回归算法
    poly_reg = Pipeline([
     ('ploy', PolynomialFeatures(degree=3)),
     ('std_scaler', StandardScaler()),
     ('lin_reg', LinearRegression())
    ])
    poly_reg.fit(x, y)
    
    # 用算法进行预测
    predict = poly_reg.predict(z)
    
    # 输出预测结果
    print('预测 2019 年双 11 的交易额是', str(round(predict[0],0)), '亿元。')
    print('线性回归算法的评分:', poly_reg.score(x, y))

    预测 2019 年双 11 的交易额是 2689.0 亿元。

    线性回归算法的评分:0.99939752363314

    下面是用 matplotlib 画图的代码:

    # 将数据可视化,设置图像大小
    fig = plt.figure(figsize=(10, 8))
    ax = fig.add_subplot(111)
    
    # 绘制散点图
    ax.scatter(x, y, color='#0085c3', s=100)
    ax.scatter(z, predict, color='#dc5034', marker='*', s=260)
    
    # 设置标签等
    plt.xlabel('年份', fontsize=20)
    plt.ylabel('双 11 交易额', fontsize=20)
    plt.tick_params(labelsize=20)
    
    # 绘制预测的直线
    x2 = np.concatenate([x, z])
    y2 = poly_reg.predict(x2)
    plt.plot(x2, y2, '-', c='#7ab800')
    plt.title('用多项式回归预测双 11 的交易额', fontsize=26)
    plt.show()

    如何评价算法的好坏?

     

    这近乎完美地拟合了 2009 年以来十一年的数据,因此不禁让人怀疑,阿里的数据是不是过于完美?

    3. 优化

    按照一般的机器学习算法流程,应该把数据拆分为两部分,分别称为训练数据集和测试数据集。从 2009 年到 2018 年,双 11 的交易额总共才 10 个数据,我在预测的时候还舍弃了前 5 个数据,最后只剩下 5 个数据,我以为再拆分就没有必要了。 但机器学习算法的表现好坏,有一个关键因素,就是要有足够多的数据量。

    另外,应该适当地使用网格搜索法,优化算法的参数,必要时还要与交叉验证法相结合,进行算法评估,从而提高算法的可信度和准确率。 除了算法的准确率,还可以使用其他的方法对模型进行评价,比如:召回率、F1 分数、ROC、AUC、MSE、RMSE、MAE 等等 。

    现实世界是错综复杂的,很难用一个算法就解决问题,往往需要经过很多次的尝试,才可能找到基本符合的模型。需要注意的是,多项式回归的指数不宜过高,否则算法太复杂,很可能出现“过拟合”的现象,从而泛化能力比较差,也就是说,对于训练数据集能够很好地拟合,但是对于测试数据集的预测误差比较大。模型复杂度与预测误差的大致关系如下图所示:

    如何评价算法的好坏?

     

    小结

    本文是我在用线性回归算法预测双 11 的交易额之后,做的一次复盘,总结了改进的思路,学习优化的方法。

    学以致用,是我学习的基本原则。如果害怕出错,不去勇于实践,学习再多算法有什么用?这就如同我们不能指望不下水就学会游泳一样。

    以上,希望能够对你有所启发。

    展开全文
  • 算法评价与神经网络算法

    千次阅读 2021-12-06 14:03:16
    前言 随着大数据和信息传输技术的兴起、人们的数据处理工作指数型增长,传统的编程方法和数学...对于参数量较大的算法或一些黑箱性质的算法,通常算法效果也是算法评价的重要指标。通常使用在测试集上的损失来衡量神..
  • 算法性能评价

    千次阅读 2019-09-23 08:05:25
    一种数据结构的优劣是由实现其各种运算的算法具体体现的,对...评价算法性能的标准主要从算法执行时间与占用内存空间两方面考虑,即算法执行所需的时间和存储空间来判断一个算法的优劣。 1.性能评价 对问题规模...
  • 数学建模常考三大模型及十大算法

    千次阅读 2022-04-11 16:05:40
    预测模型: ...规划模型(目标规划、线性规划、非线性规划、整数规划、动态规划)、图论模型(Dijkstra等)、排队论模型、神经网络模型、现代优化算法(遗传算法、模拟退火算法、(前两种差不多就够
  • 作者 |荔枝boy来源 |磐创AI引用 | 基于图的聚类分析研究—张涛【导读】:本文介绍了常用的聚类算法及聚类算法评价指标。1. 典型聚类算法1.1 基于划分的方法代表:kmeans算...
  • 算法常用评价指标

    千次阅读 2019-11-26 10:49:27
    评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标。 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中,大...
  • 聚焦评价算法_1(Focus Measure)

    千次阅读 2022-02-17 16:17:35
    聚焦评价算法分类
  • 评价算法的优劣标准有什么?

    千次阅读 2021-03-22 11:45:17
    一、评价算法的优劣标准有什么? 1.1什么是算法? 算法就是一个解决问题的方法,一种计算过程。补充:一个程序就是算法与数据结构的组合(数据结构可以直白的理解为研究数据存储的方式) 1.2时间复杂度 想要去评价一...
  • 算法效率评价

    千次阅读 2019-05-24 14:15:19
    1.算法效率评价标准 对于同样的编程问题,使用不同的算法最终的结果是一样的,但计算机计算过程是消耗的时间和空间却不一样,但是我们又不能去计算每个算法用的时间和空间,我们只能通过数学的方法来估算这个算法,...
  • 算法评价指标有哪些 ?

    万次阅读 2021-07-29 07:34:02
    1、时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。一般来说,计算机算法是问题规模n 的函数f(n),...3、正确性算法的正确性是评价一个算法优劣的最重要的标准。4、可读性算法的可读性是指一个算法可...
  • 分类算法常用的评价指标

    万次阅读 多人点赞 2019-06-18 16:23:27
    1,评价指标列表 2,基本概念 针对一个二分类问题,即将实例分成正(positive)或负(negative),在实际分类中会出现以下四种情况: (1)若一个实例是正,并且被预测为正,即为真正(True Positive ...
  • 《基于模糊算法的教育群体评价》本文是关于算法方面硕士学位论文范文跟模糊算法和教育群体评价算法有关本科毕业论文范文.摘 要:当前,能够对教师的劳动成果进行比较公正和合理的评价成为比较迫切的教学需要,而在...
  • 文章目录那么我们过去是怎么评价的?客观评价-基于指标客观评价-基于模型R&S®UPV音频分析仪小结那么我们现在用哪些评价方法呢?基于深度学习的方法:AutoMOS, QualityNe, NISQA, MOSNetMOSNet(`absolute....
  • 多目标优化算法的性能评价
  • 聚焦评价算法_2(Focus Measure)

    千次阅读 2022-02-18 09:06:50
    影响聚焦评价算法的因素 评判聚焦评价算法的性能指标
  • 机器学习分类算法常用评价指标

    千次阅读 2018-10-16 17:42:31
    目录 1. 准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值 2. 宏平均(Macro-averaging)和微平均(Micro-averaging) ... 为了评价模型以及在不同研究者之间进行性能比较,需要统一的评价标准。...
  • 算法评价

    千次阅读 2018-06-05 21:59:19
    算法评价法则1、正确性2、高效性3、空间性4、可读性算法的效率通常,通过统计算法中基本操作重复执行的次数,就可近似的得到算法的执行效率,用O(n)表示,也称为时间复杂度...
  • 检测和分割算法常用的评价指标

    千次阅读 2022-02-09 15:46:27
    根据这两个的综合评价得到一个准确的指标:ap,map。 mAP@0.5:mean Average Precision,就是给每一分别计算AP,然后做mean平均。 如果有多目标,求一个平均值就是map值。 以上这种方法只根据置信度得到的多组p-r...
  • 推荐算法常用评价指标

    千次阅读 2020-04-24 09:09:55
    因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。 指标计算tips: 1.计算auc的时候就必须用概率,不能用标签的。auc是计算输出分数的排序能力,会穷举所有可能的阈值。 2.auc的直观解释是任取一个正样本...
  • 目标检测算法评价指标

    千次阅读 2020-06-09 15:38:48
    IoU(intersection over union)...评价一个算法的时候,一种常见的方法是先设置一个IOU的阈值,只要算法找到的IOU大于这个阈值,就是一个有效的检测,把记过拿出来计算mAP作为最终的评价指标。 P(Precision,精确度)和

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,996
精华内容 74,398
关键字:

评价类算法