Git Product home page Git Product logo

cbrs's Introduction

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.

cbrs's People

Contributors

yammadev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.