Дипломная работа: Автоматизация управления активами при помощи кластерного анализа паттернов поведения игроков рынка в ПАО «ФК Открытие»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
125
yIntv=get(H1,'ylim');
c2=[1 0 1];
XP=[xIntv(1) xIntv(1) xIntv(2) xIntv(2)];
YP=[ErrMatrixCurrent(I1,J1) ErrTreshold ErrTreshold
ErrMatrixCurrent(I1,J1)];
patch(XP,YP,[0 0.7
0],'parent',H1,'EdgeAlpha',0.3,'FaceAlpha',0.3,'AlphaDataMapping','none',...
'BackFaceLighting','unlit','Clipping','off')
line([xIntv(1) xIntv(2)],[ErrMatrixCurrent(I1,J1)
ErrMatrixCurrent(I1,J1)],...
'Color',[0 0.8 0],'LineWidth',2,'parent',H1)
line([xIntv(1) xIntv(2)],[ErrTreshold ErrTreshold],...
'Color',[0 0.8 0],'LineWidth',2,'parent',H1)
line([xIntv(1) xIntv(2)],[AbsoluteErrMin AbsoluteErrMin],...
'Color',c2,'LineWidth',0.5,'parent',H1)
line([best_NEURON best_NEURON],[yIntv(1) yIntv(2)],...
'Color',c2,'LineWidth',0.5,'parent',H1)
plot(H1,best_NEURON,AbsoluteErrMin,...
'Marker','s','MarkerFaceColor','none',...
'MarkerEdgeColor',c2,'linewidth',0.5,'MarkerSize',20)
for j=1:numel(n_Q)
plot(H1,n_NEURON(1:i),ErrMatrix(1:i,j),...
'Marker','o','MarkerFaceColor',get(H1,'color'),...
'MarkerEdgeColor',COLMATR(j,:),'Color',COLMATR(j,:),...
'linewidth',1,'MarkerSize',4,'LineStyle','-')
end
plot(H1,n_NEURON(1:i),FFErrVectorCurrent,...
'Marker','o','MarkerFaceColor',get(H1,'color'),...
'MarkerEdgeColor','red','Color','red',...
'linewidth',1,'MarkerSize',4,'LineStyle',':')
126
rectangle('position',...
[xIntv(2)-0.07*(xIntv(2)-xIntv(1)) yIntv(2)-0.35*(yIntv(2)-
yIntv(1))...
0.07*(xIntv(2)-xIntv(1)) 0.35*(yIntv(2)-yIntv(1))],...
'EdgeColor',[0.5 0.5
0.5],'FaceColor',get(H0,'color'),'linewidth',0.5,'parent',H1)
for j=1:numel(n_Q)
text(...
xIntv(2)-0.065*(xIntv(2)-xIntv(1)),...
yIntv(2)-0.03*j*(yIntv(2)-yIntv(1)),...
['Q = ' num2str(n_Q(j))],...
'FontSize',10,'Color',COLMATR(j,:),'parent',H1)
end
drawnow
pause(0.01)
f=guidata(hui1);
if numel(f)
break
end
end
end
function [PR,t] = cvs_randomdivide (PR, k)
N=size(PR,1);
Y=PR(:,end);
[~,ord]=sort(Y,'ascend');
PR=PR(ord,:);
if rem(N,k)
PR(1:rem(N,k),:)=[];
end
127
N=size(PR,1);
t=rem((1:N)',k);
t(~t)=k;
for i=1:N/k
dt=t((i-1)*k+1:i*k);
ord=randperm(k);
dt=dt(ord);
t((i-1)*k+1:i*k)=dt;
end
function cbbfun (src, eventdata)
set(src,'enable','off')
drawnow
pause(0.01)
guidata(src,false)
function [I,J] = min_matrixel_search (A)
[AColMin,ColPos]=min(A);
if size(A,1)<2
I=1;
J=ColPos;
else
[~,J]=min(AColMin);
I=ColPos(J);
end
function WindowResized (src, eventdata, hButton)
sz0=get(src,'position');
set(hButton,'position',[sz0(3)-110 10 100 26])
Приложение 13
128
function [CSV,key,datatype,N,P] = csvInterp (filename,delimiter,castflag)
%--------------------------------------
%this function transforms information
%from *.csv to the dataframe CSV
% 1.csvTransform data into cell, extract keys & find dimensions
[X,key,N,P]=baseTransform(filename,'UTF-8',delimiter,1);
m=size(X,1);
n=size(X,2);
% 2.redefine data type if nessesary
NANMASK=true(1,n);
if nargin>2
if castflag
PRE_NUMBERS=zeros(m,n);
for jj=1:n
display(horzcat('cast:: iteration ',num2str(jj),' from ',num2str(n)))
PRE_NUMBERS(:,jj)=str2double(X(:,jj));
end
NANMASK=any(isnan(PRE_NUMBERS),1);
end
end
% 3.create array
CSV=cell(1,n);
datatype=cell(1,n);
129
for jj=1:n
if NANMASK(jj)
datatype{jj}='char';
CSV{jj}=X(:,jj);
else
datatype{jj}='double';
CSV{jj}=PRE_NUMBERS(:,jj);
end
end
% !.outer function definitions
function [X,caption,N,P] = baseTransform
(filename,encoding,delimiter,skip)
%0.Read database
C=quasiURLread(filename,encoding);
%1.Assign caption
L=length(delimiter);
if strcmp(delimiter(1),'\')
L=L-1;
end
p=regexp(C{1},delimiter); %TAB: delimiter='\t'
m=numel(p);
caption=cell(1,m+1);
if m
caption{1}=C{1}(1:p(1)-1);
for jj=1:m-1
caption{jj+1}=C{1}(p(jj)+L:p(jj+1)-1);
end
caption{m+1}=C{1}(p(m)+L:end);
Источник: https://baza.diplomsite.ru/previewfile/366