مجموعه ها
صفات یا attributesنمونه instance
آﺳﻤﺎن آفتابی بارانی
دمای هوا گرم سرد
رﻃﻮﺑﺖ معمولی بالا
ﺑﺎد شدید
آب گرم خنک
پیش بینی بدون تغییرات دستخوش تغییرات
لذت از ورزش خیر بله
جدول فرضیه ها example
مثال آموزشیآﺳﻤﺎندمای هوارﻃﻮﺑﺖﺑﺎدآبپیش بینیلذت از ورزش
1آفتابیگرممعمولیشدیدگرمبدون تغییراتبله
2آفتابیگرمبالاشدیدگرمبدون تغییراتبله
3بارانیسردبالاشدیدگرمدستخوش تغییراتخیر
4آفتابیگرمبالاشدیدخنکدستخوش تغییراتبله

حذف فرضیه های منفی
مثال آموزشیآﺳﻤﺎندمای هوارﻃﻮﺑﺖﺑﺎدآبپیش بینیلذت از ورزش
1آفتابیگرممعمولیشدیدگرمبدون تغییراتبله
2آفتابیگرمبالاشدیدگرمبدون تغییراتبله
3آفتابیگرمبالاشدیدخنکدستخوش تغییراتبله

Hypothesis
#آﺳﻤﺎندمای هوارﻃﻮﺑﺖﺑﺎدآبپیش بینی
1آفتابیگرم?شدید??



سورس کد

<?php
defined
('BASEPATH') OR exit('No direct script access allowed');

class 
Machinelearning extends CI_Controller {


    
    public function 
finds()
    {
        
$data= array(
            
"site_title" =>"الگوریتم find-s",
            
"mnu_workshop" =>"active",
            
        );
        
        
//$this->load->view('header');
        
$this->load->view('header',$data);
        
$this->load->view('machinelearning/finds');
        
$this->load->view('footer');
    }
    
    public function 
finds_execute()
    {
        echo 
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
        echo 
'<body dir="rtl" style= "font-family:tahoma;">';

        
        
        
$fields=array(
                
"آﺳﻤﺎن"            => array("آفتابی""بارانی"),
                
"دمای هوا"        => array("گرم","سرد"),
                
"رﻃﻮﺑﺖ"            => array("معمولی","بالا"),
                
"ﺑﺎد"            => array("شدید"),
                
"آب"            => array("گرم","خنک"),
                
"پیش بینی"        => array("بدون تغییرات","دستخوش تغییرات"),
                
"لذت از ورزش"    => array("خیر","بله"),
            );
            
        
//$hypothesis = array();
        //$data = array();
        
        
        //initialize
        
$data[0] = array(0,0,0,0,0,0,1);
        
        
$data[1]= array(0,0,1,0,0,0,1);
        
//$data[1]= array("?",0,1,0,"%",0,1);
        
$data[2] = array(1,1,1,0,0,1,0);
        
$data[3] = array(0,0,1,0,1,1,1);
        
        
        
        
        
        echo 
"<table>";
        echo 
"<tr valign='top'>";
        echo 
"<td>";
        
$this->draw_fields($fields);
        echo 
"</td>";
        
        echo 
"<td>";
        
        
$this->draw_example($data,$fields,"جدول فرضیه ها example");
        
$dte=$this->remove_negative_record($data);
        
        echo 
"<br/>";
        
        
$this->draw_example($dte,$fields,"حذف فرضیه های منفی");
        
        echo 
"<br/>";
        
$hypothesis=$this-> generate_hypothesis($dte);
        
$this-> draw_hypothesis$fields$hypothesis);
        
        echo 
"</td>";
        echo 
"</tr>";
        echo 
"</table>";
        
        
        echo 
"<br/>";
        echo 
"<br/>";
        echo 
"<br/>";
        
          
        
        echo 
'<div dir="ltr">';
echo 
'<h4>سورس کد</h4>';
        echo 
show_source(__FILE__);
        
    }
    
    private function 
generate_hypothesis($data)
    {
        
$hypothesis = array();
        for(
$i=0;$i<count($data[0])-1$i++)
        {
            
$hypothesis[$i]="%";
        }
        
        
        for(
$i=0;$i<count($hypothesis);$i++)
        {
            
$change=0;
            
            for(
$j=0;$j<count($data);$j++)
            {
                if(
$hypothesis[$i] !== $data[$j][$i])
                {
                    
$hypothesis[$i] = $data[$j][$i];
                    
$change ++;
                }
            }
            
            if(
$change>1)
            {
                
$hypothesis[$i]="?";
                
            }
        }
        return 
$hypothesis;
    }
    
    private function 
draw_hypothesis($fields$hypothesis)
    {
        echo 
"<table border='1' cellpadding=5 cellspacing=0  >";
        echo 
"<tr>";
        
        
$count_fields=count($fields) +;
        
        echo 
"<td colspan=$count_fields style='background-color:#bbb;text-align:center;'><b>Hypothesis</b></td>";
        echo 
"</tr>";
        echo 
"<tr style='background-color:#bbb;text-align:center;' >";
        echo 
"<td><b>#</b></td>";
        
        
$arr=array_keys($fields);
        
        for(
$i=0$i<$count_fields-2;$i++)
        {
            echo 
"<td style='background-color:#bbb;'>".$arr[$i]."</td>";
        }
        
        echo 
"</tr>";
        
        echo 
"<tr>";    
        echo 
"<td>1</td>";        
        
$arr=array_values($fields);
        for(
$i=0$i<count($hypothesis);$i++)
        {
            
$value=$hypothesis[$i];
            if(
$value==="?" or $value==="%")
                    
$val$value;
                else
                    
$val$arr[$i][$value];
                
            
            
            echo 
"<td>$val</td>";    
        }
        echo 
"</tr>";
        echo 
"</table>";
    }
    
    private function 
remove_negative_record($data)
    {
        for(
$i=0;$i<count($data);$i++)
        {
            if(
end($data[$i])==0)
            {
                
array_splice($data$i,1);
                
$i--;
            }
            
        }
/*
        foreach($data as $key => $row)
        {
            
            if(end($row)==1)
            {
                array_splice($data, $key,1);
            }
        }*/
        
return $data;
    }
    private function 
draw_example($data,$fields,$table_title)
    {
        echo 
"<table border='1' cellpadding=5 cellspacing=0  >";
        echo 
"<tr>";
        
$count_fields=count($fields) +;
        
        echo 
"<td colspan=$count_fields style='background-color:#bbb;text-align:center;'><b>$table_title</b></td>";
        echo 
"</tr>";
        echo 
"<tr style='background-color:#bbb;text-align:center;' >";
        echo 
"<td><b>مثال آموزشی</b></td>";
        
        foreach(
$fields as $key => $row)
        {
            echo 
"<td style='background-color:#bbb;'>".$key."</td>";
        }
        
        echo 
"</tr>";
            
        
$arr=array_values($fields);
        
        
        foreach(
$data as $key => $row)
        {
            echo 
"<tr>";
            
$kk=$key+1;
            echo 
"<td>".$kk  ."</td>";
            
            foreach(
$row as $item=> $value)
            {
                
                if(
$value==="?" or $value==="%")
                    
$val$value;
                else
                    
$val=$arr[$item][$value];
                
                echo 
"<td>".$val."</td>";
            }
            echo 
"\t</tr>\n";
        }
        echo 
"\n</table>\n";
    }
    
    private function 
draw_fields($fields)
    {
        echo 
"\n<table border='1' cellpadding=5 cellspacing=0  >\n\t";
        echo 
"\n<tr><td colspan=3 style='background-color:#bbb;text-align:center;'><b>مجموعه  ها</b></td></tr>\n";
        echo 
"\n<tr style='background-color:#bbb;text-align:center;' ><td><b>صفات یا attributes</b></td><td colspan=2 ><b>نمونه instance</b></td></tr>\n";
        foreach(
$fields as $key => $row)
        {
            echo 
"\n\t<tr>\n\t";
            echo 
"\t<td style='background-color:#bbb;'>".$key."</td>\n";
            
            foreach(
$row as $item)
            {
                echo 
"\t<td>".$item."</td>\n";
            }
            echo 
"\t</tr>\n";
        }
        echo 
"\n</table>\n";
    }
    
}
1