afrizalmy/certainty_factor

一个简单的用于计算基于Certainty Factor的专家系统的包

v1.0.2 2021-02-21 03:49 UTC

This package is auto-updated.

Last update: 2024-09-11 07:50:00 UTC


README

بِسْــــــــــــــمِ اللَّهِ الرَّحْمَنِ الرَّحِيم

使用PHP实现具有Certainty Factor的专家系统

一个使用PHP实现的基于certainty factor的专家系统计算包。

安装

  • 请确保您的设备上已安装了composer。
  • 使用以下命令安装
    composer require afrizalmy/certainty_factor
    

如何使用

  • 请查看此文件
  • ProsesHitung()函数中有两个参数
    • 第一个参数是来自专家的数据
      • 请以对象数组的形式输入
      • 例如,如下所示
      $arr = [];
      $arr[0]['kode_case'] = "P01";
      $arr[0]['nama_case'] = "Anemia Aplastik";
      $arr[0]['kode_rule'] = "G01";
      $arr[0]['nama_rule'] = "Terasa lemas diseluruh tubuh";
      $arr[0]['nilai_mb'] = 0.8;
      $arr[0]['nilai_md'] = 0.2;
      
      $arr[1]['kode_case'] = "P01";
      $arr[1]['nama_case'] = "Anemia Aplastik";
      $arr[1]['kode_rule'] = "G02";
      $arr[1]['nama_rule'] = "Merasakan sakit kepala";
      $arr[1]['nilai_mb'] = 0.8;
      $arr[1]['nilai_md'] = 0.1;
      
      • 然后将变量$arr放入ProsesHitung函数的第一个参数中
      • 更有效地使用循环将数据保存到变量$arr

    • 第二个参数是用户输入的数据
      • 请以对象数组的形式输入
      • 例如,如下所示
      $arr = [];
      $arr[0]['kode_rule'] = "G01";
      $arr[0]['persentase_user'] = 0.8;
      
      $arr[1]['kode_rule'] = "G02";
      $arr[1]['persentase_user'] = 0.5;
      
      • 然后将变量$arr放入ProsesHitung函数的第二个参数中
      • 更有效地使用循环将数据保存到变量$arr

    • 注意!!
      对象数组的名称不要更改,以下为说明
      • 对象kode_case是案例或连接案例与症状的代码。或者更简单地说,就像一个疾病的唯一ID(如果案例是疾病的话)。
      • 对象nama_penyakit是描述代码规则的名称。或者更简单地说,就像一个疾病的名称(如果案例是疾病的话)。
      • 对象kode_rule是连接案例与症状的规则或连接代码。或者更简单地说,就像症状的唯一ID(如果案例是疾病的话)。
      • 对象nama_rule是描述代码规则的名称。或者更简单地说,就像症状的名称(如果案例是疾病的话)。
      • 对象nilai_mb和对象nilai_md是专家的结果值。不明白?请阅读下面的参考部分。
      • 对象persentase_user是用户信任的百分比,注意!不要忘记将其转换为100或浮点数。例如:80%则结果为0.80
  • 计算结果如下所示
    {
        "list_case":
        [
            {
            "kode_case":"P01",
            "nama_case":"Anemia Aplastik",
            "hasil_perhitungan":0.2977600000000000246558329308754764497280120849609375
            },
            {
            "kode_case":"P02",
            "nama_case":"Anemia Defisiensi Zat besi",
            "hasil_perhitungan":0.414553600000000022074431171859032474458217620849609375
            },
            {
            "kode_case":"P03",
            "nama_case":"Anemia Kremis\/Kronik",
            "hasil_perhitungan":0.244000000000000050182080713057075627148151397705078125
            }
        ],
        "hasil_pakar":
        {
            "kode_case":"P02",
            "nama_case":"Anemia Defisiensi Zat besi",
            "hasil_perhitungan":0.414553600000000022074431171859032474458217620849609375
        }
    }
    
    • 输出结果中有两个对象,分别是list_case和hasil_pakar。
    • list_case对象中包含更多的对象数组
      • list_case对象包含所有案例的计算结果
    • hasil_pakar对象中包含对象,包括nama_case和hasil_perhitungan
      • hasil_pakar对象包含所有案例的最终结果
    • 请根据您的应用程序逻辑继续从上面的输出中进行创作。

注意!!!

  • 数据测试和输入测试中获得的数据不是用于MB(信念度/信任度)的专家数据,也不是MD(不信任度/不信任度)。
  • 案例/疾病、规则和症状的数据来自这篇论文
  • 请根据每个案例的研究情况进行数据更改

手动计算

  • 请查看此.ods文件以获取上述输入示例的手动计算方法
  • 手动计算的参考和其它案例研究包含在文件 manual-tambahan.xlsx

参考

  1. 使用确定性因子(CF)进行儿童疾病诊断的专家系统
  2. 使用确定性因子方法设计Roseola疾病专家系统应用
  3. 使用确定性因子方法在鸡病诊断中的专家系统
  4. 确定性因子方法解决方法专家系统
  5. 使用确定性因子方法评估女性皮肤美容,以保持健康的专家系统

免责声明

  • 严禁 销售或来源,我发布这个是为了学习目的。
  • 请根据您的案例研究进行修改。为了感谢这个包的制作,我接受您的捐赠。

捐赠

  • 对于那些想要为这个系统捐赠的人,无论多少,我都要表示衷心的感谢。请在这里捐赠 这里