Posts

CST438 - Week 2

CST438 - Week 2 React is something I've wanted to learn for a while, so I can start making proper websites for a portfolio and for my capstone project. React allows ways to store UI components to reuse them in the future. It requires more thought put into the website, instead of jumping straight into HTML/CSS, but makes them more secure and less error-prone for websites that handle big data challenges like social media. For lab 3, I wasn't able to update the customer name and password. I believe it was because the customer variable included the customer id, so a PUT cannot be made, but I'm unsure why that works for EditOrder.

CST438 - Week 1

CST438 Week 1      New course! This is Software Engineering, which is learning about best practices regarding code maintenance and sustainability. This focuses mainly on the design of a project and how it can be optimized over its lifetime. It is the understanding that projects with longer lifespans will be handled much differently than short-term ones, and knowing what trade-offs are needed.     At first, I was thinking this course was more programming focused, but I'm glad to learn that its design-focused. I do not have much experience with maintaining code, so this course will be very helpful for future projects I have in mind (including the capstone project!)

CST383 - Week 7

CST383 - Week 7 The final week of this course! This week, I learned about how to create logistic regression models, as well as understanding overfitting and how to reduce the effects of it. We also learned how to encode categorical variables. One-hot encoding is what I've used for a number of homework problems. It does not create new columns unlike using dummy variables, and encodes two-value nominal variables with 1 or 0. One example is "sex", where a one-hot encoded version would be recreating the column as "sex_female" with 1 == female and 0 == male. For ordinal variables, replace the variables with increasing order, like "spicy". This can be convert the possible values of "spicy" into dummy variables "spicy_none", "spicy_mild", "spicy_hot", and "spicy_extra". We can encode as many columns as needed, as long as the number of rows >= the number of columns squared. Logistic regression models are cre...

CST383 - Week 6

CST383 Week 6 This week, we are learning about how to optimize machine learning algorithms. Hyperparameters are values that are not able to be learned by the algorithm, so must be set before the training of data begins. To find the best values for hyperparameters, tuning tests on the existing data needs to be ran. With hyperparameter tuning, we can use three strategies: grid search, random search, or weighted KNN. Grid search goes through every combination in a data set to find the best value for the hyperparameters. Random search quickly calculates a best value from the minimum amount of tests, but can be inaccurate. Weighted KNN makes inverse distance of points matter more than the mode of the nearest # neighbors. The steps for hyperparameter tuning best practices is:  Test/train split Cross validation with training data Train best model on full training set Compute test score with test set For supervised learning, classification predicts a category while regression predicts a qu...

CST383 - Week 5

Image
CST383 - Week 5 This week we learned about how to prepare data for intro machine learning techniques. This week was rather difficult for me to understand how to properly create KNN classifiers, so I went online to find some supplementary material to help me. One resource that made it a lot easier for me to understand was this video:  The homework was good practice for me to work with, but I'll have to practice more to get the hang of creating classifiers! 

CST383 - Week 4

CST383 - Week 4      This week, we worked more on plotting data, this time creating more complicated plots involving two or more variables. We used pd.crosstab() to create grouped bar plots for two variables, while for three or more we use sns.barplot() .       I had some trouble understanding why some of my plots are not plotting at all (loading infinitely) while others are able to plot. I tried a few ways to plot them, including normalizing the data, using different aggregations like sum() , and limiting the amount of data that was plotted using top 10 values [:10] . I will have to review the homework once it is graded to understand how best to work through these problems.     I also learned more about P notation for joint probability: use "and", or a ",", or a "^". Such as, what is the probability for a and b: P(a and b), or P(a, b), or P(a ^ b). For OR, use "or" or a "v".       For conditional probabilities like "for ...

CST383 - Week 3

CST383 - Week 3      This week we learned more about how to work in Colab/Jupyter notebook. I personally used Jupyter because I thought self-hosted material is more appropriate for my use case. I think this notebook style of coding is very useful, because I can test only a single block of code at a time rather than the full file.      We started to learn how to code Pyplot visualizations of data, which is very nice. I am a visual learner so these exercises were very helpful for me to understand these concepts better. I didn't have much difficulty understanding these concepts to complete the homework, though I know I will need to read further into graphing two continuous variables in the coming weeks. A few things stood out to me to remember: Use a semicolon ( ; ) after the last plotting statement or use plt.show() at the end of the code block to prevent matplotlib from automatically adding text before a graph. Use plt.xlabel() or plt.ylabel() to label th...