My personal blog#

I’m Chang (Chris) Liu from Lynbrook High School in San Jose, California.

My projects (every card is clickable!)#

Physics
\[\begin{split} \newcommand{\V}[1]{\mathbf{#1}} \newcommand{\pop}[2]{\frac{\partial #1}{\partial #2}} \begin{align*} \nabla\cdot\V{E} &= \frac{\rho}{\epsilon_0} \\ \nabla\times\V{E} &= -\pop{\V{B}}{t} \\ \nabla\cdot\V{B} &= 0 \\ \nabla\times\V{B} &= \mu_0\V{J} + \mu_0\epsilon_0\pop{\V{E}}{t} \end{align*} \end{split}\]
https://acciochris.github.io/physics-notes
Programming & Machine Learning
def evaluate(name, y_test, y_pred):
    print(f"Result for {name}:")
    print(f"precision: {precision_score(y_test, y_pred)}")
    print(f"recall: {recall_score(y_test, y_pred)}")
    print(f"f1: {f1_score(y_test, y_pred)}")
    print(f"matthews: {matthews_corrcoef(y_test, y_pred)}")
    plt.close()
    confusion = ConfusionMatrixDisplay.from_predictions(y_test, y_pred)
    confusion.plot()
https://github.com/acciochris/machine-learning

Contact me#

Blog posts#

You can find a list of my posts down below or by visiting Posts. You can also subscribe to the atom feed at Chris Liu's Blog Feed.

  • 11 October - Java Data Types

    I am studying the Java programming language in AP CS A. Here are a few quirks I noticed about data types in the language.

  • 21 July - Engineering Montage

    Over the past few weeks, I have been working on a technical project that requires a ton of (computer) engineering. I think it’s time to talk about what I learned from it.

  • 07 June - Robot Tour Recap

    Now that the 2024 Science Olympiad season has concluded, I think it is a good time to talk a little bit more about Robot Tour (I didn’t mention it when I posted this, but, yes, it is a scioly event).

  • 07 June - First Thoughts on Tcl

    About a week ago, I have started learning the Tcl programming language for an upcoming project. Here are my first thoughts on it.

  • 20 December - Reed-Solomon Error Correction – Decoding

    Reed-Solomon codes are an especially powerful tool for efficient multi-bit error detection and correction. In my last post, I discussed how to encode messages. In this post, I will discuss how to correct errors and decode the message.

  • 09 December - Reed-Solomon Error Correction – Encoding

    Reed-Solomon codes are an especially powerful tool for efficient multi-bit error detection and correction. The following is my understanding of the algorithm after reading my professor’s presentation and correcting several erroneous details.

  • 11 November - How to Make a Robot Car Go in a Straight Line

    After messing around with my micropython-based esp8266 chip, I’ve finally got to the point where I can make the robot go in a straight line.

  • 15 October - Cableless Development with Micropython Server

    Ever tired of having to connect your microcontroller to your laptop with a cable? Wifi-able chips and remote servers come to the rescue.

  • 11 October - Numbered Musical Notation Dataset – Component Extraction 1

    How to detect objects (extract components)? This is a crucial problem when I’m trying to extract musical notation from typesetted images of numbered musical notation sheet music.

  • 16 September - MIPS Assembly Part 1: Stacks and Subroutines

    Having recently registered for a Computer Architechture & Organization course, I decided to take some time to start writing MIPS assembly code. However, no sooner had I started writing my first program than I encountered an obstacle: how to properly manipulate the stack and call subroutines.

  • 03 September - Transformers (physics)

    I’ve figured out how transformers (as in physics) work!

  • 25 August - First Week of School

    A ton of things happened this week.

  • 19 August - Titanic Resurrected

    Recently, I have been playing around with a competition on Kaggle named Spaceship Titanic.

  • 19 August - Matrix Calculus Demystified

    Despite having been a machine learning practitioner for a considerable period of time, I have never truly dived into the mathematical details of deep neural networks, until this morning. This morning I went over a paper [1] on matrix calculus and discovered that the maths of deep learning isn’t so challenging after all! (Well, so long as you understand the basics of calculus and linear algebra).

  • 10 August - K-Means clustering: Implmentation and Analysis

    After reading about the section K-Means Clustering in the book, I decided to implement naive (vanilla) K-Means clustering by myself.

  • 07 August - Enlarging one’s vocabulary

    Prompted to make haste to enlarge my vocabulary by memorizing words listed in the book Hot Words For SAT I, I decided to compose a blog post on the topic of the efficacy of different measures taken with the purpose of improving one’s vocabulary. In an attempt to ameliorate my own barbarian mind devoid of sensitivity to “advanced” vocabulary, I further resolved to complete this article with the aid of the exact same set of words. Acknowledging that this will undoubtedly make this post arcane, bombastic and pompous, I hope the arguments presented in this post will at least be less monstrous than their grammatical and linguistic formulations.

  • 06 August - Sentiment analysis with a SQLite database (…and TF-IDF)

    Today I’m just starting Chapter 8: Sentiment Analysis in the book. But this time I’m not just busy scribbling down notes or copying code verbatim into my Python REPL. I decided to experiment with SQLite databases! (as you can probably infer from the title) Hopefully, I will be able to practice both my ML and my DB skills 😅.

  • 05 August - Hello, blog!

    This is my first post!