O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI
VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Fan nomi:
Timsollarni tanib olish.
Laboratoriya ishi №3
Mavzu:
Obyektni tasniflash va tanlanmalar
Gurux:
ITM401-1
Bajardi:
Akbar Bobomurodov
Tekshirdi:
Xudoyberdiyev M
Toshkent 2021
Mavzu:
Obyektni tasniflash va tanlanmalar.
Pochta konvertidagi raqamlarni tanib olish misolida obyektni tasniflash uchun belgilar
fazosini va tanlanmalarni shakllantirish masalasi yechiladi. Bunda ikki o‘lchovli belgilar
fazosi vertikal va gorizantal kesmalar orqali shakllantiriladi.
Yuqorida keltirilgan ikki o‘lchovlik fazodagi obrazni garfik ifodasi orqali
obyektlarni tasniflash amalga oshirilsin.
Belgilarni haraktirlash uchun bizga model kerak bo`ladi yani biz o`zizning
dasturmizda kirishish kerak bo`lgan qiyamatlarni oldindan kiritishimiz kerak.
Buning uchun biz o`zizda kirsh qiyatlarni bazasisi asosida TensorFlow, OpenCv,
Keras, Pandas kabi kutubxonlarnida hoydalangan holda train va test qilishimiz
kerak. Bu jarayon MLning supervises leaning turigi kirgani sababali bizda
kiruvchi qiyaman aniq chiqivchi miymat mavhim bo`lib qoladi. Bu jarayonda
bizda tasvirni matematik modelini shakkilantish kerak. Yuqoridagi kutubxonlar
biz muammoni tez hali qilishha yordam beradi.
Hozir biz C# yordamnida oddiy timoslni tanib olish algortimini yozamiz. Bunda
biz malumotlarni raqamli ko`rinishga o`tgandan keyingi jarayondan boshlaymiz.
Buni uchun biz yurqidagi pochta boayaldigan chiziqlarni qanday holarda qaysi
qismi bo`yalishni kerak bo`lgan 9x9matrisasini tuzib olamiz. Unda keyin
kiritilagan elamatlarni iteratisya qilib xatolik va qaysi songa yaqin ekanligini
aniqlab olamiz.
Dastur kodi:
using System;
namespace SonniAniqlash
{
class Program
{
static void Main(string[] args)
{
int[,] son = new int[10, 9];
son = new int[1,9] {{ 1, 1, 1, 1, 1, 1, 0, 0, 0 } } ;//0
son = new int[2, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 },{ 0, 0, 0, 0, 1, 1, 1, 0,
0 } };//1
son = new int[3,9]{ { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 } };//2
son = new int[4, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 } };//3
son = new int[5, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 } };//4
son = new int[6, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 }, { 0,
0, 1, 1, 1, 0, 1, 1, 0 } };//5
son = new int[7, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 }, { 0,
0, 1, 1, 1, 0, 1, 1, 0 } , { 0, 0, 1, 1, 1, 0, 1, 1, 0 } };//6
son = new int[8, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 }, { 0,
0, 1, 1, 1, 0, 1, 1, 0 }, { 0, 0, 1, 1, 1, 0, 1, 1, 0 }, { 1, 0, 1, 0, 0, 0, 1, 0, 1 } };//7
son = new int[9, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 }, { 0,
0, 1, 1, 1, 0, 1, 1, 0 }, { 0, 0, 1, 1, 1, 0, 1, 1, 0 }, { 1, 0, 1, 0, 0, 0, 1, 0, 1 }, { 1, 1,
1, 1, 1, 1, 0, 1, 0 } };//8
son = new int[10, 9] { { 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 0, 0 },
{ 1, 0, 0, 1, 0, 1, 0, 0, 1 }, { 1, 0, 0, 0, 0, 0, 1, 1, 1 }, { 0, 1, 0, 0, 1, 1, 0, 1, 0 }, { 0,
0, 1, 1, 1, 0, 1, 1, 0 }, { 0, 0, 1, 1, 1, 0, 1, 1, 0 }, { 1, 0, 1, 0, 0, 0, 1, 0, 1 }, { 1, 1,
1, 1, 1, 1, 0, 1, 0 }, { 1, 1, 0, 0, 0, 1, 0, 1, 1 } };//9
int min=int.MaxValue;
int[] kiritish = new int[9];
for (int i = 0; i < 9; i++)
kiritish[i] = int.Parse(Console.ReadLine());
int xatolik=0;
int[] xato = new int[10];
for (int j = 0; j <=9; j++)
{
for(int p = 0; p < 9; p++)
{
if (kiritish[p] != son[j, p])
{
//Console.Write(son[j,p]);
xatolik++;
}
}
if (xatolik < 3)
{
Console.WriteLine($"Kiritgan soningiz {j} soniga yaqin son");
}
xato[j] = xatolik;
xatolik = 0;
}
Console.WriteLine();
min = xato[0];
for (int u = 1; u <=9; u++)
if (min>xato[u])
min = xato[u];
Console.WriteLine("Eng yaqin son:" + Array.IndexOf(xato, min) + "\n" +
min + " ta xato bor");
}
}
}
Dastur natijasi:
1. Natija
2. Natija
Do'stlaringiz bilan baham: |