Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Кафедра прикладной математики и информатики
«Принятие решений с помощью функций правдоподобия»
Выполнил: ст. гр.
Проверил:
Тула 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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.