Welcome to my first weekly progress update! There's so much to learn and plenty of things I want to try, yet time is limited. Regardless, here we are, I'm fully committed to embracing the learn-as-I-go approach.
This week, I dabbled in a simple scikit-learn implementation on a dataset, which I have been using for exploring the concept of Classification throughout the week. Specifically, I delved into the underlying math behind the cost function of logistic regression and the application of gradient descent for both logistic and linear regression models.
I'm grateful for taking Differential Calculus in high school 11 years ago. It's quite nostalgic seeing the dy/dx format.
Later in the week, I watched the GTC keynote and even wrote a separate blog post about my thoughts on it. In summary, I made some adjustments to my self-taught roadmap. Additionally, I completed week 4 of CS50, focusing on sorting algorithms, namely, Selection sort, Bubble Sort and Merge Sort. Coding in C was humbling as always, and I found it challenging to translate tasks into pseudo-code while working on the ranked pairs election model. Here's a cycle function used to prevent preferences between candidates become circular using the stack method which worked perfectly after hours of debugging my previous recursion method, with a little help from ChatGPT and StackOverflow.
bool cycle(int winner, int loser)
{
// create an array to stored checked comparison
bool checked[candidate_count];
for (int i = 0; i < candidate_count; i++)
{
//false by default until it's looped through
checked[i] = false;
}
//DFS implementation
int stack[MAX];
int top = -1;
//push loser onto the stack which then is now considered checked
stack[++top] = loser;
checked[loser] = true;
//until it's empty
while (top >= 0)
{
int popped = stack[top--];
if (popped == winner)
{
return true;
}
// loop through the rest so the while loop will have an exit
for (int i = 0; i < candidate_count; i++)
{
if (locked[popped][i] && !checked[i])
{
checked[i] = true;
stack[++top] = i;
}
}
}
return false;
}
Finally, I got a glimpse of TensorFlow, which I assume will be covered later in the ML course. It appears to be the tool for handling more complex ML tasks. As far as I'm concerned I'll need it to create a face recognition program, which I've been considering for a larger project. I've added a scikit-learn crash course to my schedule for the upcoming week, so I'll likely do the same for learning TensorFlow.
That wraps up my first weekly progress update! Since I started blogging, it's been a fantastic journey. I never realized how useful this personal library could be for tracking my progress and ideas. It's been an incredible experience, and I can't wait to see where I'll be next week!