 Yeah, let's say just do some Welcome welcome music really need a musician to try this out If you play any musical instruments to let me know There's essentially two musical instruments for each hand It can be quite Confusing just streaming on LinkedIn Hello, hello YouTube hello, hello That's so soft. Yeah, so it's doing short notes long notes There's a scale for the right hand For the left hand you can do them together, but it's pretty annoying and up and down this volume you can go try it out yourself on this side trying to go live on Facebook as well that doesn't work. She need to start it manually. So if you check the That's still working Okay, this is working as well So we'll live on Facebook as well. I don't know how much resources I'm using for this probably quite a bit Yes, sending 10 megabit 11 12 megabit per second I'm not sure what's my GPU is doing have to check. Hopefully we can still do other things Alright, and we are on Twitch as well. So Just because we can Just because there's a too powerful machine that I'm using And we'll start developing a film check the bodycast.com do please do so provide your feedback if The most recent major tool is this EG2 musical version it's showing a seizure If you go in the beginning they can select your channel 1 216 actually level 0 to 16, but you you know what that means if you scroll the way to a window of 100 that should show you the whole The whole recording sample, so I have this hundred seconds in this case on the different channels It's it has a seizure in it That's what it looks like on different channels. That's what it you can also hear what it sounds like on different channels So I think 14 was annoyingly Yeah, one of them is like so I was doing it like during Christmas time So one of them sounded sounded more like an annoying Christmas song, but most of them are key Yeah, this one has something weird there happening there clipping signal It shouldn't distort the sound too much Yeah, that's they're like the calmest ones. We have like seizure onset and the end of the seizure so by default it will Adjust the volume manually at the end of the seizure it should be Quiet yeah, you can barely you can probably barely hear it and when there is a seizure It should be louder It's true to the source the Frequencies and yes, it's on the page. We have to pay electricity as well and It's also showing a frequency spectrum and our things you can do wavelet denoising Yeah, it's doesn't too much difference in this case just changing slightly. There's actually another tool a for this that doesn't have the music Well, and now one with that shows instead of a spectrum. It shows a full spectrum It's tools with heavy. It's a it's loading in the back and I have to And stop doing that and try and do most of the processing on the front end And go by a whoop watch Why sometimes the ads appear on top and sometimes on the bottom, but this should be this not extremely invasive a single Single banner So shouldn't be too bad and if there are no questions or comments About barricades There's a long wall as well to Turn my mic for a second led the robot speak instead of me it turn I track her as well. We did quite a bit of progress with it But we'll just keep testing it. They're not Modified Not today Today we will do the fast logic business on the ECG Yeah, one of the eyes is a bit off. It's been annoying and this is the darkness threshold so it will find That's the bit that tries to find the pupil So you can adjust for your You know for your situation to work better. Yeah, it should be in business Again, let me know If there any questions Jump into the cardio quest the cardio quest is this game That scrolls a ECG waveforms across the screen You already can go and play a Vivid on the main side looks like Where is it? like this and This one you play yourself All alone The this one here the one we currently developing it will be you playing against the machine So this normal ECG the machine already got it correctly Yeah, even with so we had a problem before now. We did a false alarm. It's still false alarming it fixed This text window is nice. I don't know why on the main website The text window is funny This one is much better. It's on the tokenizer tool. We are using it because I'm pretty sure And so the GPT-4 is promising 128,000 tokens But I'm pretty sure there's something wrong and it actually cannot Take that much. So we are on the 2000 we have the index HTML the waveform JavaScript The game logic. What's that stuff? Yeah, by the way, having this 500 response, there's something wrong We've trained to do mathematical expression a mathematical operation on the float and then on type So we have to fix that that should be a quick fix that probably GitHub co-pilot can Quickly Do for us I'm just looking and that's the code The commented out section is what we modified last time. Just trying to see if I can Just get rid of it. I think so This is obviously also reduced the number of tokens in the prompt That line of code was actually limiting the score at minus 50 the human score because we're just sitting there and not using and not actually playing but the game is running and It will just go to negative 50 score and then stay there would not go any lower than that the pot Keeps producing this false alarms. There's two correct rejections as well So if you can monitor this for me, you need to fix this Text as well Actually read that quickly. I'll turn off my mic Unless there's a An actual human who would like to chat. I'm also happy to try and bring you on there as well If you like, otherwise, I'll have to talk to the robot not ideal but That's what we've got ECG Waveform game. ECG Waveform game is an interactive challenge that tests your ability to identify abnormal electric radiogram ECG patterns In this game, you'll be presented with a continuous scrolling display of ECG waveforms on a canvas Your task is to carefully observe the scrolling ECG patterns and quickly identify abnormal segments Abnormal segments include variations in the QRS complex missing P waves absent S waves or no T waves Normal segments will also be present To tag an abnormal segment click on it when it aligns with the cursor However, be cautious not to click on normal segments as this will result in a score deduction Your score increases when you accurately tag an abnormal segment, but decreases when you mistakenly tag a normal segment As you accumulate points the speed of the scrolling waveforms will adjust making the game progressively more challenging Keep an eye on the score display to track your progress and aim for the highest score possible Game rules identify and click on abnormal ECG waveform segments as they scroll across the canvas Avoid clicking on normal ECG waveform segments to prevent score deductions Clicking on an abnormal segment earns your points while clicking on a normal segment reduces points The game speed increases as your score goes up making it more challenging Continuously monitor the score display to track your current score The game ends when you decide to stop or when you reach a specified score goal Aim to achieve the highest score and demonstrate your skill in recognizing abnormal ECG patterns ECG Waveform Analysis Challenge, welcome to the ECG Waveform Analysis Challenge This interactive game offers a unique opportunity to test and enhance your skills in identifying abnormal electrocardiogram ECG patterns In this challenge, you're not just playing alone. You're competing against our advanced robot algorithm designed to analyze ECG waveforms As the waveform scroll across your screen, your task is to identify and tag abnormal segments such as irregular QRS complexes, missing key waves, or absentee waves Be cautious, though, tagging normal segments will affect your score negatively As the game progresses, the waveforms will move faster, increasing the difficulty Keep track of your score and see how well you can do against our robot But that's not all. This challenge also provides a unique learning opportunity By comparing your scores with the robot's analysis, you gain insights into the complexities of ECG interpretation The robot uses a sophisticated fuzzy logic algorithm to evaluate each waveform, offering a high-tech benchmark for your own assessments Whether you're a medical professional, a student, or simply someone interested in biomedical engineering, this game is designed to test your skills and expand your understanding of ECG analysis So, are you ready to take on the challenge and see how you stack up against our robot? Let the game begin Game rules, identify and click on abnormal ECG waveform segments as they scroll across the canvas Avoid clicking on normal ECG waveform segments to prevent score deductions Clicking on an abnormal segment earns you points, while clicking on a normal segment reduces points The game speed increases as your score goes up, making it more challenging Monitor both your score and the robot score to compare performance The game ends when you decide to stop or when you reach a specified score goal Aim to achieve the highest score while learning from the robot's analytical approach ECG Waveform Analysis Game This interactive game is designed to test your skills and identifying abnormal ECG patterns In this challenge, you will be competing against a robot algorithm This robot, programmed in Python, analyzes ECG waveforms using fuzzy logic, but does not have prior knowledge of waveform labels This means it operates solely based on the data it analyzes in real time, just like a human player Your task is to observe the scrolling ECG waveforms generated in JavaScript and identify abnormal segments The complexity lies in distinguishing between normal and abnormal patterns, such as variations in the QIS complex or the absence of specific waves Clicking correctly on an abnormal segment increases your score, but incorrect clicks on normal segments will reduce it The game's pace accelerates as you score more points, adding to the challenge How the analysis works, the ECG waveforms you see on your screen are dynamically generated using JavaScript This part of the code is responsible for creating both normal and abnormal ECG patterns, but it does not label them Hence, when you and the robot algorithm analyze these waveforms, you're both starting from the same base of knowledge The robot's decision-making process is handled by a Python-based fuzzy logic system This system evaluates the waveforms based on several criteria, such as frequency, amplitude, and peak patterns, determine whether a segment is normal or abnormal However, it doesn't receive any direct information or labels about waveforms, its judgments are made solely based on its program analysis parameters This setup ensures a fair comparison between your human analytical skills and the robot's program logic It offers an engaging way to understand ECG interpretation and appreciate the application of fuzzy logic in biomedical analysis Game rules, click on what you identify as abnormal ECG waveform segments Avoid clicking on normal segments to prevent losing points Game points for correctly identified abnormalities, lose points for mistakes The game speed increases with your score Compare your performance with the robot's score Play as long as you like, or set a score goal to end the game Use this game to improve your ECG interpretation skills and understand fuzzy logic analysis Yeah, so obviously it described it in a much better way than I'll ever be able to myself Okay, now we're really at like almost 10,000 tokens Apparently we can go up to 128,000 But I'm pretty sure there's something wrong and it's actually dropped on the actual side We want to be able to test that Now this testing is actually all the output of the fuzzy logic algorithm So we don't really need the nectar prominence but that's okay We have the process data, just pop it in So this is the terminal output when running the game Save that Pop this scene as well, yeah, this turns it into 17,000 tokens Okay, we still can do more, but we will go with this prompt See what it says Alright, let's break down the code and functionality of your ECG game and analysis system Focusing on the biomedical engineering perspective Game overview Purpose, the game, cardio quest, challenges players to identify abnormal ECG patterns It's interactive and educational, targeting skill enhancement in ECG interpretation ECG waveform generation, waveforms, JS The script generates both normal and abnormal ECG waveforms using mathematical functions Variations in the QRS complex, absence of P, S, or T waves are simulated to create abnormal patterns Noise level can be adjusted, adding realism to the waveform interpretation challenge The game displays scrolling ECG waveforms and players click on segments they identify abnormal Score calculation is based on correct and incorrect identifications The game speeds up as the player scores more points This setup tests the player's accuracy and speed in recognizing ECG anomalies, a crucial skill in critical setting Interested in the back-end The game provides a unique blend of learning and assessment It's not just about identifying patterns but also understanding the variability and complexity of ECG waveforms The fuzzy logic comparison adds a layer of advanced analytical benchmarking, offering insights into automated ECG analysis versus human interpretation From a biomedical engineering standpoint, this game is a brilliant tool for understanding ECG waveform analysis, crucial in diagnosing cardiac abnormalities The integration of fuzzy logic demonstrates how computational methods can aid in interpreting biomedical signals, a growing field in medical technology Potential improvements Enhancing the waveform generation algorithm to include more complex abnormalities Incorporating machine learning for more advanced waveform analysis, potentially training a model on real ECG data Conclusion CardioQuest serves as an educational and skill enhancing tool, bridging the gap between theoretical knowledge and practical ECG interpretation skills Its back-end analysis, though simplified compared to clinical ECG machines, gives a glimpse into the complexities of cardiac signal processing and interpretation This project reflects the interdisciplinary nature of biomedical engineering, combining medicine, signal processing and software development A couple of things First of all, we are using the synthetic ECG data We want to make sure that the fuzzy logic algorithm does not have the labels So the waveform is actually being generated in the front-end JavaScript and the fuzzy logic is in the back-end Can you explain how that works? Now, I'll share again, I already shared some of the output in the terminal I'll provide some more of it And we want to go over some of the errors we might need to make adjustment to the strictness of the membership function So this output in the terminal indicates some errors There are actually two errors in it There is one to do with float With the mathematical operation on the float Comparing it to a known type, we need to fix that So can you actually look in the code and suggest a specific suggestion that will remove this error? The other error is that the crisp output cannot be calculated So this is likely because the system is too sparse Check and make sure this set of input values will activate at least one connected term in each antecedent via the current set rules So for that specific input of three positive peaks and zero negative peaks We have an amplitude of 0.5 and our peak sharpness of 0.38 PR interval of 0.3 and RT interval of 0.2 For this process data, we need to make sure one of the fuzzy logic rules is being met So we do not get this error anymore Alright, let's dive into the specifics of your issues Float versus None type comparison error, this This error occurs when you're trying to perform a comparison operation, like less than less than or greater than, between a float and a none type This typically happens if your data processing logic expects a number, float, but instead gets a none, or null, value, which can't be compared directly to a number To resolve this, you need to check where this comparison is happening in your code Look for a line that compares variables or values, where one of them might inadvertently be none Once you locate it, you can add a condition to check if the value is none before proceeding with the comparison For example, python copycode if some underscore variable is not none Hash perform comparison Else Hash handle the none case Crisp output calculation error This error is related to your fuzzy logic system It's saying that the input values provided do not activate any of the rules you have defined in your system This often happens in a fuzzy logic system when the input values do not sufficiently overlap with the defined fuzzy sets, thus leading to no rules being triggered For the specific case of positive underscore peaks, raw, 3, negative underscore peaks, raw, 0, amplitude, raw, 0.5, R underscore peak underscore sharpness, 0.38, PR underscore interval, 0.30375, RT underscore interval Yeah, the GPT-4 is essentially refusing to provide specific code Oops, just canceled the thing by mistake Because I used to click in control C instead of control shift C, so I have to run the application again Okay, now it's running Right, so we have these two errors that we're trying to solve We go, obviously one by one So in Get this one here Why can't find Interior when you put the workspace, it's looking at all the currently opened files Okay, now it's on to it So in process data, nice waveform We have PR interval No Yeah, we have both PR intervals and none But why is it happening to begin with? Yeah, we don't want that to happen Okay, we have a calculate interval function So this one It's checking if the variable is not none If it's not none, it's converted to float And if it is none It assigns none to it If it is none, shall we make it zero? So now in theory at least that the error should go away Question is Why do we get none to begin with? Oh, that's not great Ideally, we want to need this at all Just calculate the intervals, that's it Can we turn the intervals into a float before outputting them before returning? So we still initialize them as none Now obviously we don't like that zero That should get rid of some of the errors Facebook is giving this funny warning for the live stream Supposedly Because it can make a detected music So it detected music and says it might be copyrighted or something It's music that I generate myself So the owner of the original material may review the video to see if it matches the content And it gives me an option to end the live stream or resume But then it's no new viewers will be able to join your stream That's silly Because it can't be copyrighted, can it? Just a silly robot detected music In the video Back to this We still have the other error Let's clear this for a sec From which waveform we get the PR and RT values being none Being zero Yes, generic stuff I want you to actually find where is it happening It's essentially when the negative peaks is Zero To check a fuzzy logic Negative peaks that go all the way from zero To five So why is it a problem? It must be giving me false alarm for one of the waveforms Which is not cool Every time the human scores So it's essentially trying to make it easier for the human Every time you score 50 points it becomes faster So if you're not doing so well The waveforms will start scrolling slower on the screen The robot obviously doesn't care Because it's looking at exactly the same waveform There's even no filtering involved It's obviously not getting the label as well So it doesn't know if it's normal or abnormal wave Interestingly we're getting zeros or the intervals in that case So we have the process data So essentially that's the data coming in to the fuzzy logic algorithm And that's the analysis data So that's the output of the fuzzy logic algorithm And essentially it does this membership functions And they are triangular in this case But it shouldn't matter We should actually check that they overlap I don't know why in this case Well because they didn't find the positive peaks correctly That's interesting too In this case it should be three and one Instead of one and one There are three positive peaks But it's not finding them That's not good That's not good Yeah we don't need that anymore That's for sure Now we're just rounding the values The number of digits after the decimal point Should be fine Yeah we're not currently plotting We don't use matplotlib to plot Because it's a flag application So everything is displayed on the front page But this actually was quite useful Especially when we have the wrong Just test it with no noise quickly The human is at minus 20 points That's why the scroll becomes slower as well Normal not should become a bit faster That was also wrong This one gives three and one Yeah this one still does one and one Three and one is correct Yeah one and one It's not cool Three and one is fine for this one Two and one is correct There was another one that seemed incorrect The one that doesn't have a negative peak One is fine Three and one that's the normal ECG In our case One is okay Oops shouldn't have clicked on this one Became slower I want to check the one that doesn't have the negative peak Obviously the negative peak here should be zero But I don't think it's doing it correctly Yeah this one And I missed it Yeah this one We went over this multiple times In the previous development sessions I thought we fixed the peak detection But it's not doing so well So for the first image The detection of peaks should have been Three positive and one negative It's doing one and one instead The second image is The example in the second image is correct With two positive peaks and one negative But again the third image example is wrong The three positive peaks is correct However there is no negative peak So the negative peak count should have been Zero How do we modify the code If it's thinking this much Something is not quite right Let's address the two issues you're encountering with the ECG signal processing Clear Issue one, comparing float and none type This error occurs because the code attempts to compare a float value with none This happens in the calculate underscore intervals function When either pr underscore interval or rt underscore interval is none You need to ensure that you only perform operations on these variables when they're not none Issue two, incorrect peak detection The incorrect peak detection is likely due to the detect underscore peaks And detect underscore negative underscore peaks functions Not correctly identifying peaks according to the criteria you have For the third image Where you expect to find three positive peaks and zero negative peaks The algorithm is detecting one negative peak that it shouldn't To correct the peak detection You might need to adjust the min underscore distance and prominence underscore value parameters In both the detect underscore peaks and detect underscore negative underscore peaks functions The min underscore distance should be set according to the expected minimum distance between peaks in your ECG data The prominence underscore value is a threshold used to determine the minimum height of a peak If the prominence is set too low The algorithm might detect noise as peaks If it's too high, it might miss smaller peaks For issue one, here's a suggestion to modify the calculate underscore intervals function For issue two, you might need to experiment with different min underscore distance and prominence underscore value settings Here is an example of how you might adjust detect underscore negative underscore peaks You will similarly adjust detect underscore peaks The exact values for min underscore distance and neg underscore prominence underscore factor Would require some experimentation with your data set to find the optimal values that minimize false positives and false negatives Please adapt these suggestions to both detect underscore peaks and detect underscore negative underscore peaks functions as needed And ensure to test thoroughly with a range of ECG data to validate the changes Yes, it's changing how sensitive the peak detector is Two and one is correct Three and one Yeah, this is now correct Yeah, that should have been zero, obviously Yeah, why is the median of waveform so low? Yeah, the negative peak is always one, never goes to zero The normal one Yeah, this one What's wrong with this one? Medium Negative prominence 4.7 I want to see the same waveform with no noise in it Yeah, this one does This is correct It has a negative peaks of zero It's the one we are Even before it had negative peaks of zero The prominence must be too low There's something wrong Should the negative prominence be negative? And here this number should be smaller Because the negative peaks are generally smaller Isn't the negative prominence should be a negative number? Yep What's it thinking about for so long? Clear? This will be The negative underscore prominence in your detect underscore negative underscore peaks function is used as a threshold to determine the significance of negative peaks in the inverted ECG signal This value does not need to be negative because the inversion of the signal, multiplication by minus one, already accounts for the switch in peak direction Let's clarify this, when you invert the ECG signal to detect negative peaks, what was originally a negative peak in the normal ECG signal becomes a positive peak in the inverted signal Therefore, you can use the same find underscore peaks function from skippy, signal, which looks for positive peaks The prominence value should still be positive because it's a measure of how much higher the peak is than its surroundings Regarding the error, crisp output cannot be calculated, this typically means that the fuzzy logic system has received input that does not match any of the fuzzy rules well enough to make a decision This can happen if the input values do not sufficiently activate the membership functions used in your rules To address this, you might need to Review the membership functions and rules in your fuzzy logic system to ensure they cover all expected ranges of input values Adjust the membership function shapes and positions to ensure that the input values fall within the support of at least one membership function for each fuzzy variable It's essential to ensure that for any possible valid input, there's at least one rule that gets triggered It sounds like for certain inputs, particularly when the number of negative peaks is zero, your system does not have a rule that applies This is a common issue in fuzzy logic systems and requires fine tuning of the rules and membership functions If you continue to have issues with the fuzzy system not producing output, you might want to consider using default rules that fire when no other rules do The handle unexpected inputs ought to provide a default, unknown, or, undetermined, output For the peak detection issue, it seems your peak detection logic may be too restrictive or not well suited for all scenarios Given the varied nature of ECG signals, you might need a more adaptive algorithm that can account for the variability in ECG morphology This could involve dynamic thresholding for peak detection that adapts the signal's characteristics, like noise levels, baseline wonder, and T-wave amplitude, or a machine learning approach that can learn the patterns of peaks and troughs from labeled data We need to fix this case It should not show a negative peak count of one It obviously should be zero Here is the relevant code How to fix Yep, what the height is zero there The issue you're encountering with incorrect negative peak detection may be due to the detect underscore negative underscore peaks function, which might not be accurately identifying the negative peaks in the ECG signal The filtering step after peak detection seems to be where the error might occur, particularly this line This line intends to filter out peaks with zero amplitude, but it may also be allowing some peaks that are very close to zero, but not exactly zero due to noise or other signal artifacts To fix the false detection of negative peaks, you could Adjust the neg underscore prominence underscore factor to ensure that only significant inversions are considered as peaks Implement a more robust check for what constitutes a negative peak, perhaps by setting a threshold below which a peak is considered to be zero Here's a potential fix you might consider With this fix, you're adding an amplitude underscore threshold parameter that defines the minimum absolute height a peak must have to be considered significant This should help eliminate detections of peaks that are essentially just noise and not true negative deflections in the ECG waveform Remember to adjust the amplitude underscore threshold according to the typical amplitudes of peaks in your ECG data You may need to fine-tune it based on the noise level and the amplitude of the ECG signal to get accurate peak detection Yeah, that's correct, so why it should be zero So we have positive peaks of three, that should be normal Negative peaks of zero, that's too few Amplitude 0.5 That's medium Our peak sharpness Is the normal EAPR interval and RT intervals in legit This specific case should be covered by the current membership functions And the fuzzy rules The fact that there is zero negative peaks should be covered by a should be labeled as too few I'll just hopefully fix this one It looks like your fuzzy logic system might be encountering an issue Because the inputs are not activating any of the fuzzy sets in your antecedent variables When none of the rules are fired, it's possible to get an error message like the one you're seeing The error message This suggests that for the given inputs, none of the membership functions are getting activated to a degree that contributes to the output Looking at your code, you have defined membership functions such as, too few, for negative underscore peaks that cover from zero to 0.5 If your input for negative underscore peaks is exactly zero, it should at least partially activate, too few, fuzzy set Here are a few steps to troubleshoot and resolve this issue Validate rule activation, ensure that the inputs actually activate the rules as expected You can do this by printing the degree of activation for each rule based on the given inputs Adjust membership functions, if the inputs are not adequately activating the rules, you may need to adjust your membership functions to ensure that they cover the range of inputs you're expecting For example, if you frequently have a negative underscore peaks value of exactly zero, ensure that, too few, membership function is defined such that it will be fully activated with a value of zero Default rule, you might want to add a default rule that gets activated when none of the other rules do, to provide a fallback output This can prevent the system from failing when unexpected input combinations are encountered Debugging output, outprint statements or logging to check the degrees of membership for each fuzzy set given your inputs, and the activation levels of each rule This can help you pinpoint exactly where the issue is occurring Here's an example of how you might modify the code to ensure that, too few, category for negative underscore peaks is activated with an input of zero Using a trapezoidal membership function, trapMF, instead of a triangular one, trimf, allows for a plateau where full membership is achieved, which in this case includes the value zero Remember to ensure that your fuzzy systems rules and membership functions are designed to handle all possible cases of input, especially edge cases like zero negative peaks It's this silly triangular membership functions Can we turn the triangular membership function into a trapezoidal one? Yeah, that's the one, I'm going to keep them off for record Keeping, because we might need to change this in other places as well But now, I expect that problem to go away or come more What did that give? Yeah, and what's the problem? Row number of negative peaks is zero That should be okay, now should be 2.5 Instead of giving me that error, can it provide something more useful? Might as well turn it up to one Oops, made a mistake Yeah, I want to turn a change that triangular membership function into a trapezoidal one Is there an option to keep? Yeah, we won't use control anymore Negative peaks in 5 and 1 And then it overlays with the triangle one With the next one That should give us a negative peak of zero That's your problem We need to check every rule that was met in this case Instead of this error that I'm getting, can I get something more useful? I want to see what was the output I still want to see the output of the fuzzy logic analysis Even though it's giving me this error, how can I do that? The error you're encountering indicates that your fuzzy logic system's rules are not firing Likely because the input values are not activating the fuzzy sets as expected To debug this issue and still get some output that can be useful for physiological analysis You can modify the fuzzy underscore logic underscore analysis function to handle cases when the rules do not fire Here's a way to modify your fuzzy underscore logic underscore analysis function to provide some useful output even when an error occurs Handle exceptions Catch exceptions in the fuzzy underscore logic underscore analysis function to prevent the system from crashing and to provide additional output for debugging Debug information When an error occurs, print out or log the input values and the degree of membership for each fuzzy set This can help you understand why no rules are firing Here is an updated version of your fuzzy underscore logic underscore analysis function with exception handling and debug information In the accept block, debug underscore membership underscore values is a new function that you'll add to calculate and print the degree of membership for each input This can help you diagnose why the rules aren't firing You can further customize the output based on what information is most useful for your analysis This approach ensures you get some useful information out of the system even if an error occurs during the fuzzy logic analysis The only time for me that the github copilot is actually working better than GPT-4 GPT-4 is still thinking Yeah, something's wrong Yeah, I can give it a rest It's as if there's some sort of GPU that's been working too hard or something and it needs a rest So a github copilot looked at the code And yet the rule for the case for the too few negative peaks option is not explicitly covered So the question is, how do we cover the too few options for negative peaks in one of the rules or do we need a new one? Or do we need a new rule just for this case? Probably not To just add it like that, like we have it in default Yeah, the default does consider too few of negative peaks, but it's negated Meaning it applies when negative peaks is not too few Yeah, the default rule is a bit weird, but okay It's currently covered in rule So negative peaks is covered Yeah, it's suggesting a standalone rule just for too few negative peaks Okay, this is not fun, we need a better way of testing this Like a unit test or something Right, well now it's working okay Okay, so we added an extra rule So we currently have one normal rule, abnormal amplitude for the targeting amplitude A potential abnormal targeting sharpness Normal intervals, mixed indicators, whatever that is Just a mix of everything kind of thing Which probably should have been very similar to the default And we added a special one for the case when there is no negative peaks Or when the number is too few So now it seems to work okay Played the game for a bit just for testing purposes as well Does it already did the three false alarms still? So it's still me stabbling Yeah, the normal case, yeah that 0.3 is too close to the border It should be lower It's kind of sitting there on the threshold Check everything with 0.3 in it Because then it's kind of noisy So yeah, this one normal 0.31, 0.49 abnormal Question is, what's the smallest score for an abnormal ACG wave? Yeah, so this one 0.316 is still okay Yeah, once we had some noise That's where the problems begin And yes, that's what we are trying to show But I would have expected my assumption would be That you would need much more noise for it to start making so many mistakes So now it's still sitting in that false alarm of 4 A false alarm is happening when there is a normal wave form, normal ACG But it's actually labeling it as abnormal That's when we get a false alarm there So it's not happening anymore Yeah, now we get a 0.32 So then we get a 0.32 It's just by the noise It threw it off That must be the amplitude of something Everything else was fine Yeah, now a 0.32 0.31, we get a correct rejection But when it's 0.32, we get a false alarm So that's not cool And obviously the more noise you add, the worse it will become Yeah, specifically with the right 0.31 And the false alarm still sitting at 6 And we have larger noise It's doing pretty well 0.31, it's not going 0.32 It's adding even more noise Yeah, 0.315 So as long as there is a normal wave And the score is not above 0.32 We should be fine Still thinking changing all the membership functions To trapezoidal ones It shouldn't really work a bit better Because it's the overlap So say this 0.31, 0.32 I don't want it to be too sensitive I'm not sure which parameter It's actually triggering Giving that abnormalities cool The entire trapezoidal functions should be more robust I need to do all of them Comment this out a few Two, three, four Okay, I understand what it's doing It's doing two trapezoidal And one triangle in between Those should overlap This should be 1, 2 Yes, 0, 1, 2 Yeah, this is not a great overlap between them It should go all the way to 6 It's taking that 5 from there It's kind of funny Yeah, funny how a github copilot works What if we... I was called 3 level With you What are you doing? Was it still going up to... Oh god, silly clues Sorry for the noise Yeah, if I could do the better here So that prompt kind of works But when we do a few Okay It's the same And we have normal That's triangle One is trapezoidal Again I don't know why that's a very specific number That looks like a magic number to me I should get rid of it Because we don't want to fine tune parameters Until the cows come home We want just parameters that make sense So essentially If you had... Like we were asking GPT-4 To be a cardiologist And an expert in fuzzy logic So what would a person An expert like that Make these numbers That's the question Obviously I don't know if there is a person Like that to let me know How do I contact them I suspect Yeah, there might be I don't know Again, I don't have access to the person So that's why I have to use the robot So then a cardiologist A ECG, especially technicians Who label data like this In, I don't know, 5-10 years time Shouldn't complain That Yeah You know what I'm about to say To try to be nice Okay, it's going up to 0.2 That one is the same, the normal case So it shouldn't change When the trapezoidal function Ends with two numbers that are the same It means it's like a trapezoid Abrupt, no slope As opposed to this case Where it's still sloping So that's the strength That's when the membership function Yeah, I should have another tool Explaining like more basic stuff About the fuzzy logic, I'm sure Someone does it on YouTube So this is a bit better, you see The abnormalities go for normal ECG When a bit lower, it used to be 0.3132 or something Now it's 0.3, closer to 0.3 Yeah, 0.29, it's good Let's see if we increase the Yeah, so you could see How changing the membership functions From a triangular to trapezoidal Makes the fuzzy logic algorithm more robust And we get better responses Yeah, but actually Originally we limited the amount of noise there Well, because it wasn't working well Now we can actually go Step noise level Noise level Where is noise level Noise slider It's going max 10 Should we just wrap it up To 100 Because it's doing pretty well Even with, yeah So now it's doing mistakes But if we keep it in the middle What happens if we keep it in the middle We already had one false alarm But would it do more of them? Yes, it will Because that's normal and it labeled it abnormal Because the abnormality score is like 0.7 Crazy No, good Okay, let's make it 50 Default value, say 10 So let's see if this amount of noise Will make any mistakes That's what we want to check That's what we are doing Correct rejection So it's working fine And yeah, what this tool will be showing Is that once you increase the noise The machine will start making more and more mistakes Currently it's working pretty well And make the So if we go back at The slider going from 0 to 50 So what if we make this value 25 So spot On In the middle Yeah And you can go left and right Reduce noise all the way to 0 Or Increase it all the way up to 50 Whatever, you will see it on the screen How the noise is added So it might be doing more testing It might be, not might be It should be publishing this And I don't know if I'll be able to do it today Yeah, it will be nice But I run out of time Yeah, it didn't miss So it wasn't abnormal And it labeled it as normal That's not cool It's still a score of The score is still going up So mostly it's in the green Oops, clicked on You can obviously, not the human That you see the result of the robot If you're looking here, you can cheat And this is actually interesting Yeah, what is cheating It's an interesting point So if you essentially Instead of labeling it like a competition Between human and machine We turn it into a Collaboration, that's right So the So in this case, for example, this much noise The robot is making its decision You can see it straight away It gives you the abnormality score And making a decision That you might, as a human expert You might want to overwrite So that's where we Heading towards So hopefully you'll be able to Try this out yourself very soon In the meantime Go check Byonikeos.com There's a bunch of other interesting tools Let me know what you think I'll finish with some Seizure music We ask the bot to Like a summary thing Ah, it's resting It's doing some crap We I want to also see What's the limit for I'm seriously considering like Stop paying for it, it's making too many of those Something have gone wrong They talk here about laziness Cases where the model doesn't Complete the task returns A maximum of This many tokens and so on and so forth I don't want to read all that It should just work I mean it's something to do with the Implementation of the model See if there's any questions No, there's no questions Someone was asking if this is open source Well, in theory yes Practically my Source control is not There's some Issue Linking visual studio code to GitHub So currently I'm doing some Manual version control But yes, I need to fix it Hopefully If Chajapiti wakes up I mean I can use GitHub co-pilot Yeah, I should fix it Chajapiti is still thinking When wrong Can ask Can you give a summary of the changes That we made and give an overall Overview for this Flask Python application See what it does And still That's giving me some generic stuff anyway Yeah, we'll do a summary of it Ourselves Should be handed to the HTML page I'll see you next time