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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
120
n=size(V,1);
if nargin==2
Z=cell(n,1);
elseif nargin==3
Z=cell(n,2);
end
pos=cell(n,1);
pos_ini=(1:N)';
for i=1:n
Z{i,1}=X(L==i,:);
pos{i}=pos_ini(L==i);
if nargin==3
Z{i,2}=Y(L==i);
end
end
function L = svg_labels (X, V)
N=size(X,1);
n=size(V,1);
R2=zeros(N,n);
for j=1:n
R2(:,j)=sum((ones(N,1)*V(j,:)-X).^2,2);
end
[~,L]=min(R2,[],2);
Приложение 12
function [best_NEURON,best_Q] = amanda_cvo (ISTR)
%-------------------------------
% 29.10.15 19.01 D., Aeroport.
%-------------------------------
121
n_NNCLUSTER=ISTR.n_NNCLUSTER;%<scalar>
n_NEURON=ISTR.n_NEURON;
n_Q=ISTR.n_Q;
PR=ISTR.PR;
gui=ISTR.gui;
COLMATR_INI=jet(10000);
t=1:1:numel(n_Q);
if numel(t)>1
tc=ceil(1/(numel(n_Q)-1)*((10000-1)*t-(10000-numel(n_Q))));
else
tc=1;
end
COLMATR=COLMATR_INI(tc,:);
COLMATR=COLMATR./(max(COLMATR,[],2)*ones(1,3));
nPieces=10;
[PR_CVS,t]=cvs_randomdivide(PR,nPieces);
ErrMatrix=zeros(numel(n_NEURON),numel(n_Q));
FFErrVector=zeros(numel(n_NEURON),numel(n_Q));
if gui
c1=0.7;
sz=get(0,'ScreenSize');
H0=figure(...
'Position',[0.05*sz(3) 0.4*sz(4) 0.5*sz(3) 0.5*sz(4)],...
'name','AMANDA_CVO(S)',...
'numbertitle','off','color',[0 0 0]);
H1=axes(...
122
'Parent',H0,...
'color',get(H0,'color'),...
'xcolor',[0 c1 c1],...
'ycolor',[0 c1 c1],...
'nextplot','add',...
'layer','top',...
'linewidth',1.0...
);
xlabel(...
H1,...
'„исло нелинейных нейронов',...
'Color',[0 c1 c1])
ylabel(...
H1,...
'¬алидационна¤ нев¤зка',...
'Color',[0 c1 c1])
sz0=get(H0,'position');
hui1=uicontrol(...
'style','pushbutton',...
'parent',H0,...
'position',[sz0(3)-110 10 100 26],...
'string','stop',...
'ForegroundColor',[0.8 0 0],...
'FontWeight','b',...
'CallBack',@cbbfun);
set(H0,'ResizeFcn',{@WindowResized hui1})
end
for i=1:numel(n_NEURON)
for j=1:numel(n_Q)
123
if gui
drawnow
pause(0.01)
end
ErrTemp=zeros(nPieces,1);
FFErrTemp=zeros(nPieces,1);
for count=1:nPieces
PR_TEACH=PR_CVS(t~=count,:);
PR_EXAM=PR_CVS(t==count,:);
AMANDANET=amanda_(PR_TEACH,n_Q(j),n_NEURON(i),n_NNCLUSTER);
FFNET=perceptron1_(PR_TEACH,20,n_NEURON(i));
Y0=PR_EXAM(:,end);
COLOUT=amanda_(PR_EXAM(:,1:end-1),AMANDANET);
Y1=COLOUT(:,1);
Y_FF=perceptron1_(PR_EXAM(:,1:end-1),FFNET);
ErrTemp(count)=max(abs(Y0-Y1))/(max(Y0)-min(Y0));
FFErrTemp(count)=max(abs(Y0-Y_FF))/(max(Y0)-min(Y0));
end
ErrMatrix(i,j)=median(ErrTemp);
FFErrVector(i)=median(FFErrTemp);
if gui
set(H0,'name',strcat(...
'AMANDA_CVO(S) progress (done):',['n='
num2str(n_NEURON(i)) ','],['Q=' num2str(n_Q(j))]))
drawnow
pause(0.01)
end
end
ErrMatrixCurrent=ErrMatrix(1:i,:);
124
FFErrVectorCurrent=FFErrVector(1:i);
[I1,J1]=min_matrixel_search(ErrMatrixCurrent);
ErrCurrentMin=ErrMatrixCurrent(I1,J1);
ErrTreshold=(1+0.05)*ErrCurrentMin;
anniter=1:i;
AnniterMin=min(anniter(min(ErrMatrixCurrent,[],2)<=ErrTreshold));
I0=AnniterMin;
ErrMatrixClip=ErrMatrixCurrent(AnniterMin,:);
[AbsoluteErrMin,J0]=min(ErrMatrixClip);
best_NEURON=n_NEURON(I0);
best_Q=n_Q(J0);
if gui
cla(H1)
yGlMin=min(min(min(ErrMatrixCurrent)),min(FFErrVectorCurrent));
yGlMax=max(max(max(ErrMatrixCurrent)),max(FFErrVectorCurrent));
dQ=yGlMax-yGlMin;
if dQ<1e-8
set(H1,'ylim',[yGlMin-1e-8 yGlMax+1e-8])
else
set(H1,'ylim',[yGlMin-0.1*dQ yGlMax+0.1*dQ])
end
if i<2
set(H1,'xlim',[min(n_NEURON(1:i))-1 max(n_NEURON(1:i))+1])
else
dn=max(n_NEURON(1:i))-min(n_NEURON(1:i));
set(H1,'xlim',[min(n_NEURON(1:i))-0.1*dn
max(n_NEURON(1:i))+0.1*dn])
end
xIntv=get(H1,'xlim');
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);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")