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

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

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

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

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

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

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

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

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

Лабораторная работа № 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