Принятие решений с помощью функций правдоподобия. Рассмотрение задачи статистической классификации как задачу принятия решений

Страницы работы

4 страницы (Word-файл)

Содержание работы

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Тульский государственный университет

Кафедра прикладной математики и информатики

теория выбора и принятия решений

Лабораторная работа № 6

«Принятие решений с помощью функций правдоподобия»

Выполнил: ст. гр.                                                      

Проверил:                                                                                    

Тула 2005

Цель работы.

Рассмотреть задачу статистической классификации как задачу принятия решений.

Постановка задачи.

1. Сформировать псевдослучайную последовательность из 0 и 1 с заданными Р(0) и Р(1).

2. Добавить к сформированной последовательности, нормально распределённые числа с нулевым математическим ожиданием и заданной дисперсией.

3. Задать потери L21 и L12 и сформировать байесовский классификатор.

4. Путём смены дисперсии, L21 и L12, вероятностей Р(0) и Р(1) качественно оценить работу классификатора.

5. Привести исходную двоичную последовательность после работы классификатора при разных значениях параметров. Просчитать число ошибочных решений.

Листинг программы.

#include<stdio.h>

#include<conio.h>

#include<math.h>

#include<stdlib.h>

void main()

{ int i,j,s,l,m,t,mist[2][2]={0,0,0,0};

float p[2][2]={0.6,0.4,0.4,0.6};

float ll[2][2]={4,1,1,4};

float p1,p2,rd[20][2],rr,h,

sig2[2]={0.22,0.04};

int r[20];

clrscr();

printf("Последовательность из 0 и 1 с заданными р(0)=%5.3f и p(1)=%5.3f:\n",

p[0][0],p[1][0]);

for(i=0;i<3;i++) r[i]=0;

for(i=4;i<6;i++) r[i]=1;

for(i=6;i<10;i++) r[i]=0;

for(i=11;i<16;i++) r[i]=1;

for(i=16;i<20;i++) r[i]=0;

for(i=0;i<20;i++) printf("%d ",r[i]);

printf("\n");

getch();

printf("Качественная оценка работы классификатора:\n");

for(i=0;i<2;i++)

{ for(j=0;j<2;j++)

{ for(t=0;t<2;t++)

{ h=sig2[t]*log((ll[1][j]*p[1][i])/(ll[0][j]*p[0][i]));

printf("При p(0)=%5.3f, p(1)=%5.3f, L12=%5.3f, L21=%5.3f и дисперсии=%5.3f",

p[0][i],p[1][i],ll[0][j],ll[1][j],sig2[t]);

printf("\nвывод о передаче 0 происходит при следующем условии:%5.3f\n",0.5-h);

}

}

}

getch();

randomize();

for(l=0;l<2;l++)

{ for(i=0;i<20;i++)

{ p1=-1;

p2=50;

rr=random(100);

rd[i][l]=r[i]+p1+rr/p2;

}

}

for(i=0;i<2;i++)

{ for(j=0;j<2;j++)

{ printf("\nИсходная последовательность после работы классификатора\n");

printf("При p(0)=%5.3f, p(1)=%5.3f, L12=%5.3f, L21=%5.3f и дисперсии=%5.3f:\n",

p[0][j],p[1][j],ll[0][j],ll[1][j],sig2[i]);

for(m=0;m<20;m++)

{ h=0.5-sig2[j]*log((ll[1][j]*p[1][j])/(ll[0][j]*p[0][j]));

if(rd[m][i]<h)

{ if(r[m]==1) mist[i][j]++;

printf("0 ");

}

else

{ if(r[m]==0) mist[i][j]++;

printf("1 ");

}

}

printf("\nЧисло ошибочных решений:%d\n",mist[i][j]);

}

}

getch();

}

Результаты.

Последовательность из 0 и 1 с заданными вероятностями Р(0)=0.600 и p(1)=0.400:

0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1

Качественная оценка работы классификатора:

При p(0)=0.600, p(1)=0.400, L12=4.000, L21=1.000 и дисп.=0.22

вывод о передаче 0 происходит при следующем условии: 0.894

При p(0)=0.600, p(1)=0.400, L12=4.000, L21=1.000 и дисп.=0.04

вывод о передаче 0 происходит при следующем условии:0.572

При p(0)=0.600, p(1)=0.400, L12=1.000, L21=4.000 и дисп.=0.22

вывод о передаче 0 происходит при следующем  условии:0.284

При p(0)=0.600, p(1)=0.400, L12=1.000, L21=4.000 и дисп.=0.04

вывод о передаче 0 происходит при следующем условии:0.461

При p(0)=0.400, p(1)=0.600, L12=4.000, L21=1.000 и дисп.=0.22

вывод о передаче 0 происходит при следующем условии:0.716

При p(0)=0.400, p(1)=0.600, L12=4.000, L21=1.000 и дисп.=0.04

вывод о передаче 0 происходит при следующем условии:0.539

При p(0)=0.400, p(1)=0.600, L12=1.000, L21=4.000 и дисп.=0.22

вывод о передаче 0 происходит при следующем условии:0.106

При p(0)=0.400, p(1)=0.600, L12=1.000, L21=4.000 и дисп.=0.04

вывод о передаче 0 происходит при следующем условии:0.428

Исходная последовательность после р к при p(0)=0.600, p(1)=0.400, L12=4.000, L21=1.000 и д=0.22:

0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 1

Число ошибочных решений:3

Исходная последовательность после р к при p(0)=0.400, p(1)=0.600, L12=1.000, L21=4.000 и д=0.22:

0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 11

Число ошибочных решений:6

Исходная последовательность после р к при p(0)=0.600, p(1)=0.400, L12=4.000, L21=1.000 и д=0.04:

0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1

Число ошибочных решений:4

Исходная последовательность после р к при p(0)=0.400, p(1)=0.600, L12=1.000, L21=4.000 и д=0.04:

0 1 0 1 0 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1

Число ошибочных решений:5

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
37 Kb
Скачали:
0