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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
105
cla(h1)
plot(h1, tau, x(tau), 'blue', 'linewidth', 2)
if k >= L
rectangle('parent', h1, 'position', ...
[k - L + 1 min(x(k - L + 1 : k)) L - 1 max(x(k - L + 1 : k)) - min(x(k -
L + 1 : k)) + 1e-9], ...
'linewidth', 2, 'edgecolor', [0 1 0])
end
set(h1, 'xlim', [min(tau) - 1e-8 max(tau) + 1e-8])
ab = get(h1, 'xlim');
if ~isempty(POS_OPEN)
disp(['S = ' num2str(S) '; POS_OPEN = ' num2str(POS_OPEN) '; x(k) =
' num2str(x(k))])
plot(h1, ab, POS_OPEN(2) * ones(size(ab)), 'color', [0 1 1])
end
cla(h2)
plot(h2, 1 : k, Q(1 : k), 'green', 'linewidth', 2)
plot(h1, ab, x(k) * ones(size(ab)), 'color', [1 0 0])
set(h0, 'numbertitle', 'off', 'name', ...
['tElapsed = ' num2str((now - t0) * 24)])
drawnow
pause(0.02)
end
Приложение 10
106
function [a, b] = trendDetector(x, L, F)
N = numel(x);
if L + F > N
a = NaN;
b = NaN;
return
end
ksy = x(end - L - F + 1 : end - F);
eta = x(end - F + 1 : end);
ksy = ksy(2 : end) - ksy(1 : end - 1);
eta = eta(2 : end) - eta(1 : end - 1);
if (L < 2) || (F < 2)
error('L & F must be greater than 2 !!!')
end
a = sqrt((1 / (L - 1) * sum(abs(ksy))) * (1 / (F - 1) * abs(sum(eta))));
b = sqrt((1 / (F - 1) * sum(abs(eta))) * (1 / (L - 1) * abs(sum(ksy))));
Приложение 11. Обучение нейронной сети
function f = amanda_ (a1, a2, a3, a4)
%-------------------------------
% 29.10.15 15.41 D., Aeroport.
%-------------------------------
action=isstruct(a2(1));
107
switch action
case false
tic
PR=a1;
Q=a2;
n0=a3;
n1=a4;
X=PR(:,1:end-1);
Y=PR(:,end);
%PCA-обучение
ISTR=struct(...
'action','train',...
'xData',X);
PPCA=pca_amanda(ISTR);
%/PCA-обучение
%PCA-применение
ISTR=struct(...
'action','apply',...
'xData',X,...
'CloudParam',PPCA);
xData=pca_amanda(ISTR);
X=xData.xData;
%/PCA-применение
108
%Наложение дребезга
X=X+0.001*randn(size(X));
%/Наложение дребезга
V=cell(1,n1);
for i=1:n1
V{i}=svg(X,n0);
end
%Массив структур д/хранения настроек кластеров
FieldNames={...
'SVG',...
'NEURON'};
CellArray4Struct=cell(n1,numel(FieldNames));
NNCLUSTER=cell2struct(CellArray4Struct,FieldNames,2);
%/Массив структур д/хранения настроек кластеров
for k=1:n1
NNCLUSTER(k)=amanda_clust([X Y],Q,V{k});
end
dt=toc;
f=struct(...
'PPCA',PPCA,...
'NNCLUSTER',NNCLUSTER,...
'elapsed_time',dt);
case true
109
X=a1;
NN=a2;
PPCA=NN.PPCA;
NNCLUSTER=NN.NNCLUSTER;
%PCA-применение
ISTR=struct(...
'action','apply',...
'xData',X,...
'CloudParam',PPCA);
xData=pca_amanda(ISTR);
X=xData.xData;
%/PCA-применение
g=zeros(size(X,1),numel(NN.NNCLUSTER));
e=zeros(size(X,1),numel(NN.NNCLUSTER));
for j=1:numel(NN.NNCLUSTER)
f_temp=amanda_clust(X,NNCLUSTER(j).NEURON,NNCLUSTER(j).SVG);
g(:,j)=f_temp(:,1);
e(:,j)=f_temp(:,2);
end
f=[median(g,2) median(e,2)];
end
function f = amanda_clust (a1, a2, V)
Источник: https://baza.diplomsite.ru/previewfile/366