体育数据交叉验证(附完整MATLAB代码)

体育数据交叉验证是一种统计学验证方法,主要用于评估各种体育模型的预测性能。这种方法将收集到的体育数据分为训练集和测试集。训练集用于构建模型,而测试集则用于评估模型的预测能力。

具体步骤如下:首先,收集大量的运动员训练和比赛数据。然后,将这些数据随机分为训练集和测试集。训练集用于建立预测模型,例如运动员的表现模型,或者比赛结果的预测模型。然后,使用测试集验证这个模型的预测准确性。

交叉验证的重要性在于,它可以帮助我们理解模型在未知数据上的表现。通过将数据集分割并进行多次训练和测试,我们可以了解模型的稳定性和可靠性。此外,交叉验证还可以用于选择模型,比较不同模型的预测性能,从而选择最佳模型。

总的来说,体育数据交叉验证是一种强大的工具,可以帮助我们提高体育模型的预测准确性,为运动员的训练和比赛提供科学依据。

完整MATLAB代码如下:

%% 情况环境变量
clear all;close all;clc;
%% MATLABDEA交叉效率评价分析程序
%% --------------载入数据开始----------------
indata=xlsread('网球ATP2013技术统计.xls','E2:M12');%计算前10个人
outdata=xlsread('网球ATP2013技术统计.xls','N2:U12');%计算前10个人
inputdataX=indata';
outputdataY=outdata';
%% --------------载入数据结束----------------
% inputdataX=[30 60 55 40 70
% 25 40 70 30 90
% 130 150 120 70 180]; %键入输入矩阵
% outputdataY=[35 43 76 52 63
% 60 80 53 42 71];%键入输出矩阵
% n=size(inputdata',1);
[k11,k12]=size(inputdataX);%获得矩阵的大小
s=size(outputdataY,1); %第一轮线性规划,进行自我评价
A=[-inputdataX' outputdataY'];%定义不等式约束
b=zeros(k12,1);%定义不等式约束
lb=zeros(k11+s,1);%下界
ub=[];%上界
E=zeros(k12);%交叉评价矩阵初始化
%% -----------交叉评价主循环开始--------------------
%进度条
wait_hand = waitbar(0,'正在进行交叉模型计算,请等待……', 'tag', 'TMWWaitbar');
for i=1:k12;
    waitbar(i/k12,wait_hand);%每循环一次更新一次进步条
    Aeq =[inputdataX(:,i)' zeros(1,s)];%等式约束矩阵的设定
    beq=1;%等式约束矩阵的设定
    Objf=[zeros(1,k11) -outputdataY(:,i)'];
    w(:,i)=linprog(Objf,A,b,Aeq,beq,lb,ub);%求解线性规划问题,获得最优权重向量
    Ejj=outputdataY(:,i)'*w(k11+1:k11+s,i);%计算自我评价值矩阵的元素
    %% 
    for k=1:k12%第二轮线性规划,进行交叉评价
        Objf=[zeros(1,k11) outputdataY(:,k)'];
        Aeq=[inputdataX(:,k)' zeros(1,s)%等式约束矩阵的设定
            Ejj*inputdataX(:,i)' -outputdataY(:,i)'];
        beq=[1%等式约束矩阵的设定
            0];
        v=linprog(Objf,A,b,Aeq,beq,lb,ub);%求解线性规划得到v
        E(i,k)=(outputdataY(:,k)'*v(k11+1:k11+s))/(inputdataX(:,k)'*v(1:k11));%计算评价值矩阵的元素
    end
end
delete(wait_hand);%执行完后删除该进度条
%% -----------交叉评价主循环结束--------------------

%% 输出交叉评价矩阵
disp('交叉评价矩阵');
E
%计算的各列平均值
D=mean(E)
%% 决策单元排序
[outputdataY I]=sort(mean(E));
disp('决策单元');
fliplr(I)%按大小,对决策单元从大到小排列

程序结果如下:

交叉评价矩阵

E =

    1.0000    0.9761    0.2964    0.7553    0.8635    0.2225    0.1132    0.8931    0.9173    0.7041    0.6033
    0.6630    1.0000    0.0315    0.5642    0.6418    0.0281    0.0017    0.7120    0.7969    0.4027    0.4332
    0.9068    0.8999    1.0000    0.9240    0.8360    0.8277    0.4527    0.8473    0.8696    0.7773    0.6841
    0.8575    0.8873    0.7251    1.0000    0.8630    0.6541    0.3410    0.8554    0.8942    0.8154    0.7480
    0.7620    0.8207    0.0567    0.5900    1.0000    0.0475    0.0150    0.9991    0.9454    0.6957    0.8406
    0.8442    0.8640    0.8138    0.8712    0.8986    1.0000    0.6746    0.8612    0.9129    0.8416    0.8239
    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    1.0000    0.0000    0.0000    0.0000    0.0000
    0.5341    0.5306    0.0435    0.4889    0.7359    0.0209    0.0024    1.0000    0.9247    0.5851    0.5263
    0.5315    0.5430    0.0361    0.5093    0.6984    0.0171    0.0015    0.8965    1.0000    0.5126    0.4344
    0.9623    0.9725    0.9050    0.9435    0.9648    0.9323    0.8586    0.9687    0.9690    1.0000    0.9858
    0.1182    0.2622    0.0067    0.2070    0.3593    0.0136    0.0053    0.3852    0.3138    0.3707    1.0000


D =

    0.6527    0.7051    0.3559    0.6230    0.7147    0.3422    0.3151    0.7653    0.7767    0.6096    0.6436

决策单元

ans =

     9     8     5     2     1    11     4    10     3     6     7

>> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB代码顾问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值