https://github.com/rexlow/fuzzy-logic-mini-project
https://github.com/rexlow/fuzzy-logic-mini-project
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/rexlow/fuzzy-logic-mini-project
- Owner: rexlow
- License: mit
- Created: 2017-11-24T18:28:51.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-03T07:34:26.000Z (over 8 years ago)
- Last Synced: 2025-01-23T11:23:57.696Z (over 1 year ago)
- Language: Matlab
- Size: 2.87 MB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Bankruptcy Prediction System with Fuzzy Logic
We have taken 3 approaches in order to complete this assignment and this markdown file serves to explain their differences.
## 1. MATLAB GUI Fuzzy Toolbox
With MATLAB GUI Fuzzy Toolbox, we defined membership functions for all 6 variables in the `Membership Function Editor (⌘+2)`. Also, we defined 67 rules in the `Rule Viewer (⌘+5)` which are extracted from the paper, [The discovery of experts’ decision rules from qualitative bankruptcy data using genetic algorithms](https://www.sciencedirect.com/science/article/pii/S0957417403001027).
### To run
1. Make sure to point working directory to `fuzzy toolbox (MATLAB)` folder.
2. Launch MATLAB app, type `fuzzy` in the command window.
3. Click File, Import From File, select `FuzzyMiniProject.fis` from .
### To evaluate
1. Make sure to point working directory to `fuzzy toolbox (MATLAB)` folder.
2. Type `fis = readfis('FuzzyMiniProject')`
3. Our Fuzzy Inference System will accept 6 value (0-10) as input variable.
4. Type `fis.input.range` to view input range.
5. Type `output = evalfis([1;2;3;4;5;6], fis)`
## 2. MATLAB GENFIS3 (FCM)
Given separate sets of input and output data, `genfis3` generates a fuzzy inference system (FIS) using FCM clustering. With an appropriate set of numerical data, a FIS will be generated along with membership functions and rules.
However, upon further inspection of the data, we reckoned that our data (which is categorical data) tends to cluster really bad beyond counting duplicates. It is simply irrelevant to do fuzzy clustering on our dataset. As a result, our FCM produced a rather rigid calculation due to the nature of our data. We believe our work can be improved in the future by using an `Adaptive Neuro-Fuzzy Inference System (ANFIS)` as a classifier.
Regardless, it is possible to run our work with MATLAB and expect results. Data is being loaded and parsed as numerical data. 80% of the data is used for training and the rest is used for testing.
### To run
1. Make sure to point working directory to `genfis3 (MATLAB)` folder.
2. Open script by double clicking on `run.m` in the project directory menu.
3. Press `⌘+enter` to run the script. A `2x8` figure will be generated to visualize FIS surface and membership functions for both input and output variables.
4. Type `showrule(fis)` to show rules.
5. Type `fis.output.range` to view output range.
6. Type `output = evalfis([2;3;1;2;1;3], fis)` to generate output.
## 3. Rapidminer Neural Network
In Rapidminer, data type of attributes are converted into numerical data for neural network modeling and class attribute is set as `label`. `Cross-Validation` applied to train and estimate the statistical performance of neural network model generated.