Рабочая ПодПрограмма (Visual FoxPro) - прототип распознавания ЦИФРОВЫХ "образов" по атрибутам
Все принципы исследования – распознавания «образов» -атрибутов «ТАБЛИЦ» (не путать с фотокосмоснимками) «образно» показаны на рисунках.
Меры сходства и расстояния
Принято различать меры на две категории – сопряжения признаков и сходства или расстояния.
Коэффициенты сопряжения признаков
Расстояния как меры сходства-различия
На картинках образно показаны точки с атрибутами: в одном случае два объекта (две точки) а в другом имеется в виду одна в разных ШКАЛАХ
http://cs4344.vkontakte.ru/u98750176/12 ... 3c9f33.jpg
http://cs4344.vkontakte.ru/u98750176/12 ... 12dcfe.jpg
http://cs10597.vkontakte.ru/u98750176/1 ... de77ab.jpg
Код: Выделить всё
*Программа, как прототип набора программ распознавания цифровых "образов" на примере расчета
*рангового коэффициента Спирмена - число объектов и эталонов неограничено но
*требуется специальная предварительная подготовка и обработка. Подразумевает "культуру" накопления и хранения базы различных эталонов
*Автор алгоритма и программы В.Д.Брусницын
PROCEDURE СХОДСПИР
SET TALK OFF
SET ECHO OFF
CLEAR
IF ALLTRIM(DBF(1))==""
DEFINE POPUP obj_fil PROMPT FILES LIKE *.DBF;
MESSAGE "ВЫБРАТЬ ФАЙЛ ДЛЯ РАСЧЕТА СХОДСТВА";
TITLE "ВЫБРАТЬ ФАЙЛ ДЛЯ РАСЧЕТА СХОДСТВА"
ON SELECTION POPUP obj_fil DEACTIVATE POPUP obj_fil
ACTIVATE POPUP obj_fil
SELECT 1
USE PROMPT() NOUPDATE
ENDIF
SELECT 1
vorname = DBF(1)
BEG = FST_EL("_R")
elts = N_EL("_R")
konec = BEG+elts-1
N1 = ((elts^3 - elts)/6)
vorname = SUBSTR(vorname,1,LEN(vorname)-6)
imia = "sh"
viv_file =vorname+ALLTRIM(imia)+'.dbf'
COPY TO &viv_file AS 1251
USE &viv_file
ALTER TABLE &viv_file ADD COLUMN r_sp N(6,2)
ALTER TABLE &viv_file ADD COLUMN klasse N(4,0)
ALTER TABLE &viv_file ADD COLUMN intensiv N(6,2)
REPL ALL r_sp WITH -1
CLEAR
IF ALLTRIM(DBF(2))==""
DEFINE POPUP obj_fil PROMPT FILES LIKE *.DBF;
MESSAGE "ВЫБРАТЬ ФАЙЛ ЭТАЛОНОВ ДЛЯ РАСЧЕТА СХОДСТВА";
TITLE "ВЫБРАТЬ ФАЙЛ ЭТАЛОНОВ ДЛЯ РАСЧЕТА СХОДСТВА"
ON SELECTION POPUP obj_fil DEACTIVATE POPUP obj_fil
ACTIVATE POPUP obj_fil
SELECT 2
USE PROMPT() NOUPDATE
ENDIF
SELECT 2
vorname = DBF(2)
vorname = SUBSTR(vorname,1,LEN(vorname)-6)
imia = "in"
viv_file =vorname+ALLTRIM(imia)+'.dbf'
COPY TO &viv_file
SELECT 2
USE &viv_file
nach = FST_EL("_K")
N_EL1 = N_EL("_K")
conec1 = nach+N_EL1-1
ALTER TABLE &viv_file ADD COLUMN intensiv N(6,2)
DIMENSION Arr(elts, 2)
COUNT TO ch_kl
GO TOP
FOR qq = 1 TO ch_kl
B_plu=""
B_min=""
FOR ii = nach TO conec1
pii = FIELD(ii)
IF EVAL(pii)>0
B_plu = B_plu+"+"+pii
ELSE
B_min = B_min+"-"+pii
ENDIF
ENDFOR
asdf1 =B_plu+B_min
REPL intensiv WITH &asdf1
SCATTER MEMVAR
t1 = t_t
ind = klasse
SELECT 1
GO TOP
DO WHILE !EOF()
t2 = t_t
SUM1 = 0
qwerty = 0
FOR ii = BEG TO konec
pii = FIELD(ii)
qwerty = (m.&pii-&pii)^2
SUM1 = SUM1 + qwerty
ENDFOR
r1 = (N1 - SUM1 - t1 - t2)/SQRT((N1 - 2*t1)*(N1 - 2*t2))
IF r1 >r_sp
REPL r_sp WITH r1
REPL klasse WITH ind
REPL intensiv WITH &asdf1
ENDIF
SKIP
ENDDO
SELECT 2
SKIP
ENDFOR
CLOSE ALL