Книга: Учебное пособие по курсу «Нейроинформатика»

Пример описания оценки

Пример описания оценки

В этом разделе приведены два примера описания одной и той же оценки следующего состава: первый сигнал интерпретируется как температура путем умножения на 10 и добавления 273; следующие два сигнала интерпретируются как наличие облачности, используя знаковый интерпретатор; следующие три сигнала интерпретируются как направление ветра, используя двоичный интерпретатор (восемь румбов); последние три сигнала интерпретируются максимальным интерпретатором как сила осадков (без осадков, слабые осадки, сильные осадки). Для трех последних интерпретаторов используются соответствующие им оценки типа расстояние до множества. В первом примере приведено описание дубликатов всех стандартных оценок. Во втором — использованы стандартные оценки.

Пример 1.

Estimation Meteorology
Est Empty1()  {Оценка для интерпретатора, осуществляющего масштабирование и сдвиг сигнала}
Static
 Real BName "Масштабный множитель";
 Real C Name "Сдвиг начала отсчета";
 Real E Name "Требуемаяточность совпадения";
Var
 Real A;
Begin
 A = Signals[1] – (Answer – C) / B;
 D = E * Reliability; {Допуск определяем произведением}
 If Abs(A)<D Then Estim = 0
 Else If A > 0 Then Begin
  Estim =Weight * Sqr(A – D) / 2;
  If Direv Then Back[1] = Weight * (A – D);
 End Else Begin
  Estim =Weight * Sqr(A + D) / 2;
  If Direv Then Back[1] = Weight * (A + D);
 End
End
{Кодирование номером канала. Оценка для знакового интерпретатора.}
Est Binary1(N : Long)   
Static
 Real E Name "Уровень надежности";
Var
 Long I, J;
 Real A, B, C;
Begin
 J = Answer; {Правильный ответ – номер правильного класса}
 B = 0;
 C = E * Reliability; {Допуск определяем произведением}
 For I = 1 To NDo
  If I = J Then Begin
   If Signals[I] < С Then Begin
    B = B + Sqr(Signals[I] – С);
    If Direv Then Back[I] = 2 * Weight * (Signals[I]-С);
   End;
  End Else Begin
   If Signals[I] > -C Then Begin
    B = B + Sqr(Signals[I] + C);
    If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);
   End
  End;
 Estim = Weight*B
End
{Кодирование номером канала. Оценка для максимального интерпретатора.}
Est Major1(N : Long)
Static
 Real E Name "Уровень надежности";
Var
 Real A, B;
 Long I, J, K, Ans;
 RealArray[N+1] Al,Ind;
Begin
 Ans = Answer;
 Ind[1] = Ans;
 Al[1] = Signals[Ans] – E *Reliability;
 Ind[N+1] = 0;
 Al[N+1] = -1.e40;
 K:=1;
 For I = 1 ToNDo
  If I <> Ans Then Begin
   Al[K] = Signals[I];
   Ind[K] = I;
   K = K + 1;
  End; {Подготовлен массив сигналов}
 For I = 2 To N-1 Do Begin
  A = Al[I];
  K = I;
  For J = I+1 ToNDo
   If Al[J] > A Then Begin
    K = J;
    A = Al[J];
   End; {Найден следующий по величине}
  Al[K] = Al[I];
  Al[I] = A;
  J = Ind[K];
  Ind[K] = Ind[I];
  Ind[I] = J;
 End; {Массивы отсортированы}
 A = Al[1]; {Сумма первых I членов}
 I = 1;
 While (A / I <= Al[I+1]) Do Begin
  A = A + Al[I];
  I = I + 1;
 End; {В конце цикла I-1 равно числу корректируемых сигналов}
 B = A / I; {B – величина, к которой должны стремиться}
 A = 0; {корректируемые сигналы}
 For J = 1 To I Do Begin
  A = A + Sqr(Al[J] – B);
  If Direv Then Back[Ind[J]] = -2* Weight * (Al[J] – B);
 End;
 Estim = Weight * A
End;
Est BynaryCoded1: (N : Long) {Оценка для кодирования номером канала}
Static
 Real E Name "Уровень надежности";
Var
 Long I, J, A, K;
 Real B, C;
Begin
 A = Answer;
 B = 0;
 C = E * Reliability; {Допуск определяем произведением}
 For I = N To 1 By -1 Do Begin
  J = A / 2;
  K = A – 2 * J;
  A = J;
  If A = 1 Then Begin
   If Signals[I] < C Then Begin
    B = B + Sqr(Signals[I] – C);
    If Direv Then Back[I] = 2 * Weight * (Signals[I]-C);
   End;
  End Else Begin
   If Signals[I] > -C Then Begin
    B = B + Sqr(Signals[I] + C);
    If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);
   End;
  End;
  Estim = Weight*B
 End
Contents Temp : Empty1, Cloud : Binary1(2), Wind : BynaryCoded1(3), Rain : Major1(3);
Cloud Link Meteorology.Cloud {Связываем оценки с интерпретаторами}
Wind Link Meteorology.Wind
Rain Link Meteorology.Rain
Temp SetParameters 10, 273; {Устанавливаем значения параметров оценок}
Cloud SetParameters 0.1; {и интерпретаторов}
Wind SetParameters 0.2;
Rain SetParameters 0.15
Weights 1, 1, 1, 1
Signals NumberOf(Signals,Temp) +NumberOf(Signals, Cloud) + NumberOf(Signals, Wind) + NumberOf(Signals, Rain)
Connections
 Temp.Signals <=> Signals[1];
 Cloud.Signals[1..2] <=> Signals[2; 3];
 Wind.Signals[1..3] <=> Signals[4..6];
 Rain.Signals[1..3] <=> Signals[7..9]
 Temp.Answer <=> Answer[1];
 Cloud.Answer[1..2] <=> Answer[2];
 Wind.Answer[1..3] <=> Answer[3];
 Rain.Answer[1..3] <=> Answer[4]
End Estimation

Пример 2.

Estimation Meteorology
Contents Temp : Empty, Cloud : Binary(2), Wind : BynaryCoded(3), Rain : Major(3);
 Cloud Link Meteorology.Cloud {Связываем оценки с интерпретаторами}
 Wind Link Meteorology.Wind
 Rain Link Meteorology.Rain
 Temp SetParameters 10, 273; {Устанавливаем значения параметров оценок}
 Cloud SetParameters 0.1; {и интерпретаторов}
 Wind SetParameters 0.2;
 Rain SetParameters 0.15
End Estimation

Оглавление книги


Генерация: 0.656. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз