SkillAgentSearch skills...

Cbrs

Case-based Reasoning (CBR) System

Install / Use

/learn @yammadev/Cbrs

README

Case-based reasoning (CBR) system

A Case-based reasoning (CBR) is a paradigm of artificial intelligence and cognitive science that models the reasoning process as primarily memory based. Case-based reasoning systems solve new problems by retrieving stored ‘cases’ describing similar prior problem-solving episodes and adapting their solutions to fit new needs.

Case-based reasoning has been formalized for purposes of computer reasoning as a four-step process:

  • 1. Retrieve Given a target problem, retrieve from memory cases relevant to solving it. A case consists of a problem, its solution, and, typically, annotations about how the solution was derived.
  • 2. Reuse: Map the solution from the previous case to the target problem. This may involve adapting the solution as needed to fit the new situation.
  • 3. Revise: Having mapped the previous solution to the target situation, test the new solution in the real world (or a simulation) and, if necessary, revise.
  • 4. Retain: After the solution has been successfully adapted to the target problem, store the resulting experience as a new case in memory.

Author

Yefferson Marín - (@yammadev)

Requirements

Implementation

Check the Jupiter notebook (or pdf) with details

Input

Library

A initial library of cases. At input/library.csv

|Outlook |Temperature|Humidity|Windy |Play| |--------|-----------|--------|------|----| |Sunny | Hot | High | False| No | |Sunny | Hot | High | True | No | |Overcast| Hot | High | False| Yes| |Rainy | Mild | High | False| Yes| |Rainy | Cool | Normal | False| Yes| |Rainy | Cool | Normal | True | No | |Overcast| Cool | Normal | True | Yes| |Sunny | Mild | High | False| No | |Sunny | Cool | Normal | False| Yes| |Rainy | Mild | Normal | False| Yes| |Sunny | Mild | Normal | True | Yes| |Overcast| Mild | High | True | Yes| |Overcast| Hot | Normal | False| Yes| |Rainy | Mild | High | True | No |

Cases

A set of cases/problems to solve. At input/cases.csv

|Outlook |Temperature|Humidity|Windy | |--------|-----------|--------|------| |Sunny | Mild | Normal | False| |Rainy | Cool | Normal | False| |Overcast| Cool | High | False| |Sunny | Cool | High | True | |Rainy | Hot | High | True | |Rainy | Cool | High | True |

Output

Library

Initial library plus cases/problems solved. At output/library.csv

|Outlook |Temperature|Humidity|Windy |Play| |--------|-----------|--------|------|----| |Sunny | Hot | High | False| No | |Sunny | Hot | High | True | No | |Overcast| Hot | High | False| Yes| |Rainy | Mild | High | False| Yes| |Rainy | Cool | Normal | False| Yes| |Rainy | Cool | Normal | True | No | |Overcast| Cool | Normal | True | Yes| |Sunny | Mild | High | False| No | |Sunny | Cool | Normal | False| Yes| |Rainy | Mild | Normal | False| Yes| |Sunny | Mild | Normal | True | Yes| |Overcast| Mild | High | True | Yes| |Overcast| Hot | Normal | False| Yes| |Rainy | Mild | High | True | No | |Sunny | Mild | Normal | False| Yes| |Rainy | Cool | Normal | False| Yes| |Overcast| Cool | High | False| Yes| |Sunny | Cool | High | True | Yes| |Rainy | Hot | High | True | No | |Rainy | Cool | High | True | No |

Heat maps

An image for each Covariance Heat map, using library cases stored (base) at each iteration to solve a specific problem. At output/heat_map_x.png

heatmap_0 heatmap_1 heatmap_2 heatmap_3 heatmap_4 heatmap_5

Development notes

  # Install virtual environment
  $ python3 -m venv venv

  # (On Windows)
  $ py -3 -m venv venv

  # Activate virtual environment
  $ . venv/bin/activate

  # (On Windows)
  $ venv\Scripts\activate

  # Install pandas & seaborn
  (venv) $ pip install pandas
  (venv) $ pip install seaborn

  # Deactivate virtual environment
  (venv) $ . venv/bin/deactivate

  # (On Windows)
  (venv) $ venv\Scripts\deactivate

Changelog

All notable changes to this project are documented in this part of the file. The format is based on Keep a Changelog.

[x.y.z] - YYYY-MM-DD

  • x for major release related to major additions or changes.
  • y for minor release related to minor additions or changes in current major release.
  • z for minor release related to minor additions or changes in current minor release.

Extras

  • Added for new features.
  • Modified for changes in existing functionality.
  • Deprecated for soon-to-be removed features.
  • Removed for removed features.
  • Fixed for any bug fixes.
  • Security in case of vulnerabilities.

[2.3.1] - 2020-04-08

Added

  • cbrs.pdf with paper version of Jupiter Notebook.

Modified

  • Readme edited.

[2.3.0] - 2020-04-08

Modified

  • Readme edited.

[2.2.0] - 2020-04-08

Added

  • Jupiter Notebook finished.

Modified

  • Spell checking
  • Code cleaning.

[2.1.0] - 2020-04-07

Added

  • Outputs and code cleaning.

Modified

  • Main functionalities to better optimizations.
  • Readme edited.

[2.0.0] - 2020-04-07

Added

  • Main functionalities.

Modified

  • Readme edited.

[1.0.0] - 2020-04-06

Added

  • Input data stored in .csv format.
  • Jupiter Notebook config + main info.
  • Main info in Jupiter Notebook with a few of steps done.
View on GitHub
GitHub Stars11
CategoryEducation
Updated1y ago
Forks3

Languages

Jupyter Notebook

Security Score

65/100

Audited on Mar 25, 2025

No findings