Современные тенденции в кластерном анализе // Всероссийский конкурсный отбор обзорно-аналитических статей по приоритетному направлению «Информационно-телекоммуникационные системы», 2008. — 26 с.
3. Воронцов К. В. Алгоритмы кластеризации и многомерного шкалирования. Курс лекций. МГУ, 2007.
4. Герасимов Б.М., Дивизинюк М.М., Субач И.Ю., Системы поддержки принятия решений: проектирование, применение, оценка эффективности. Монография. 2004.
5. Журавльов Ю.І., Рязанов В.В., Сенько О.В. «Розпізнавання». Математичні методи. Програмна система. Практичні застосування. — М.: Фазiс, 2006.
6. Інтернет енциклопедія. — Режим доступу: http://ru.wikipedia.org/wiki
7. Информационно-аналитический ресурс, посвященный машинному обучению, распознаванию образов и интеллектуальному анализу данных — www.machinelearning.ru/
8. Котов А., Красильников Н. Кластеризация даних. 2006
9. Мандель И. Д. Кластерный анализ. – М.: Финансы и статистика, 1988. – 176 с.
10. Ротштейн А.П. Интелектуальные технологии идентификации
11. Тарасов В.О., Герасимов Б. М., Левін І. О., Корнійчук В. О. Інтелектуальні системи підтримки прийняття рішень: Теорія, синтез, ефективність.- К.: МАКНС, 2007.= 336с. – Рос. мовою.
12. Чубукова И.А. Курс лекций «Data Mining», Интернет-университет информационных технологий — www.intuit.ru/department/database/datamining/
13. Чекмарев B.B. Книга об экономическом пространстве. Кострома: КГУ им. H.A. Некрасова, 2001. 341 с.
14. Чемберлин Э. Теория монополистической конкуренции. М.: Изд-во ин. лит-ры, 1959. С. 393.
15. Черковец В.Н. Общетеоретические и российские проблемы воспроизводства // Воспроизводство и экономический рост/ Под ред. проф. В.Н. Чер-ковца, доц. В.А. Бирюкова. М.: Экономический факультет, ТЕИС, 2001. С. 31.
16. Четыркин В.М. Проблемные вопросы экономического районирования. Ташкент, 1967.
17. Шарыгин М.Д. Дробное районирование и локальные территориально-производственные комплексы. Пермь, 1975
18. Шерешева М.Ю. О кластерах / М.Ю. Шерешева //Сетевые формы межфирменной кооперации: стратегические вызовы и конкурентные преимущества новых организаций XXI века. Интернет-ресурс: www.ecsocman.edu.ru/db/msg/154728.
19. Шмитц X. Маленькие обувщики и гиганты Форда: рассказ о суперкластере //Интернет-ресурс: www.ideas.repec.org/a/eee/wdevel/v23yl995ilp9-28.html
20. Jain A., Murty M., Flynn P. Data clustering: A Review.// ACM Computing Surveys. 1999. Vol. 31, no. 3.
Додаток Б
Програма реалізації алгоритму ідентифікації складних ОМ на основі нечітких алгоритмів кластерного аналізу
function varargout = Forma_Claster(varargin)
% FORMA_CLASTER M-file for Forma_claster.fig
% singleton*.
% H = FORMA_CLASTER returns the handle to a new FORMA_CLASTER or the handle to
% the existing singleton*.
% FORMA_CLASTER('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in FORMA_CLASTER.M with the given input arguments.
% FORMA_CLASTER('Property','Value',...) creates a new FORMA_CLASTER or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before Forma_claster_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to Forma_claster_OpeningFcn via varargin.
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Forma_claster
% Last Modified by GUIDE v2.5 30-Jun-2013 11:41:58
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Forma_claster_OpeningFcn, ...
'gui_OutputFcn', @Forma_claster_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before Forma_claster is made visible.
function Forma_claster_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Forma_claster (see VARARGIN)
% Choose default command line output for Forma_claster
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Forma_claster wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = Forma_claster_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes during object creation, after setting all properties.
function axes1_CreateFcn(hObject, eventdata, handles)
% hObject handle to axes1 (see GCBO)
function pushbutton1_Callback(hObject, eventdata, handles)
point=handles.data1;
pointcl=[pointc(:,1),point(:,2)];
cla;
plot(pointcl(:,1), pointcl(:,2),'o','markersize',7,'MarkerFaceColor','g','color','m');
title('ПОЧАТКОВЕ РОЗТАШУВАННЯ ДРВп')
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point1.mat');
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point2.mat');
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point3.mat');
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point4.mat');
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point5.mat');
load('D:\\Паньків_Кваліфікаційна_робота\\Forma_Claster\\point6.mat');
val=get(hObject,'Value');
switch val
case 1
handles.data1=point1;
case 2
handles.data1=point2;
case 3
handles.data1=point3;
case 4
handles.data1=point4;
case 5
handles.data1=point5;
case 6
handles.data1=point6;
end
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on selection change in popupmenu2.
function popupmenu2_Callback(hObject, eventdata, handles)
val=get(hObject,'Value');
switch val
case 1
handles.data2=1;
case 2
handles.data2=0.9;
case 3
handles.data2=0.8;
case 4
handles.data2=0.7;
case 5
handles.data2=0.6;
case 6
handles.data2=0.5;
case 7
handles.data2=0.4;
case 8
handles.data2=0.3;
case 9
handles.data2=0.2;
case 10
handles.data2=0.15;
end
guidata(hObject,handles);
% --- Executes during object creation, after setting all properties.
function popupmenu2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in pushbutton12.
function pushbutton12_Callback(hObject, eventdata, handles)
point=handles.data1;
sector(point);
% --- Executes on button press in pushbutton13.
function pushbutton13_Callback(hObject, eventdata, handles)
point=handles.data1;
g=handles.data2;
clustering(point,g);
% --- Executes on button press in checkbox3.
function checkbox3_Callback(hObject, eventdata, handles)
if (get(hObject,'Value'))
grid on
else
grid off
end
% --- Executes on button press in checkbox5.
function checkbox5_Callback(hObject, eventdata, handles)
if (get(hObject,'Value'))
brush on
else
brush off
end
% --- Executes on button press in checkbox6.
function checkbox6_Callback(hObject, eventdata, handles)
if (get(hObject,'Value'))
zoom on
else
zoom off
end
Основна функція програми
function clustering(point,g)
pointcl=[point(:,1),point(:,2)];
matrix =subclust(pointcl,g);
[c,U,obj]=fcm(pointcl,size(matrix,1));
maxU=max(U);
for i=1:size(matrix,1)
B=find(U(i,:)==maxU);
d{i}=pointcl(B(1,:),:);
end
% позначення виду зв'язку та інтенсивності
hold on;
for l=1:(size(point))
if point(l,3)>30 && point(l,4)>500
plot(pointcl(l,1), pointcl(l,2),'ko','markersize',13,'MarkerFaceColor','c');
end
if point(l,3)>30 && point(l,4)<100
plot(pointcl(l,1), pointcl(l,2),'ko','markersize',13,'MarkerFaceColor','y');
end
if point(l,3)>30 && point(l,4)<500 && point(l,4)>100
plot(pointcl(l,1), pointcl(l,2),'ko','markersize',13,'MarkerFaceColor','g');
end
if point(l,3)<30 && point(l,4)>500
plot(pointcl(l,1), pointcl(l,2),'k^','markersize',13,'MarkerFaceColor','c');
end
if point(l,3)<30 && point(l,4)<100
plot(pointcl(l,1), pointcl(l,2),'k^','markersize',13,'MarkerFaceColor','y');
end
if point(l,3)<30 && point(l,4)<500 && point(l,4)>100
plot(pointcl(l,1), pointcl(l,2),'k^','markersize',13,'MarkerFaceColor','g');
end
end
% надання окремим ДРВп номера кластеру
for i=1:(size(d,2))
text(d{i}(:,1), d{i}(:,2),ToString(i),'color','k','FontSize',9);
end
% визначення координат вектора від центра кластера
for f=1:(size(d,2))
am1=(c(f,1)-d{f}(:,1));
am2=(c(f,2)-d{f}(:,2));
% знаходження значення вектора по модулю "x"
for i=1:1:(size(am1,1))
am11=am1(i,1)*am1(i,1);
masyv1(i)=am11;
end
% знаходження значення вектора по модулю "y"
for i=1:1:(size(am2,1))
am22=am2(i,1)*am2(i,1);
masyv2(i)=am22;
end
% абсолютний модуль
absolute_modul=sqrt(masyv1+masyv2);
% масив найдовших векторів
masyv_obvedennya=max(absolute_modul);
% коло
t=0:pi/100:2*pi;
u0=c(f,1);
v0=c(f,2);
A=2*masyv_obvedennya;
B=2*masyv_obvedennya;
u=v0+A/2*sin(t);
v=u0+B/2*cos(t);
if g>0.1 && g<0.3
plot(u0,v0,'rx','markersize',7,'LineWidth', 2);
plot(v,u,'-c','LineWidth',2);
end
if g>0.2 && g<0.4
plot(u0,v0,'rx','markersize',8,'LineWidth', 2);
plot(v,u,':m','LineWidth',2);
end
if g>0.3 && g<0.5
plot(u0,v0,'r+','markersize',9,'LineWidth', 2);
plot(v,u,'-.r','LineWidth',2);
end
if g>0.4 && g<0.6
plot(u0,v0,'r*','markersize',10,'LineWidth', 2);
plot(v,u,'--y','LineWidth',2);
end
if g>0.5 && g<0.7
plot(u0,v0,'rd','markersize',11,'LineWidth', 2);
plot(v,u,'-k','LineWidth',2);
end
if g>0.6 && g<0.8
plot(u0,v0,'r>','markersize',12,'LineWidth', 2);
plot(v,u,':g','LineWidth',2);
end
if g>0.7 && g<0.9
plot(u0,v0,'rh','markersize',13,'LineWidth', 2);
plot(v,u,'-.b','LineWidth',2);
end
if g>0.8 && g<1
plot(u0,v0,'rp','markersize',14,'LineWidth', 2);
plot(v,u,'--m','LineWidth',2);
end
if g>0.9 && g<1.1
plot(u0,v0,'r>','markersize',15,'LineWidth', 2);
plot(v,u,'-r','LineWidth',2);
end
axis equal
title('КЛАСТЕРНИЙ АНАЛІЗ')
end