Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
p:ki:fische2 [2024/03/31 19:11] – [1. Was bisher geschah...] Ralf Kretzschmar | p:ki:fische2 [2024/05/04 10:19] (aktuell) – Ralf Kretzschmar |
---|
Navigation: [[:p:ki:fische1|🐟 Teil 1]] - [[:p:ki:fische2|🐟 Teil 2]] - [[:p:ki:fische3|🐟 Teil 3]] - [[:p:ki:fische4|🐟 Teil 4]] {{gem/mgr}}{{ gem/pageinfo}} | Navigation: [[:p:ki:fische1|🐟 Teil 1]] - [[:p:ki:fische2|🐟 Teil 2]] - [[:p:ki:fische3|🐟 Teil 3]] - [[:p:ki:fische4|🐟 Teil 4]] - [[:p:ki:fische_ki|🐟 Zusatzkapitel]] {{gem/mgr}}{{ gem/pageinfo}} |
| |
====== 🐟 Künstliche Intelligenz für echte Fische 2 ====== | ====== 🐟 Künstliche Intelligenz für echte Fische 2 ====== |
🎯 In dieser Reihe erfährst du, wie eine künstliche Intelligenz automatisiert Daten auswertet und beurteilt. Dazu begibst du dich auf raue See. | 🎯 In dieser Reihe erfährst du, wie eine künstliche Intelligenz automatisiert Daten auswertet und beurteilt. Dazu begibst du dich auf raue See. |
| |
| \\ |
~~INTOC~~ | ~~INTOC~~ |
| |
- Wie gut kann dein Fischsortierapparat jetzt Hering von Lodde unterscheiden? Prüfe mit dem roten Threshold, welches der kleinste Fehler ist, den du erreichen kannst. Trage das Resultat ins Textfeld ein. {{gem/match?0=N4IgTgpg5hAeAOIBcIB0AqALABgyANCAGYA2AhlAM7IgCWBIALnIzSAL5A#840f939eb679c2df}} | - Wie gut kann dein Fischsortierapparat jetzt Hering von Lodde unterscheiden? Prüfe mit dem roten Threshold, welches der kleinste Fehler ist, den du erreichen kannst. Trage das Resultat ins Textfeld ein. {{gem/match?0=N4IgTgpg5hAeAOIBcIB0AqALABgyANCAGYA2AhlAM7IgCWBIALnIzSAL5A#840f939eb679c2df}} |
- Worauf musst du bei der Auswahl der Beispiele bzw. Fische achten, wenn du verschiedene Dinge (hier Fische) mit Thesholds in Klassen unterteilen möchtest? Vergleiche dazu das obenstehende mit dem untenstehenden Histogramm. Halte deine Einsicht im Textfeld fest. Vergleiche danach deine Antwort mit der Musterlösung.{{gem/plain?0=N4XyA#0170bd536d248cf6}}++Musterlösung|\\ \\ Die Beispiele müssen alle Varianten aller Klassen beinhalten. Z.B. ein Fischsortierapparat, der nur für grosse Fische optimiert wird, wird bei kleinen Fischen versagen.++ | - Worauf musst du bei der Auswahl der Beispiele bzw. Fische achten, wenn du verschiedene Dinge (hier Fische) mit Thesholds in Klassen unterteilen möchtest? Vergleiche dazu das obenstehende mit dem untenstehenden Histogramm. Halte deine Einsicht im Textfeld fest. Vergleiche danach deine Antwort mit der Musterlösung.{{gem/plain?0=N4XyA#0170bd536d248cf6}}++Musterlösung|\\ \\ Die Beispiele müssen alle Varianten aller Klassen beinhalten. Z.B. ein Fischsortierapparat, der nur für grosse Fische optimiert wird, wird bei kleinen Fischen versagen.++ |
{{exorciser/jspg?javascript=%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20CONSTANTS%20AND%20GLOBAL%20VARIABLES%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0Aconst%20INTERVAL%20%3D%20%5B0%2C%205%2C%2010%2C%2015%2C%2020%2C%2025%2C%2030%2C%2035%2C%2040%5D%3B%0Aconst%20HERING%20%3D%20%5B0%2C%202%2C%208%2C%2018%2C%2024%2C%2022%2C%2019%2C%206%2C%201%5D%3B%0Aconst%20LODDE%20%3D%20%5B5%2C%2019%2C%2033%2C%2031%2C%2010%2C%202%2C%200%2C%200%2C%200%5D%3B%0Aconst%20NUMBER%20%3D%20%5B0%2C%2010%2C%2020%2C%2030%2C%2040%5D%3B%0Aconst%20X_SHIFT%20%3D%2070%3B%0Aconst%20Y_SHIFT%20%3D%2040%3B%0Aconst%20GRAPH_WIDTH%20%3D%20270%3B%0Aconst%20GRAPH_HEIGHT%20%3D%2080%3B%0Aconst%20FONT_SIZE%20%3D%2015%3B%0Aconst%20COLUMN_WIDTH%20%3D%20%28GRAPH_WIDTH%20%2F%20INTERVAL.length%20-%206%29%20%2F%202%3B%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20FUNCTIONS%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20histogram%0A%2F%2F%0Afunction%20drawGraph%28%29%20%7B%0A%09textAlign%28CENTER%29%3B%0A%09for%20%28i%20%3D%200%3B%20i%20%3C%20INTERVAL.length%3B%20i%20%3D%20i%20%2B%201%29%20%7B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27green%27%29%3B%0A%09%09rect%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%20%2B%202%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20LODDE%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%2C%20COLUMN_WIDTH%2C%20LODDE%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%29%3B%0A%09%09fill%28%27blue%27%29%3B%0A%09%09rect%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%20%2B%20COLUMN_WIDTH%20%2B%204%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20HERING%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%2C%20COLUMN_WIDTH%2C%20HERING%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%29%3B%0A%09%09strokeWeight%281%29%3B%0A%09%09stroke%28%22black%22%29%3B%0A%09%09line%28X_SHIFT%2C%20Y_SHIFT%2C%20X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%29%3B%0A%09%09line%28X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%29%3B%0A%09%09line%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27black%27%29%3B%0A%09%09text%28INTERVAL%5Bi%5D%2C%20X_SHIFT%20%2B%20%28i%20%2B%200.5%29%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%29%3B%0A%09%7D%0A%09strokeWeight%281%29%3B%0A%09stroke%28%22black%22%29%3B%0A%09line%28X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09textAlign%28RIGHT%29%3B%0A%09for%20%28j%20%3D%200%3B%20j%20%3C%20NUMBER.length%3B%20j%20%3D%20j%20%2B%201%29%20%7B%0A%09%09strokeWeight%281%29%3B%0A%09%09stroke%28%22black%22%29%3B%0A%09%09line%28X_SHIFT%20-%20FONT_SIZE%20%2F%203%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%2C%20X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%29%3B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27black%27%29%3B%0A%09%09text%28NUMBER%5Bj%5D%2C%20X_SHIFT%20-%202%20%2a%20FONT_SIZE%20%2F%203%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%29%3B%0A%09%7D%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20add%20labels%20to%20histogram%0A%2F%2F%0Afunction%20addTextLabels%28%29%20%7B%0A%09textAlign%28CENTER%29%3B%0A%09fill%28%22green%22%29%3B%0A%09text%28%22Lodde%22%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%20%2F%204%2C%20Y_SHIFT%20-%20FONT_SIZE%29%3B%0A%09fill%28%22blue%22%29%3B%0A%09text%28%22Hering%22%2C%20X_SHIFT%20%2B%203%20%2a%20GRAPH_WIDTH%20%2F%204%2C%20Y_SHIFT%20-%20FONT_SIZE%29%3B%0A%09fill%28%22black%22%29%3B%0A%09text%28%22Messgr%C3%B6ssenintervalle%22%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%20%2F%202%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%203%20%2a%20FONT_SIZE%29%3B%0A%09rotate%28-HALF_PI%29%3B%0A%09text%28%22Anzahl%20Fische%22%2C%20-%28Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2F%202%29%2C%20X_SHIFT%20-%203%20%2a%20FONT_SIZE%29%3B%0A%09rotate%28HALF_PI%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20control%20mouse%20interaction%0A%2F%2F%0A%0Afunction%20addMouseInteraction%28%29%20%7B%0A%09let%20wrong%20%3D%200%3B%0A%09if%20%28mouseX%20%3E%20X_SHIFT%20%26%26%20mouseX%20%3C%20X_SHIFT%20%2B%20GRAPH_WIDTH%29%20%7B%0A%09%09mousePosition%20%3D%20Math.round%28%28mouseX%20-%20X_SHIFT%29%20%2F%20%28GRAPH_WIDTH%20%2F%20INTERVAL.length%29%29%3B%0A%09%09strokeWeight%283%29%3B%0A%09%09stroke%28%22red%22%29%3B%0A%09%09line%28X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%202%20%2a%20FONT_SIZE%20%2F%203%29%3B%0A%0A%09%09for%20%28h%20%3D%200%3B%20h%20%3C%20mousePosition%3B%20h%2B%2B%29%20%7B%0A%09%09%09wrong%20%3D%20wrong%20%2B%20HERING%5Bh%5D%3B%0A%09%09%7D%0A%09%09for%20%28l%20%3D%20LODDE.length%20-%201%3B%20l%20%3E%3D%20mousePosition%3B%20l--%29%20%7B%0A%09%09%09wrong%20%3D%20wrong%20%2B%20LODDE%5Bl%5D%3B%0A%09%09%7D%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%22red%22%29%3B%0A%09%09textAlign%28CENTER%29%3B%0A%09%09text%28wrong%2C%20X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09%7D%0A%7D%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20MAIN%20PROGRAM%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20setup%28%29%0A%2F%2F%0Afunction%20setup%28%29%20%7B%0A%09createCanvas%28360%2C%20180%29%3B%0A%09textSize%28FONT_SIZE%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20draw%28%29%0A%2F%2F%0Afunction%20draw%28%29%20%7B%0A%09background%28%22white%22%29%3B%0A%09addTextLabels%28%29%3B%0A%09drawGraph%28%29%3B%0A%09addMouseInteraction%28%29%3B%0A%7D&css=canvas%20%7B%0A%09border%3A%201px%20solid%20silver%3B%0A%7D&html=%3Cscript%20src%3D%27https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Fp5%2Flib%2Fp5.js%27%3E%3C%2Fscript%3E&height=360px#Histogram2}} | {{exorciser/jspg?javascript=%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20CONSTANTS%20AND%20GLOBAL%20VARIABLES%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0Aconst%20INTERVAL%20%3D%20%5B0%2C%205%2C%2010%2C%2015%2C%2020%2C%2025%2C%2030%2C%2035%2C%2040%5D%3B%0Aconst%20HERING%20%3D%20%5B0%2C%202%2C%208%2C%2018%2C%2024%2C%2022%2C%2019%2C%206%2C%201%5D%3B%0Aconst%20LODDE%20%3D%20%5B5%2C%2019%2C%2033%2C%2031%2C%2010%2C%202%2C%200%2C%200%2C%200%5D%3B%0Aconst%20NUMBER%20%3D%20%5B0%2C%2010%2C%2020%2C%2030%2C%2040%5D%3B%0Aconst%20X_SHIFT%20%3D%2070%3B%0Aconst%20Y_SHIFT%20%3D%2040%3B%0Aconst%20GRAPH_WIDTH%20%3D%20270%3B%0Aconst%20GRAPH_HEIGHT%20%3D%2080%3B%0Aconst%20FONT_SIZE%20%3D%2015%3B%0Aconst%20COLUMN_WIDTH%20%3D%20%28GRAPH_WIDTH%20%2F%20INTERVAL.length%20-%206%29%20%2F%202%3B%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20FUNCTIONS%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20histogram%0A%2F%2F%0Afunction%20drawGraph%28%29%20%7B%0A%09textAlign%28CENTER%29%3B%0A%09for%20%28i%20%3D%200%3B%20i%20%3C%20INTERVAL.length%3B%20i%20%3D%20i%20%2B%201%29%20%7B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27green%27%29%3B%0A%09%09rect%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%20%2B%202%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20LODDE%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%2C%20COLUMN_WIDTH%2C%20LODDE%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%29%3B%0A%09%09fill%28%27blue%27%29%3B%0A%09%09rect%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%20%2B%20COLUMN_WIDTH%20%2B%204%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20HERING%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%2C%20COLUMN_WIDTH%2C%20HERING%5Bi%5D%20%2a%20GRAPH_HEIGHT%20%2F%20NUMBER%5BNUMBER.length%20-%201%5D%29%3B%0A%09%09strokeWeight%281%29%3B%0A%09%09stroke%28%22black%22%29%3B%0A%09%09line%28X_SHIFT%2C%20Y_SHIFT%2C%20X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%29%3B%0A%09%09line%28X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%29%3B%0A%09%09line%28X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20i%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27black%27%29%3B%0A%09%09text%28INTERVAL%5Bi%5D%2C%20X_SHIFT%20%2B%20%28i%20%2B%200.5%29%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%29%3B%0A%09%7D%0A%09strokeWeight%281%29%3B%0A%09stroke%28%22black%22%29%3B%0A%09line%28X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09textAlign%28RIGHT%29%3B%0A%09for%20%28j%20%3D%200%3B%20j%20%3C%20NUMBER.length%3B%20j%20%3D%20j%20%2B%201%29%20%7B%0A%09%09strokeWeight%281%29%3B%0A%09%09stroke%28%22black%22%29%3B%0A%09%09line%28X_SHIFT%20-%20FONT_SIZE%20%2F%203%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%2C%20X_SHIFT%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%29%3B%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%27black%27%29%3B%0A%09%09text%28NUMBER%5Bj%5D%2C%20X_SHIFT%20-%202%20%2a%20FONT_SIZE%20%2F%203%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%20FONT_SIZE%20%2F%203%20-%20j%20%2a%20GRAPH_HEIGHT%20%2F%20%28NUMBER.length%20-%201%29%29%3B%0A%09%7D%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20add%20labels%20to%20histogram%0A%2F%2F%0Afunction%20addTextLabels%28%29%20%7B%0A%09textAlign%28CENTER%29%3B%0A%09fill%28%22green%22%29%3B%0A%09text%28%22Lodde%22%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%20%2F%204%2C%20Y_SHIFT%20-%20FONT_SIZE%29%3B%0A%09fill%28%22blue%22%29%3B%0A%09text%28%22Hering%22%2C%20X_SHIFT%20%2B%203%20%2a%20GRAPH_WIDTH%20%2F%204%2C%20Y_SHIFT%20-%20FONT_SIZE%29%3B%0A%09fill%28%22black%22%29%3B%0A%09text%28%22Messgr%C3%B6ssenintervalle%22%2C%20X_SHIFT%20%2B%20GRAPH_WIDTH%20%2F%202%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2B%203%20%2a%20FONT_SIZE%29%3B%0A%09rotate%28-HALF_PI%29%3B%0A%09text%28%22Anzahl%20Fische%22%2C%20-%28Y_SHIFT%20%2B%20GRAPH_HEIGHT%20%2F%202%29%2C%20X_SHIFT%20-%203%20%2a%20FONT_SIZE%29%3B%0A%09rotate%28HALF_PI%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20control%20mouse%20interaction%0A%2F%2F%0A%0Afunction%20addMouseInteraction%28%29%20%7B%0A%09let%20wrong%20%3D%200%3B%0A%09if%20%28mouseX%20%3E%20X_SHIFT%20%26%26%20mouseX%20%3C%20X_SHIFT%20%2B%20GRAPH_WIDTH%29%20%7B%0A%09%09mousePosition%20%3D%20Math.round%28%28mouseX%20-%20X_SHIFT%29%20%2F%20%28GRAPH_WIDTH%20%2F%20INTERVAL.length%29%29%3B%0A%09%09strokeWeight%283%29%3B%0A%09%09stroke%28%22red%22%29%3B%0A%09%09line%28X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20GRAPH_HEIGHT%2C%20X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%202%20%2a%20FONT_SIZE%20%2F%203%29%3B%0A%0A%09%09for%20%28h%20%3D%200%3B%20h%20%3C%20mousePosition%3B%20h%2B%2B%29%20%7B%0A%09%09%09wrong%20%3D%20wrong%20%2B%20HERING%5Bh%5D%3B%0A%09%09%7D%0A%09%09for%20%28l%20%3D%20LODDE.length%20-%201%3B%20l%20%3E%3D%20mousePosition%3B%20l--%29%20%7B%0A%09%09%09wrong%20%3D%20wrong%20%2B%20LODDE%5Bl%5D%3B%0A%09%09%7D%0A%09%09noStroke%28%29%3B%0A%09%09fill%28%22red%22%29%3B%0A%09%09textAlign%28CENTER%29%3B%0A%09%09text%28wrong%2C%20X_SHIFT%20%2B%20mousePosition%20%2a%20GRAPH_WIDTH%20%2F%20INTERVAL.length%2C%20Y_SHIFT%20%2B%20FONT_SIZE%20%2F%203%29%3B%0A%09%7D%0A%7D%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20MAIN%20PROGRAM%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20setup%28%29%0A%2F%2F%0Afunction%20setup%28%29%20%7B%0A%09createCanvas%28360%2C%20180%29%3B%0A%09textSize%28FONT_SIZE%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20draw%28%29%0A%2F%2F%0Afunction%20draw%28%29%20%7B%0A%09background%28%22white%22%29%3B%0A%09addTextLabels%28%29%3B%0A%09drawGraph%28%29%3B%0A%09addMouseInteraction%28%29%3B%0A%7D&css=canvas%20%7B%0A%09border%3A%201px%20solid%20silver%3B%0A%7D&html=%3Cscript%20src%3D%27https%3A%2F%2Fapp.exorciser.ch%2Flib%2Fp5.js%27%3E%3C%2Fscript%3E&height=360px#Histogram2}} |
</WRAP> | </WRAP> |
| |
- In der linken Grafik hast du deine Linie um die Fische herum gezeichnet - die Fische in der linken Grafik nennen wir deshalb "Trainingsfische". In der rechten Grafik siehst du, wie gut deine Linie bezüglich den weiteren Fischen abschneidet - die Fische in der rechten Grafik nennen wir deshalb "Validationsfische". Halte im Textfeld fest, wie viele Trainingsfische und wie viele Validationsfische du mit deiner Linie falsch klassifizierst hast. {{gem/plain?0=N4XyA#ab24b6a53e67c5b3}} | - In der linken Grafik hast du deine Linie um die Fische herum gezeichnet - die Fische in der linken Grafik nennen wir deshalb "Trainingsfische". In der rechten Grafik siehst du, wie gut deine Linie bezüglich den weiteren Fischen abschneidet - die Fische in der rechten Grafik nennen wir deshalb "Validationsfische". Halte im Textfeld fest, wie viele Trainingsfische und wie viele Validationsfische du mit deiner Linie falsch klassifizierst hast. {{gem/plain?0=N4XyA#ab24b6a53e67c5b3}} |
- Klicke auf ''▶Run'' und zeichne nun eine Linie, welche die Trainings- UND die Validationsfische möglichst gut klassifiziert. Halte wiederum fest, wie viele Trainings- und wie viele Validationsfische falsch zugeordnet werden. {{gem/plain?0=N4XyA#f895b2f0dc7e3236}} | - Klicke auf ''▶Run'' und zeichne nun eine Linie, welche die Trainings- UND die Validationsfische möglichst gut klassifiziert. Halte wiederum fest, wie viele Trainings- und wie viele Validationsfische falsch zugeordnet werden. {{gem/plain?0=N4XyA#f895b2f0dc7e3236}} |
{{exorciser/jspg?javascript=%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20CONSTANTS%20AND%20GLOBAL%20VARIABLES%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%20constants%0Aconst%20DATA_RANGE%20%3D%2010%3B%0Aconst%20DATA_WINDOW_SIZE%20%3D%20200%3B%0Aconst%20DATA_SCALE%20%3D%20Math.round%28DATA_WINDOW_SIZE%20%2F%20DATA_RANGE%29%3B%0Aconst%20SYMBOL_SIZE%20%3D%204%3B%0Aconst%20BUTTON_WIDTH%20%3D%20150%3B%0Aconst%20BUTTON_HEIGHT%20%3D%2050%3B%0A%0A%2F%2F%20training%20data%0Aconst%20TRAIN_INPUT%20%3D%20%5B%0A%09%5B2.5%2C%206.0%5D%2C%0A%09%5B3.5%2C%201.5%5D%2C%0A%09%5B3.5%2C%204.0%5D%2C%0A%09%5B4.0%2C%206.0%5D%2C%0A%09%5B4.0%2C%207.0%5D%2C%0A%09%5B4.5%2C%203.0%5D%2C%0A%09%5B5.0%2C%205.0%5D%2C%0A%09%5B5.5%2C%206.0%5D%2C%0A%09%5B6.5%2C%203.0%5D%2C%0A%09%5B7.0%2C%205.5%5D%2C%0A%09%5B7.5%2C%204.0%5D%2C%0A%09%5B8.5%2C%205.5%5D%2C%0A%09%5B1.5%2C%203.0%5D%2C%0A%09%5B1.5%2C%204.5%5D%2C%0A%09%5B1.5%2C%207.0%5D%2C%0A%09%5B2.0%2C%201.5%5D%2C%0A%09%5B3.0%2C%203.0%5D%2C%0A%09%5B3.0%2C%205.5%5D%2C%0A%09%5B3.0%2C%206.5%5D%2C%0A%09%5B4.0%2C%208.5%5D%2C%0A%09%5B4.5%2C%206.5%5D%2C%0A%09%5B6.5%2C%207.5%5D%2C%0A%09%5B8.0%2C%206.5%5D%2C%0A%09%5B8.0%2C%208.5%5D%0A%5D%3B%0Aconst%20TRAIN_LABEL%20%3D%20%5B0%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%5D%3B%0A%0A%2F%2F%20validation%20data%0Aconst%20VALID_INPUT%20%3D%20%5B%0A%09%5B2.5%2C%207.0%5D%2C%0A%09%5B3.5%2C%201.0%5D%2C%0A%09%5B3.5%2C%207.0%5D%2C%0A%09%5B4.0%2C%203.5%5D%2C%0A%09%5B4.5%2C%206.5%5D%2C%0A%09%5B4.5%2C%202.5%5D%2C%0A%09%5B4.5%2C%205.0%5D%2C%0A%09%5B6.0%2C%202.5%5D%2C%0A%09%5B6.0%2C%204.5%5D%2C%0A%09%5B6.5%2C%205.5%5D%2C%0A%09%5B7.5%2C%204.5%5D%2C%0A%09%5B8.5%2C%205.0%5D%2C%0A%09%5B1.5%2C%205.0%5D%2C%0A%09%5B1.5%2C%206.5%5D%2C%0A%09%5B2.0%2C%201.5%5D%2C%0A%09%5B2.5%2C%203.5%5D%2C%0A%09%5B2.5%2C%206.0%5D%2C%0A%09%5B3.5%2C%206.0%5D%2C%0A%09%5B4.0%2C%208.0%5D%2C%0A%09%5B4.0%2C%207.0%5D%2C%0A%09%5B5.5%2C%208.5%5D%2C%0A%09%5B6.5%2C%207.0%5D%2C%0A%09%5B7.5%2C%208.5%5D%2C%0A%09%5B8.5%2C%207.0%5D%0A%5D%3B%0Aconst%20VALID_LABEL%20%3D%20%5B0%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%5D%3B%0A%0A%2F%2F%20variables%0Alet%20showValid%20%3D%20false%3B%0Alet%20trainBuffer%2C%20validBuffer%2C%20decisionBuffer%2C%20buttonBuffer%3B%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20FUNCTIONS%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20data%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20drawDataInBuffer%28inputData%2C%20outputData%2C%20buffer%29%20%7B%0A%09buffer.noFill%28%29%3B%0A%09buffer.strokeWeight%28SYMBOL_SIZE%20%2F%202%29%3B%0A%09buffer.rect%280%2C%200%2C%20DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09for%20%28i%20%3D%200%3B%20i%20%3C%20inputData.length%3B%20i%2B%2B%29%20%7B%0A%09%09if%20%28outputData%5Bi%5D%20%3D%3D%3D%201%29%20%7B%0A%09%09%09%2F%2F%20green%20circle%20for%20output%20label%20%3D%3D%3D%201%0A%09%09%09buffer.stroke%28%22green%22%29%3B%0A%09%09%09buffer.circle%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%2C%202%20%2a%20SYMBOL_SIZE%29%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09%2F%2F%20blue%20cross%20for%20output%20label%20%3D%3D%3D%200%0A%09%09%09buffer.stroke%28%22blue%22%29%3B%0A%09%09%09buffer.line%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20-%20SYMBOL_SIZE%29%3B%0A%09%09%09buffer.line%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20%2B%20SYMBOL_SIZE%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20buffer%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20drawButtonInBuffer%28buffer%29%20%7B%0A%09%2F%2F%20create%20button%20rectangle%0A%09buffer.stroke%28%22black%22%29%3B%0A%09buffer.strokeWeight%281%29%3B%0A%09buffer.fill%28240%2C%20240%2C%20240%29%3B%0A%09buffer.rect%28DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%2C%20BUTTON_WIDTH%2C%20BUTTON_HEIGHT%2C%2010%29%3B%0A%09%2F%2F%20label%20button%0A%09buffer.textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09buffer.textAlign%28CENTER%2C%20CENTER%29%3B%0A%09buffer.noStroke%28%29%3B%0A%09buffer.fill%28%22black%22%29%3B%0A%09buffer.text%28%221.%20Zeichne%20links%5Cn2.%20Klicke%20hier%22%2C%20DATA_WINDOW_SIZE%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20update%20buffer%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20updateButton%28buffer%29%20%7B%0A%09if%20%28mouseX%20%3E%3D%203%20%2a%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%20%26%26%20mouseX%20%3C%3D%203%20%2a%20DATA_WINDOW_SIZE%20%2F%202%20%2B%20BUTTON_WIDTH%20%2F%202%20%26%26%20mouseY%20%3E%3D%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%20%26%26%20mouseY%20%3C%3D%20DATA_WINDOW_SIZE%20%2F%202%20%2B%20BUTTON_HEIGHT%20%2F%202%29%20%7B%0A%09%09%2F%2F%20create%20button%20rectangle%0A%09%09buffer.stroke%28%22black%22%29%3B%0A%09%09buffer.strokeWeight%281%29%3B%0A%09%09buffer.fill%28220%2C%20220%2C%20220%29%3B%0A%09%09buffer.rect%28DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%2C%20BUTTON_WIDTH%2C%20BUTTON_HEIGHT%2C%2010%29%3B%0A%09%09%2F%2F%20label%20button%0A%09%09buffer.textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09%09buffer.textAlign%28CENTER%2C%20CENTER%29%3B%0A%09%09buffer.noStroke%28%29%3B%0A%09%09buffer.fill%28%22black%22%29%3B%0A%09%09buffer.text%28%221.%20Zeichne%20links%5Cn2.%20Klicke%20hier%22%2C%20DATA_WINDOW_SIZE%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%29%3B%0A%09%09if%20%28mouseIsPressed%29%20%7B%0A%09%09%09showValid%20%3D%20true%3B%0A%09%09%7D%0A%09%7D%20else%20%7B%0A%09%09drawButtonInBuffer%28buffer%29%3B%0A%09%7D%0A%7D%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20MAIN%20PROGRAM%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20setup%28%29%0A%2F%2F%0Afunction%20setup%28%29%20%7B%0A%09%2F%2F%20create%20canvas%20for%20traning%20and%20validation%20feature%20space%0A%09createCanvas%282%20%2a%20DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09%2F%2F%20set%20text%20properties%0A%09noStroke%28%29%3B%0A%09textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09%2F%2F%20create%20all%20buffers%0A%09trainBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09validBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09decisionBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09buttonBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09%2F%2F%20draw%20training%20and%20validation%20data%0A%09drawDataInBuffer%28TRAIN_INPUT%2C%20TRAIN_LABEL%2C%20trainBuffer%29%3B%0A%09drawDataInBuffer%28VALID_INPUT%2C%20VALID_LABEL%2C%20validBuffer%29%3B%0A%09%2F%2F%20set%20decision%20boundary%20properties%0A%09decisionBuffer.strokeWeight%282%29%3B%0A%09decisionBuffer.stroke%28%22red%22%29%3B%0A%09%2F%2F%20create%20button%0A%09drawButtonInBuffer%28buttonBuffer%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20draw%28%29%0A%2F%2F%0Afunction%20draw%28%29%20%7B%0A%09%2F%2F%20clear%20everything%0A%09background%28%22white%22%29%3B%0A%09%2F%2F%20if%20mouse%20is%20pressed%20draw%20decision%20boundary%20in%20buffer%0A%09if%20%28mouseIsPressed%20%26%26%20mouseX%20%3E%200%20%26%26%20mouseX%20%3C%20DATA_WINDOW_SIZE%20%26%26%20mouseY%20%3E%200%20%26%26%20mouseY%20%3C%20DATA_WINDOW_SIZE%29%20%7B%0A%09%09decisionBuffer.line%28pmouseX%2C%20pmouseY%2C%20mouseX%2C%20mouseY%29%3B%0A%09%7D%0A%09%2F%2F%20draw%20all%20buffers%0A%09image%28trainBuffer%2C%200%2C%200%29%3B%0A%09image%28decisionBuffer%2C%200%2C%200%29%3B%0A%09if%20%28showValid%29%20%7B%0A%09%09image%28validBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%09image%28decisionBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%09text%28%22Training%22%2C%202%20%2a%20SYMBOL_SIZE%2C%206%20%2a%20SYMBOL_SIZE%29%3B%0A%09%09text%28%22Validation%22%2C%20DATA_WINDOW_SIZE%20%2B%202%20%2a%20SYMBOL_SIZE%2C%206%20%2a%20SYMBOL_SIZE%29%3B%0A%09%7D%20else%20%7B%0A%09%09updateButton%28buttonBuffer%29%3B%0A%09%09image%28buttonBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%7D%0A%7D&css=undefined&html=%3Cscript%20src%3D%22https%3A%2F%2Fcdn.jsdelivr.net%2Fnpm%2Fp5%22%3E%3C%2Fscript%3E&height=360px#DecisionBoundary}} | {{exorciser/jspg?javascript=%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20CONSTANTS%20AND%20GLOBAL%20VARIABLES%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%20constants%0Aconst%20DATA_RANGE%20%3D%2010%3B%0Aconst%20DATA_WINDOW_SIZE%20%3D%20200%3B%0Aconst%20DATA_SCALE%20%3D%20Math.round%28DATA_WINDOW_SIZE%20%2F%20DATA_RANGE%29%3B%0Aconst%20SYMBOL_SIZE%20%3D%204%3B%0Aconst%20BUTTON_WIDTH%20%3D%20150%3B%0Aconst%20BUTTON_HEIGHT%20%3D%2050%3B%0A%0A%2F%2F%20training%20data%0Aconst%20TRAIN_INPUT%20%3D%20%5B%0A%09%5B2.5%2C%206.0%5D%2C%0A%09%5B3.5%2C%201.5%5D%2C%0A%09%5B3.5%2C%204.0%5D%2C%0A%09%5B4.0%2C%206.0%5D%2C%0A%09%5B4.0%2C%207.0%5D%2C%0A%09%5B4.5%2C%203.0%5D%2C%0A%09%5B5.0%2C%205.0%5D%2C%0A%09%5B5.5%2C%206.0%5D%2C%0A%09%5B6.5%2C%203.0%5D%2C%0A%09%5B7.0%2C%205.5%5D%2C%0A%09%5B7.5%2C%204.0%5D%2C%0A%09%5B8.5%2C%205.5%5D%2C%0A%09%5B1.5%2C%203.0%5D%2C%0A%09%5B1.5%2C%204.5%5D%2C%0A%09%5B1.5%2C%207.0%5D%2C%0A%09%5B2.0%2C%201.5%5D%2C%0A%09%5B3.0%2C%203.0%5D%2C%0A%09%5B3.0%2C%205.5%5D%2C%0A%09%5B3.0%2C%206.5%5D%2C%0A%09%5B4.0%2C%208.5%5D%2C%0A%09%5B4.5%2C%206.5%5D%2C%0A%09%5B6.5%2C%207.5%5D%2C%0A%09%5B8.0%2C%206.5%5D%2C%0A%09%5B8.0%2C%208.5%5D%0A%5D%3B%0Aconst%20TRAIN_LABEL%20%3D%20%5B0%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%5D%3B%0A%0A%2F%2F%20validation%20data%0Aconst%20VALID_INPUT%20%3D%20%5B%0A%09%5B2.5%2C%207.0%5D%2C%0A%09%5B3.5%2C%201.0%5D%2C%0A%09%5B3.5%2C%207.0%5D%2C%0A%09%5B4.0%2C%203.5%5D%2C%0A%09%5B4.5%2C%206.5%5D%2C%0A%09%5B4.5%2C%202.5%5D%2C%0A%09%5B4.5%2C%205.0%5D%2C%0A%09%5B6.0%2C%202.5%5D%2C%0A%09%5B6.0%2C%204.5%5D%2C%0A%09%5B6.5%2C%205.5%5D%2C%0A%09%5B7.5%2C%204.5%5D%2C%0A%09%5B8.5%2C%205.0%5D%2C%0A%09%5B1.5%2C%205.0%5D%2C%0A%09%5B1.5%2C%206.5%5D%2C%0A%09%5B2.0%2C%201.5%5D%2C%0A%09%5B2.5%2C%203.5%5D%2C%0A%09%5B2.5%2C%206.0%5D%2C%0A%09%5B3.5%2C%206.0%5D%2C%0A%09%5B4.0%2C%208.0%5D%2C%0A%09%5B4.0%2C%207.0%5D%2C%0A%09%5B5.5%2C%208.5%5D%2C%0A%09%5B6.5%2C%207.0%5D%2C%0A%09%5B7.5%2C%208.5%5D%2C%0A%09%5B8.5%2C%207.0%5D%0A%5D%3B%0Aconst%20VALID_LABEL%20%3D%20%5B0%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%200%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%2C%201%5D%3B%0A%0A%2F%2F%20variables%0Alet%20showValid%20%3D%20false%3B%0Alet%20trainBuffer%2C%20validBuffer%2C%20decisionBuffer%2C%20buttonBuffer%3B%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20FUNCTIONS%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20data%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20drawDataInBuffer%28inputData%2C%20outputData%2C%20buffer%29%20%7B%0A%09buffer.noFill%28%29%3B%0A%09buffer.strokeWeight%28SYMBOL_SIZE%20%2F%202%29%3B%0A%09buffer.rect%280%2C%200%2C%20DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09for%20%28i%20%3D%200%3B%20i%20%3C%20inputData.length%3B%20i%2B%2B%29%20%7B%0A%09%09if%20%28outputData%5Bi%5D%20%3D%3D%3D%201%29%20%7B%0A%09%09%09%2F%2F%20green%20circle%20for%20output%20label%20%3D%3D%3D%201%0A%09%09%09buffer.stroke%28%22green%22%29%3B%0A%09%09%09buffer.circle%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%2C%202%20%2a%20SYMBOL_SIZE%29%3B%0A%09%09%7D%20else%20%7B%0A%09%09%09%2F%2F%20blue%20cross%20for%20output%20label%20%3D%3D%3D%200%0A%09%09%09buffer.stroke%28%22blue%22%29%3B%0A%09%09%09buffer.line%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20-%20SYMBOL_SIZE%29%3B%0A%09%09%09buffer.line%28DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20%2B%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20inputData%5Bi%5D%5B0%5D%20-%20SYMBOL_SIZE%2C%20DATA_SCALE%20%2a%20%2810%20-%20inputData%5Bi%5D%5B1%5D%29%20%2B%20SYMBOL_SIZE%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20draw%20buffer%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20drawButtonInBuffer%28buffer%29%20%7B%0A%09%2F%2F%20create%20button%20rectangle%0A%09buffer.stroke%28%22black%22%29%3B%0A%09buffer.strokeWeight%281%29%3B%0A%09buffer.fill%28240%2C%20240%2C%20240%29%3B%0A%09buffer.rect%28DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%2C%20BUTTON_WIDTH%2C%20BUTTON_HEIGHT%2C%2010%29%3B%0A%09%2F%2F%20label%20button%0A%09buffer.textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09buffer.textAlign%28CENTER%2C%20CENTER%29%3B%0A%09buffer.noStroke%28%29%3B%0A%09buffer.fill%28%22black%22%29%3B%0A%09buffer.text%28%221.%20Zeichne%20links%5Cn2.%20Klicke%20hier%22%2C%20DATA_WINDOW_SIZE%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20update%20buffer%20in%20graphic%20buffer%0A%2F%2F%0Afunction%20updateButton%28buffer%29%20%7B%0A%09if%20%28mouseX%20%3E%3D%203%20%2a%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%20%26%26%20mouseX%20%3C%3D%203%20%2a%20DATA_WINDOW_SIZE%20%2F%202%20%2B%20BUTTON_WIDTH%20%2F%202%20%26%26%20mouseY%20%3E%3D%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%20%26%26%20mouseY%20%3C%3D%20DATA_WINDOW_SIZE%20%2F%202%20%2B%20BUTTON_HEIGHT%20%2F%202%29%20%7B%0A%09%09%2F%2F%20create%20button%20rectangle%0A%09%09buffer.stroke%28%22black%22%29%3B%0A%09%09buffer.strokeWeight%281%29%3B%0A%09%09buffer.fill%28220%2C%20220%2C%20220%29%3B%0A%09%09buffer.rect%28DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_WIDTH%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%20-%20BUTTON_HEIGHT%20%2F%202%2C%20BUTTON_WIDTH%2C%20BUTTON_HEIGHT%2C%2010%29%3B%0A%09%09%2F%2F%20label%20button%0A%09%09buffer.textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09%09buffer.textAlign%28CENTER%2C%20CENTER%29%3B%0A%09%09buffer.noStroke%28%29%3B%0A%09%09buffer.fill%28%22black%22%29%3B%0A%09%09buffer.text%28%221.%20Zeichne%20links%5Cn2.%20Klicke%20hier%22%2C%20DATA_WINDOW_SIZE%20%2F%202%2C%20DATA_WINDOW_SIZE%20%2F%202%29%3B%0A%09%09if%20%28mouseIsPressed%29%20%7B%0A%09%09%09showValid%20%3D%20true%3B%0A%09%09%7D%0A%09%7D%20else%20%7B%0A%09%09drawButtonInBuffer%28buffer%29%3B%0A%09%7D%0A%7D%0A%0A%0A%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%2F%2F%20MAIN%20PROGRAM%0A%2F%2F%20%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%2a%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20setup%28%29%0A%2F%2F%0Afunction%20setup%28%29%20%7B%0A%09%2F%2F%20create%20canvas%20for%20traning%20and%20validation%20feature%20space%0A%09createCanvas%282%20%2a%20DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09%2F%2F%20set%20text%20properties%0A%09noStroke%28%29%3B%0A%09textSize%28SYMBOL_SIZE%20%2a%204%29%3B%0A%09%2F%2F%20create%20all%20buffers%0A%09trainBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09validBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09decisionBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09buttonBuffer%20%3D%20createGraphics%28DATA_WINDOW_SIZE%2C%20DATA_WINDOW_SIZE%29%3B%0A%09%2F%2F%20draw%20training%20and%20validation%20data%0A%09drawDataInBuffer%28TRAIN_INPUT%2C%20TRAIN_LABEL%2C%20trainBuffer%29%3B%0A%09drawDataInBuffer%28VALID_INPUT%2C%20VALID_LABEL%2C%20validBuffer%29%3B%0A%09%2F%2F%20set%20decision%20boundary%20properties%0A%09decisionBuffer.strokeWeight%282%29%3B%0A%09decisionBuffer.stroke%28%22red%22%29%3B%0A%09%2F%2F%20create%20button%0A%09drawButtonInBuffer%28buttonBuffer%29%3B%0A%7D%0A%0A%0A%2F%2F%0A%2F%2F%20p5.js%20draw%28%29%0A%2F%2F%0Afunction%20draw%28%29%20%7B%0A%09%2F%2F%20clear%20everything%0A%09background%28%22white%22%29%3B%0A%09%2F%2F%20if%20mouse%20is%20pressed%20draw%20decision%20boundary%20in%20buffer%0A%09if%20%28mouseIsPressed%20%26%26%20mouseX%20%3E%200%20%26%26%20mouseX%20%3C%20DATA_WINDOW_SIZE%20%26%26%20mouseY%20%3E%200%20%26%26%20mouseY%20%3C%20DATA_WINDOW_SIZE%29%20%7B%0A%09%09decisionBuffer.line%28pmouseX%2C%20pmouseY%2C%20mouseX%2C%20mouseY%29%3B%0A%09%7D%0A%09%2F%2F%20draw%20all%20buffers%0A%09image%28trainBuffer%2C%200%2C%200%29%3B%0A%09image%28decisionBuffer%2C%200%2C%200%29%3B%0A%09if%20%28showValid%29%20%7B%0A%09%09image%28validBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%09image%28decisionBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%09text%28%22Training%22%2C%202%20%2a%20SYMBOL_SIZE%2C%206%20%2a%20SYMBOL_SIZE%29%3B%0A%09%09text%28%22Validation%22%2C%20DATA_WINDOW_SIZE%20%2B%202%20%2a%20SYMBOL_SIZE%2C%206%20%2a%20SYMBOL_SIZE%29%3B%0A%09%7D%20else%20%7B%0A%09%09updateButton%28buttonBuffer%29%3B%0A%09%09image%28buttonBuffer%2C%20DATA_WINDOW_SIZE%2C%200%29%3B%0A%09%7D%0A%7D&css=undefined&html=%3Cscript%20src%3D%22https%3A%2F%2Fapp.exorciser.ch%2Flib%2Fp5.js%22%3E%3C%2Fscript%3E&height=360px#DecisionBoundary}} |
</WRAP> | </WRAP> |
| |