summaryrefslogtreecommitdiff
path: root/examples/takagi-sugeno/octave/heart_disease_risk.R
diff options
context:
space:
mode:
Diffstat (limited to 'examples/takagi-sugeno/octave/heart_disease_risk.R')
-rw-r--r--examples/takagi-sugeno/octave/heart_disease_risk.R84
1 files changed, 84 insertions, 0 deletions
diff --git a/examples/takagi-sugeno/octave/heart_disease_risk.R b/examples/takagi-sugeno/octave/heart_disease_risk.R
new file mode 100644
index 0000000..6ea4240
--- /dev/null
+++ b/examples/takagi-sugeno/octave/heart_disease_risk.R
@@ -0,0 +1,84 @@
+#Code automatically generated with fuzzylite 6.0.
+
+library(ggplot2);
+
+engine.name = "heart_disease_risk"
+engine.fll = "Engine: heart_disease_risk
+InputVariable: LDLLevel
+ enabled: true
+ range: 0.000 300.000
+ lock-range: false
+ term: Low Trapezoid -1.000 0.000 90.000 110.000
+ term: LowBorderline Trapezoid 90.000 110.000 120.000 140.000
+ term: Borderline Trapezoid 120.000 140.000 150.000 170.000
+ term: HighBorderline Trapezoid 150.000 170.000 180.000 200.000
+ term: High Trapezoid 180.000 200.000 300.000 301.000
+InputVariable: HDLLevel
+ enabled: true
+ range: 0.000 100.000
+ lock-range: false
+ term: LowHDL Trapezoid -1.000 0.000 35.000 45.000
+ term: ModerateHDL Trapezoid 35.000 45.000 55.000 65.000
+ term: HighHDL Trapezoid 55.000 65.000 100.000 101.000
+OutputVariable: HeartDiseaseRisk
+ enabled: true
+ range: 0.000 10.000
+ lock-range: false
+ aggregation: none
+ defuzzifier: WeightedAverage TakagiSugeno
+ default: nan
+ lock-previous: false
+ term: NoRisk Constant 0.000
+ term: LowRisk Constant 2.500
+ term: MediumRisk Constant 5.000
+ term: HighRisk Constant 7.500
+ term: ExtremeRisk Constant 10.000
+RuleBlock:
+ enabled: true
+ conjunction: Minimum
+ disjunction: none
+ implication: none
+ activation: General
+ rule: if LDLLevel is Low and HDLLevel is LowHDL then HeartDiseaseRisk is MediumRisk
+ rule: if LDLLevel is Low and HDLLevel is ModerateHDL then HeartDiseaseRisk is LowRisk
+ rule: if LDLLevel is Low and HDLLevel is HighHDL then HeartDiseaseRisk is NoRisk
+ rule: if LDLLevel is LowBorderline and HDLLevel is LowHDL then HeartDiseaseRisk is MediumRisk
+ rule: if LDLLevel is LowBorderline and HDLLevel is ModerateHDL then HeartDiseaseRisk is LowRisk
+ rule: if LDLLevel is LowBorderline and HDLLevel is HighHDL then HeartDiseaseRisk is LowRisk
+ rule: if LDLLevel is Borderline and HDLLevel is LowHDL then HeartDiseaseRisk is HighRisk
+ rule: if LDLLevel is Borderline and HDLLevel is ModerateHDL then HeartDiseaseRisk is MediumRisk
+ rule: if LDLLevel is Borderline and HDLLevel is HighHDL then HeartDiseaseRisk is LowRisk
+ rule: if LDLLevel is HighBorderline and HDLLevel is LowHDL then HeartDiseaseRisk is HighRisk
+ rule: if LDLLevel is HighBorderline and HDLLevel is ModerateHDL then HeartDiseaseRisk is HighRisk
+ rule: if LDLLevel is HighBorderline and HDLLevel is HighHDL then HeartDiseaseRisk is MediumRisk
+ rule: if LDLLevel is High and HDLLevel is LowHDL then HeartDiseaseRisk is ExtremeRisk
+ rule: if LDLLevel is High and HDLLevel is ModerateHDL then HeartDiseaseRisk is HighRisk
+ rule: if LDLLevel is High and HDLLevel is HighHDL then HeartDiseaseRisk is MediumRisk"
+
+engine.fldFile = "heart_disease_risk.fld"
+if (require(data.table)) {
+ engine.df = data.table::fread(engine.fldFile, sep="auto", header="auto")
+} else {
+ engine.df = read.table(engine.fldFile, header=TRUE)
+}
+
+engine.plot.i1i2_o1 = ggplot(engine.df, aes(LDLLevel, HDLLevel)) +
+ geom_tile(aes(fill=HeartDiseaseRisk)) +
+ scale_fill_gradient(low="yellow", high="red") +
+ stat_contour(aes(x=LDLLevel, y=HDLLevel, z=HeartDiseaseRisk), color="black") +
+ ggtitle("(LDLLevel, HDLLevel) = HeartDiseaseRisk")
+
+engine.plot.i2i1_o1 = ggplot(engine.df, aes(HDLLevel, LDLLevel)) +
+ geom_tile(aes(fill=HeartDiseaseRisk)) +
+ scale_fill_gradient(low="yellow", high="red") +
+ stat_contour(aes(x=HDLLevel, y=LDLLevel, z=HeartDiseaseRisk), color="black") +
+ ggtitle("(HDLLevel, LDLLevel) = HeartDiseaseRisk")
+
+if (require(gridExtra)) {
+ engine.plots = arrangeGrob(engine.plot.i1i2_o1, engine.plot.i2i1_o1, ncol=2, top=engine.name)
+ ggsave(paste0(engine.name, ".pdf"), engine.plots)
+ if (require(grid)) {
+ grid.newpage()
+ grid.draw(engine.plots)
+ }
+}