diff --git a/examples/log_regression/Iris.csv b/examples/log_regression/Iris.csv new file mode 100644 index 0000000000000000000000000000000000000000..1bf42f25499fe73c70d9c767cb31163077c07e3e --- /dev/null +++ b/examples/log_regression/Iris.csv @@ -0,0 +1,151 @@ +Id,SepalLengthCm,SepalWidthCm,PetalLengthCm,PetalWidthCm,Species +1,5.1,3.5,1.4,0.2,Iris-setosa +2,4.9,3.0,1.4,0.2,Iris-setosa +3,4.7,3.2,1.3,0.2,Iris-setosa +4,4.6,3.1,1.5,0.2,Iris-setosa +5,5.0,3.6,1.4,0.2,Iris-setosa +6,5.4,3.9,1.7,0.4,Iris-setosa +7,4.6,3.4,1.4,0.3,Iris-setosa +8,5.0,3.4,1.5,0.2,Iris-setosa +9,4.4,2.9,1.4,0.2,Iris-setosa +10,4.9,3.1,1.5,0.1,Iris-setosa +11,5.4,3.7,1.5,0.2,Iris-setosa +12,4.8,3.4,1.6,0.2,Iris-setosa +13,4.8,3.0,1.4,0.1,Iris-setosa +14,4.3,3.0,1.1,0.1,Iris-setosa +15,5.8,4.0,1.2,0.2,Iris-setosa +16,5.7,4.4,1.5,0.4,Iris-setosa +17,5.4,3.9,1.3,0.4,Iris-setosa +18,5.1,3.5,1.4,0.3,Iris-setosa +19,5.7,3.8,1.7,0.3,Iris-setosa +20,5.1,3.8,1.5,0.3,Iris-setosa +21,5.4,3.4,1.7,0.2,Iris-setosa +22,5.1,3.7,1.5,0.4,Iris-setosa +23,4.6,3.6,1.0,0.2,Iris-setosa +24,5.1,3.3,1.7,0.5,Iris-setosa +25,4.8,3.4,1.9,0.2,Iris-setosa +26,5.0,3.0,1.6,0.2,Iris-setosa +27,5.0,3.4,1.6,0.4,Iris-setosa +28,5.2,3.5,1.5,0.2,Iris-setosa +29,5.2,3.4,1.4,0.2,Iris-setosa +30,4.7,3.2,1.6,0.2,Iris-setosa +31,4.8,3.1,1.6,0.2,Iris-setosa +32,5.4,3.4,1.5,0.4,Iris-setosa +33,5.2,4.1,1.5,0.1,Iris-setosa +34,5.5,4.2,1.4,0.2,Iris-setosa +35,4.9,3.1,1.5,0.1,Iris-setosa +36,5.0,3.2,1.2,0.2,Iris-setosa +37,5.5,3.5,1.3,0.2,Iris-setosa +38,4.9,3.1,1.5,0.1,Iris-setosa +39,4.4,3.0,1.3,0.2,Iris-setosa +40,5.1,3.4,1.5,0.2,Iris-setosa +41,5.0,3.5,1.3,0.3,Iris-setosa +42,4.5,2.3,1.3,0.3,Iris-setosa +43,4.4,3.2,1.3,0.2,Iris-setosa +44,5.0,3.5,1.6,0.6,Iris-setosa +45,5.1,3.8,1.9,0.4,Iris-setosa +46,4.8,3.0,1.4,0.3,Iris-setosa +47,5.1,3.8,1.6,0.2,Iris-setosa +48,4.6,3.2,1.4,0.2,Iris-setosa +49,5.3,3.7,1.5,0.2,Iris-setosa +50,5.0,3.3,1.4,0.2,Iris-setosa +51,7.0,3.2,4.7,1.4,Iris-versicolor +52,6.4,3.2,4.5,1.5,Iris-versicolor +53,6.9,3.1,4.9,1.5,Iris-versicolor +54,5.5,2.3,4.0,1.3,Iris-versicolor +55,6.5,2.8,4.6,1.5,Iris-versicolor +56,5.7,2.8,4.5,1.3,Iris-versicolor +57,6.3,3.3,4.7,1.6,Iris-versicolor +58,4.9,2.4,3.3,1.0,Iris-versicolor +59,6.6,2.9,4.6,1.3,Iris-versicolor +60,5.2,2.7,3.9,1.4,Iris-versicolor +61,5.0,2.0,3.5,1.0,Iris-versicolor +62,5.9,3.0,4.2,1.5,Iris-versicolor +63,6.0,2.2,4.0,1.0,Iris-versicolor +64,6.1,2.9,4.7,1.4,Iris-versicolor +65,5.6,2.9,3.6,1.3,Iris-versicolor +66,6.7,3.1,4.4,1.4,Iris-versicolor +67,5.6,3.0,4.5,1.5,Iris-versicolor +68,5.8,2.7,4.1,1.0,Iris-versicolor +69,6.2,2.2,4.5,1.5,Iris-versicolor +70,5.6,2.5,3.9,1.1,Iris-versicolor +71,5.9,3.2,4.8,1.8,Iris-versicolor +72,6.1,2.8,4.0,1.3,Iris-versicolor +73,6.3,2.5,4.9,1.5,Iris-versicolor +74,6.1,2.8,4.7,1.2,Iris-versicolor +75,6.4,2.9,4.3,1.3,Iris-versicolor +76,6.6,3.0,4.4,1.4,Iris-versicolor +77,6.8,2.8,4.8,1.4,Iris-versicolor +78,6.7,3.0,5.0,1.7,Iris-versicolor +79,6.0,2.9,4.5,1.5,Iris-versicolor +80,5.7,2.6,3.5,1.0,Iris-versicolor +81,5.5,2.4,3.8,1.1,Iris-versicolor +82,5.5,2.4,3.7,1.0,Iris-versicolor +83,5.8,2.7,3.9,1.2,Iris-versicolor +84,6.0,2.7,5.1,1.6,Iris-versicolor +85,5.4,3.0,4.5,1.5,Iris-versicolor +86,6.0,3.4,4.5,1.6,Iris-versicolor +87,6.7,3.1,4.7,1.5,Iris-versicolor +88,6.3,2.3,4.4,1.3,Iris-versicolor +89,5.6,3.0,4.1,1.3,Iris-versicolor +90,5.5,2.5,4.0,1.3,Iris-versicolor +91,5.5,2.6,4.4,1.2,Iris-versicolor +92,6.1,3.0,4.6,1.4,Iris-versicolor +93,5.8,2.6,4.0,1.2,Iris-versicolor +94,5.0,2.3,3.3,1.0,Iris-versicolor +95,5.6,2.7,4.2,1.3,Iris-versicolor +96,5.7,3.0,4.2,1.2,Iris-versicolor +97,5.7,2.9,4.2,1.3,Iris-versicolor +98,6.2,2.9,4.3,1.3,Iris-versicolor +99,5.1,2.5,3.0,1.1,Iris-versicolor +100,5.7,2.8,4.1,1.3,Iris-versicolor +101,6.3,3.3,6.0,2.5,Iris-virginica +102,5.8,2.7,5.1,1.9,Iris-virginica +103,7.1,3.0,5.9,2.1,Iris-virginica +104,6.3,2.9,5.6,1.8,Iris-virginica +105,6.5,3.0,5.8,2.2,Iris-virginica +106,7.6,3.0,6.6,2.1,Iris-virginica +107,4.9,2.5,4.5,1.7,Iris-virginica +108,7.3,2.9,6.3,1.8,Iris-virginica +109,6.7,2.5,5.8,1.8,Iris-virginica +110,7.2,3.6,6.1,2.5,Iris-virginica +111,6.5,3.2,5.1,2.0,Iris-virginica +112,6.4,2.7,5.3,1.9,Iris-virginica +113,6.8,3.0,5.5,2.1,Iris-virginica +114,5.7,2.5,5.0,2.0,Iris-virginica +115,5.8,2.8,5.1,2.4,Iris-virginica +116,6.4,3.2,5.3,2.3,Iris-virginica +117,6.5,3.0,5.5,1.8,Iris-virginica +118,7.7,3.8,6.7,2.2,Iris-virginica +119,7.7,2.6,6.9,2.3,Iris-virginica +120,6.0,2.2,5.0,1.5,Iris-virginica +121,6.9,3.2,5.7,2.3,Iris-virginica +122,5.6,2.8,4.9,2.0,Iris-virginica +123,7.7,2.8,6.7,2.0,Iris-virginica +124,6.3,2.7,4.9,1.8,Iris-virginica +125,6.7,3.3,5.7,2.1,Iris-virginica +126,7.2,3.2,6.0,1.8,Iris-virginica +127,6.2,2.8,4.8,1.8,Iris-virginica +128,6.1,3.0,4.9,1.8,Iris-virginica +129,6.4,2.8,5.6,2.1,Iris-virginica +130,7.2,3.0,5.8,1.6,Iris-virginica +131,7.4,2.8,6.1,1.9,Iris-virginica +132,7.9,3.8,6.4,2.0,Iris-virginica +133,6.4,2.8,5.6,2.2,Iris-virginica +134,6.3,2.8,5.1,1.5,Iris-virginica +135,6.1,2.6,5.6,1.4,Iris-virginica +136,7.7,3.0,6.1,2.3,Iris-virginica +137,6.3,3.4,5.6,2.4,Iris-virginica +138,6.4,3.1,5.5,1.8,Iris-virginica +139,6.0,3.0,4.8,1.8,Iris-virginica +140,6.9,3.1,5.4,2.1,Iris-virginica +141,6.7,3.1,5.6,2.4,Iris-virginica +142,6.9,3.1,5.1,2.3,Iris-virginica +143,5.8,2.7,5.1,1.9,Iris-virginica +144,6.8,3.2,5.9,2.3,Iris-virginica +145,6.7,3.3,5.7,2.5,Iris-virginica +146,6.7,3.0,5.2,2.3,Iris-virginica +147,6.3,2.5,5.0,1.9,Iris-virginica +148,6.5,3.0,5.2,2.0,Iris-virginica +149,6.2,3.4,5.4,2.3,Iris-virginica +150,5.9,3.0,5.1,1.8,Iris-virginica diff --git a/examples/log_regression/__init__.py b/examples/log_regression/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/examples/log_regression/main.html b/examples/log_regression/main.html new file mode 100644 index 0000000000000000000000000000000000000000..858b9385a06985f596ad9a6e0facc86b8d9ac9c6 --- /dev/null +++ b/examples/log_regression/main.html @@ -0,0 +1,85 @@ + + + + +<!DOCTYPE html> +<html lang="en"> + + <head> + + <meta charset="utf-8"> + <title>Bokeh Plot</title> + + + + + + + + <script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js"></script> + <script type="text/javascript"> + Bokeh.set_log_level("info"); + </script> + + + + + </head> + + + <body> + + + + + + + <div class="bk-root" id="0404cce4-d3b9-4e96-88e7-e633d01327c4" data-root-id="1048"></div> + + + + + + <script type="application/json" id="1217"> + {"161c1ee2-b4f4-43e7-9389-e8d99579e12d":{"defs":[],"roots":{"references":[{"attributes":{"factors":["1 > 0.80","1 > 0.68","2 <= -1.38","-0.03 < 1 <= 0.64"]},"id":"1051","type":"FactorRange"},{"attributes":{"axis":{"id":"1059"},"coordinates":null,"group":null,"ticker":null},"id":"1061","type":"Grid"},{"attributes":{"source":{"id":"1080"}},"id":"1085","type":"CDSView"},{"attributes":{},"id":"1057","type":"LinearScale"},{"attributes":{"coordinates":null,"formatter":{"id":"1092"},"group":null,"major_label_policy":{"id":"1093"},"ticker":{"id":"1060"}},"id":"1059","type":"CategoricalAxis"},{"attributes":{"fill_color":{"value":"#fc8d59"},"hatch_color":{"value":"#fc8d59"},"line_color":{"value":"#fc8d59"},"top":{"field":"top"},"width":{"value":0.5},"x":{"field":"x"}},"id":"1081","type":"VBar"},{"attributes":{"below":[{"id":"1059"}],"center":[{"id":"1061"},{"id":"1065"}],"height":400,"left":[{"id":"1062"}],"renderers":[{"id":"1084"}],"title":{"id":"1049"},"toolbar":{"id":"1073"},"x_range":{"id":"1051"},"x_scale":{"id":"1055"},"y_range":{"id":"1053"},"y_scale":{"id":"1057"}},"id":"1048","subtype":"Figure","type":"Plot"},{"attributes":{"coordinates":null,"group":null,"text":"Feature Importance Scores"},"id":"1049","type":"Title"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#fc8d59"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#fc8d59"},"line_alpha":{"value":0.1},"line_color":{"value":"#fc8d59"},"top":{"field":"top"},"width":{"value":0.5},"x":{"field":"x"}},"id":"1082","type":"VBar"},{"attributes":{"coordinates":null,"data_source":{"id":"1080"},"glyph":{"id":"1081"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1083"},"nonselection_glyph":{"id":"1082"},"view":{"id":"1085"}},"id":"1084","type":"GlyphRenderer"},{"attributes":{},"id":"1069","type":"SaveTool"},{"attributes":{},"id":"1055","type":"CategoricalScale"},{"attributes":{"tools":[{"id":"1066"},{"id":"1067"},{"id":"1068"},{"id":"1069"},{"id":"1070"},{"id":"1071"}]},"id":"1073","type":"Toolbar"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#fc8d59"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#fc8d59"},"line_alpha":{"value":0.2},"line_color":{"value":"#fc8d59"},"top":{"field":"top"},"width":{"value":0.5},"x":{"field":"x"}},"id":"1083","type":"VBar"},{"attributes":{},"id":"1060","type":"CategoricalTicker"},{"attributes":{},"id":"1066","type":"PanTool"},{"attributes":{},"id":"1053","type":"DataRange1d"},{"attributes":{"data":{"top":[0.9182248108408918,0.010593237834966903,-0.0027127181247810447,-0.001100310815155346],"x":["1 > 0.80","1 > 0.68","2 <= -1.38","-0.03 < 1 <= 0.64"]},"selected":{"id":"1095"},"selection_policy":{"id":"1094"}},"id":"1080","type":"ColumnDataSource"},{"attributes":{},"id":"1070","type":"ResetTool"},{"attributes":{},"id":"1067","type":"WheelZoomTool"},{"attributes":{},"id":"1089","type":"BasicTickFormatter"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1072","type":"BoxAnnotation"},{"attributes":{"overlay":{"id":"1072"}},"id":"1068","type":"BoxZoomTool"},{"attributes":{"coordinates":null,"formatter":{"id":"1089"},"group":null,"major_label_policy":{"id":"1090"},"ticker":{"id":"1063"}},"id":"1062","type":"LinearAxis"},{"attributes":{},"id":"1090","type":"AllLabels"},{"attributes":{},"id":"1071","type":"HelpTool"},{"attributes":{},"id":"1093","type":"AllLabels"},{"attributes":{},"id":"1092","type":"CategoricalTickFormatter"},{"attributes":{},"id":"1063","type":"BasicTicker"},{"attributes":{},"id":"1094","type":"UnionRenderers"},{"attributes":{"axis":{"id":"1062"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1065","type":"Grid"},{"attributes":{},"id":"1095","type":"Selection"}],"root_ids":["1048"]},"title":"Bokeh Application","version":"2.4.2"}} + </script> + <script type="text/javascript"> + (function() { + const fn = function() { + Bokeh.safely(function() { + (function(root) { + function embed_document(root) { + + const docs_json = document.getElementById('1217').textContent; + const render_items = [{"docid":"161c1ee2-b4f4-43e7-9389-e8d99579e12d","root_ids":["1048"],"roots":{"1048":"0404cce4-d3b9-4e96-88e7-e633d01327c4"}}]; + root.Bokeh.embed.embed_items(docs_json, render_items); + + } + if (root.Bokeh !== undefined) { + embed_document(root); + } else { + let attempts = 0; + const timer = setInterval(function(root) { + if (root.Bokeh !== undefined) { + clearInterval(timer); + embed_document(root); + } else { + attempts++; + if (attempts > 100) { + clearInterval(timer); + console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing"); + } + } + }, 10, root) + } + })(window); + }); + }; + if (document.readyState != "loading") fn(); + else document.addEventListener("DOMContentLoaded", fn); + })(); + </script> + + </body> + +</html> \ No newline at end of file diff --git a/examples/log_regression/main.py b/examples/log_regression/main.py new file mode 100644 index 0000000000000000000000000000000000000000..38a6c2ab1d09a2b69b8696cf99c56df206aedce5 --- /dev/null +++ b/examples/log_regression/main.py @@ -0,0 +1,42 @@ +import numpy as np +# import pandas as pd +import sys +sys.path.append('/Users/jashanpreetsingh/Desktop/Senior Design Project/why-senior-project/src') +from synthetic import * +from data_vis import vis_synthetic +from data_vis import decisionTreemodel +from data_vis import logisticRegressionmodel +import config as config +from modelling import * + +from bokeh.io import curdoc +from bokeh.models import ColumnDataSource, Row +from bokeh.palettes import Spectral6 + +np.random.seed(0) + +data = SyntheticData(shuffle=False) + +config.X_train, config.X_test, config.y_train, config.y_test = data.generator() + +#instantiate model here. +#finalModel = Models() + + +# testModel = decisionTreemodel(config.X_train, config.X_test, config.y_train, config.y_test, 9) + +testModel1 = logisticRegressionmodel(config.X_train, config.X_test, config.y_train, config.y_test, 9) + +#fit model using fit method on the model class + +config.spectral = np.hstack([Spectral6] * 20) + +colors = [config.spectral[i] for i in config.y_train] + +config.source = ColumnDataSource(dict(x=config.X_train[:,0], y=config.X_train[:,1], colors=colors)) + + +b = vis_synthetic() + +curdoc().add_root(Row(config.inputs, b, testModel1)) #, text_input_widget, stext_output2)) +curdoc().title = "Logistic Regression" \ No newline at end of file diff --git a/examples/log_regression/theme.yaml b/examples/log_regression/theme.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ce434d51aee270c4301f01b4867133750d8ee485 --- /dev/null +++ b/examples/log_regression/theme.yaml @@ -0,0 +1,12 @@ +attrs: + Figure: + width: 400 + height: 400 + background_fill_color: 'lightgrey' + background_fill_alpha: 0.2 + + Grid: + grid_line_color: null + + Title: + text_font_size: '13px' \ No newline at end of file diff --git a/src/data_vis.py b/src/data_vis.py index 9f49c3dcf99ea0ee836fb5ca411e0d5ea19d768a..62c33a1f573d1d4d6c0b4222b2b5f2ed3544888d 100644 --- a/src/data_vis.py +++ b/src/data_vis.py @@ -38,7 +38,7 @@ def vis_synthetic(): def logisticRegressionmodel(X_train, X_test, Y_train, Y_test, record_value): - """This is a docstring for decisionTreeVisuals + """This is a docstring for logisticRegressionVisuals Returns: _type_: _description_