By Camille D., Age 17

This article will focus on a method data scientists and programmers use to make data easier to explore, visualize, and interpret data, called principal component analysis (PCA). The explanations in this article assume some background in linear algebra and statistics.

PCA is based on dimensionality reduction: “the process of reducing the number of random variables under consideration by obtaining a set of principal variables,” in other words, transforming a large dataset into a smaller one without extracting too much key information. This process is considered expensive for machine learning algorithms; a little accuracy must be traded for simplicity. Minimizing this cost is part of the job for PCA.

The first step of PCA is standardization, the process that is the least mathematically involved. Standardization takes care of the variances within the initial variables, specifically with regards to their ranges. For example, the value of one variable may lie within the range of 0 to 10, and the value of another within the range of 0 to 1. The variable whose possible value lies between 0 and 10 will carry a greater weight over the second variable, leading to biased results. Mathematically, this can be addressed by subtracting the dataset’s mean from the value of the variable and dividing this result by the set’s standard deviation.

After standardization is performed, the values of each variable will all be within the same range.

Note that standardization is different from normalization in descriptive statistics. Normalization rescales the values into a range from 0 to 1, while standardization rescales the dataset to have a mean of 0 and a standard deviation of 1. Normalization is performed with the following equation:

In almost any case, of course, this will yield a value smaller than 1.

The second step, covariance matrix computation, is where things unfortunately begin to get more complicated. We first must understand the definition of covariance: “a measure of how much two random variables vary together.”

 

**Covariance differs from correlation in that correlation describes how strongly two variables are related, while covariance indicates the extent to which two random variables change with one another. The values of covariance lie between -∞ and ∞, while the values of correlation lie between -1 and 1. Correlations can be obtained only when the data is standardized.

Covariance matrix computation aims to investigate how the variables in the input dataset are related to one another. This is important because it helps detect redundant information that may come from a high correlation between two elements. We compute a covariance matrix to determine these correlations. The covariance matrix is an nn matrix, where nis the number of dimensions, that has entries of all possible covariances within the dataset. For example, for a two dimensional dataset with entries x, y, the covariance matrix is as follows:

A couple notes:

  • Cov(x,x)=Var(x), or the variance of the initial variable.
  • The Cov()operator is commutative, so Cov(x,y)=Cov(y,x), so the upper and lower triangular portions of the matrix are equal.

 

The covariance matrix is simply an organization that lists the correlations between all possible pairs of variables. The sign of the value of the covariance is what tells us about the correlations between elements. If the covariance is positive, then the two variables are directly correlated. If the covariance is negative, the relationship between the two variables is an inverse correlation.

The next step in PCA is actually identifying the principal components by computing the eigenvectors and eigenvalues of the covariance matrix. However many principal components are produced from the dataset should be equal to the amount of dimensions in the set. Principal components are “combinations” or “mixtures” of the initial variables, and are constructed such that each of them are uncorrelated and as much information from the variability initial variables as possible is stored in the first component, and the succeeding components account for the remaining information, as shown in the example plot below for an 8-dimensional dataset:

This form helps significantly with dimensionality reduction because it eliminates components with little to no information while still retaining the information that describes the key relationships within the data. Consider the dataset below:

The direction first principal component line represents the direction of the highest variability in the data. Since the variability is the largest in the first component, the information captured by the first component is also the largest. It’s the line in which the projection of the points onto the line is the most spread out. This line maximizes the average of the squared distances from the projected points to the origin. The direction of the second principal component line should be orthogonal in order for the principal components to be completely uncorrelated.

We continue to calculate principal components n times, where n is the original number of values in the dataset.

Going back to eigenvectors and eigenvalues, here are a couple preliminary notes about eigenvectors and eigenvalues:

  • Every eigenvector has its own corresponding eigenvalue.
  • The number of eigenvectors and corresponding eigenvalues is equal to the number of dimensions/variables in the data.
  • For a tutorial on how to calculate the eigenvalues and eigenvectors of a matrix: https://www.scss.tcd.ie/~dahyotr/CS1BA1/SolutionEigen.pdf.

 

The eigenvectors of the covariance matrix give the directions of the principal component axes, and the eigenvalues are coefficients for the eigenvectors, and give the scalar amount of variance within each PC. The PCs in order of significance can be obtained by ranking the eigenvalues for each eigenvector from highest to lowest. To get the percentages of the variance carried by each PC, divide each of eigenvalue by the sum of all eigenvalues.

Next, we have to determine whether we want to keep some of the lesser components (the ones with low eigenvalues). We form a matrix called the feature vector with the eigenvectors of the components we do keep. This demonstrates the concept of dimensionality reduction since we are subtracting from the initial amount of principal components we had, which is equal to the dimension of the original dataset.

Lastly, we use our feature vector to restructure our dataset in a sense. We want to put our data in terms of the axes given by the principal components instead of the original axes. We can do this pretty easily by multiplying the transpose of the feature vector by the transpose of the original dataset.

 

Not everyone is perfect, including our friendly neighborhood video game developers, who sometimes don’t catch the programming errors in a game during test plays before it’s released to the public. Programming is hard, and these glitches can result in some seriously funny and downright inexplicable occurrences. Here are our favorite glitches from video games that were all due to programming errors:

1. Madden NFL 15’s “Tiny Man”

This glitch resulted in a Browns linebacker being turned into a Thumbelina version of himself, but with all the speed, strength, and agility of his original size. The game creators rolled with the glitch, though, and even kept the mini player model after fixing the problem.

2. Big Rigs

The game itself is notorious for glitches; one of which is when a big 18-wheeler zaps itself through a bridge, hugs a mountain, and then speeds up to an unmentionable speed before crashing the game entirely.

3. The Sims games

Earlier versions of the game were known to glitch out, from smoking body parts to vanishing furniture. One of the most recent glitches that sparked an array of giggles is the “monster baby,” in which a baby character is only a flesh-colored Picasso collage.

4. Pokémon Red / Blue / Yellow’s “MissingNo. Trick”

This “Pokémon” was used in a training video, to help teach you how to catch a Pokémon. After talking to the Old Man, who will so wonderfully teach you the catching ways, you’ll run into a wild “Missingno,” which is a nameless Pokemon glitch that can either duplicate items or delete your entire saved game — it was a 50-50 chance.

5. Super Smash Brothers Melee’s Master Hand

It took eight years of thinking that it was impossible to play as the infamous Master Hand, but then the glitch was found!

6. Pokémon Red / Blue / Yellow’s Mew Finding

That’s right, you can catch an actual Mew with this glitch, with no extra mods or special work on your part.

7. Tiger Woods PGA Tour ’08

There is a specific glitch in this game in which Woods walks on water to get a better shot. It got so much attention, that EA Games had to address it publicly.

There are many glitches in the video game world, because it’s very complex to make them and oversee every single aspect of it once it’s been released. Sometimes, but glitches are frustrating, but most times, they’re just fun. What other glitches have you experienced? Let us know in the comments!

Shopping for a pre-built computer isn’t something you’d like to do on a Sunday afternoon — between the price, what you want in a PC, and all the extra things that don’t come with it, it’s probably more of a hassle than what it’s worth. Unfortunately, computers are a big part of our life, and we need them. Luckily, you can always build your own PC! Is the very idea of it scaring you? Well, it shouldn’t, because as long as you can follow instructions and know how to use a screwdriver or other small tools, then you’re pretty much qualified to build one. Still not convinced? Well, here are six reasons why you should build your own PC:

  1. It’s cheaper.

Buying the parts you need separately and assembling them yourself is only going to cost you a fraction of what it would cost you to buy a pre-built computer. With computers you buy in a store, you get the basic, what everyone needs kind of package deal. When you build your own PC, you can customize it with whatever programs you might want.

  1. It’s a special skill development.

Not everyone can say, “Hey, you like that PC? I build it.” A skill like this would lend a hand in other things that involve building or electronics, and it even opens a new door for a type of employment — a PC fixer-upper.

  1. You are your own tech person.

Now you won’t have to wait to hear back from someone who claims to know what the problem is without looking at the computer; you can fix it yourself. Not only that, but you can replace the exact part that needs it, rather than ship your entire computer off to someone else and go without your PC for a week or two.

  1. You’ll get longer warranties.

Store-bought computers typically come with a one-year warranty policy, and then after that, that’s it. When you build your own, however, the parts come with longer warranties — usually two or more years. It saves your money in the long run when replacing parts.

  1. Building your own PC will help hone those problem-solving skills.

You are more than likely going to encounter a problem or obstacle or two during the building process, and will have to learn how to get around them in your own creative way. It also offers you a chance to really dig down into research and learn all you can about the subject.

  1. It’s fun!

It’s a new things for you to do — and to conquer; it will take time and patience, but it’s not impossible to do. Who knows? It could be your next favorite hobby.

There are many, many other benefits to building your own computer. Can you think of a few? Let us know!

Now more than ever, coding is popping up in schools; from elementary to high school, students are being introduced to the world of coding and what all it takes. If you’ve ever told yourself, “I’d love to learn coding, but I’m no good at math,” then you’re in luck, because coding can actually help improve your math skills!

Coding can help kids visualize abstract concepts. If you or your child has an issue with math, or following along with the algorithms and problems, that’s okay, because coding doesn’t throw numbers and variables at you, it gives you a set of sequences that can lead up to the answer; sort of like a puzzle or a quest in a video game. A lot of programs that teach coding will give the student visuals to go along with whatever sequence they’re learning; coding is equal parts visual, repetitive, and hands-on learning.

Coding helps students apply mathematical functions to real-world problems. No more cartfulls of watermelons, or trains arriving at stations; they can use the math skills they learn in the classroom to create things like phone apps or games.

Coding is a sequence. As said above, to get to one place while coding, you need to complete the set task first. It is a motivational reward for students to get where they need to go, and a lot like a game. Most of the time, kids don’t even realize they’re using math to do certain tasks.

Coding makes math in general fun! Just like any game used to teach mathematics, this takes the stress off of learning number sequences or other techniques.

So if you’re worried about “not being good at math,” but love the idea of creating something like an app or a game, or just the idea of coding, then give it a try; the only thing stopping you is you!

Studying can be hard. No, scratch that; studying can be downright impossible, especially if you’re trying to balance your life with other essential things like work, social gatherings, sleeping, eating, breathing — just to name a few. School gets in the way of a lot of things, but that doesn’t make it a bad time. Studying is supposed to be a wonderful tool to keep grades and spirits high, but oftentimes it’s seen as grueling, a nuisance, and just plain unenjoyable. The good news is, it doesn’t have to be that way! Here are four fun ways to study:

#1. Rewards!

One of the biggest tricks while studying is to keep a reward system in place; once you reach a specific goal that you’ve set.for yourself, the reward is all yours! You can use a piece of candy for every x-amount of pages read, playtime with your pet, a moment to work on your art — the options are limitless! The only thing you need to be wary of is the amount of time you spend on these rewards; allocate yourself no more than ten minutes to avoid never going back to your studying ever again.

#2. Association!

If you’re having a hard time remembering things, try to associate whatever you’re learning about. For example: say you’re trying to remember what exactly photosynthesis is, and you automatically associate it with that one Spongebob episode. That’s okay! Your brain will connect the two and you’ll know exactly what you need to when you read the word. Or maybe you need to remember when the Vietnam War ended (1975), you can think of the song “A Change of Heart” by The 1975.

#3. Be colorful!

Change things up and use colored pencils, markers, stickers, fancy colored paper — whatever draws your attention to the important parts. Your brain is hardwired to recall changes in color like that, and you’ll mentally file it away for later use. Why do you think highlighters are so vibrant?

#4. Learn everything!

Utilize every single resource you have for a certain topic. Read the notes and the textbook, Google articles or blog posts, watch videos, look in forums; get as much knowledge as you can and it’ll be the easiest study session you’ve ever had!

There are so many different ways to study, and these might seem fun to you, or they might not; everyone is different. What would you add?

Computers are a big part of everyday life, and they can’t really be avoided — especially in school or the workplace. This post is being written on a computer, and you might be reading it on a monitor or laptop as well. With these machines being so impactful in our day to day functions, we need to make sure that the technology doesn’t run away from us; so here are six basic keyboard shortcuts for nearly any computer:

1.) Ctrl + Alt + a.

Press these keys on your keyboard all relatively at the same time, and this will highlight all of the text in the window that’s open, whether it be in a word processor or a web page. If you are using an Apple product, such as an iMac or MacBook, then the shortcut is simply “command + a”.

2.) Ctrl + Alt + c.

This will copy the text that you previously selected. It’s usually more convenient for quick quote transfers, or when using a track pad on a laptop, since they are touchy. On the macOS (Apple laptop or desktop hardware), “command + c” will get you the same result. These shortcuts copy the text, rather than take the original from its source.

3.) Ctrl + alt + v.

This is the “paste” option, which allows you to place a duplicate of the text you have either copied or cut from another window. The original formatting is usually the same, meaning it will most likely look exactly like the other, but sometimes programs don’t support that. “command + v” for Mac.

4.) Ctrl + shift + n.

This shortcut works on both Windows and Mac (“command” instead of “ctrl”) users, and will take you to something called an “incognito” window. The purpose of the incognito window is essentially privacy; it won’t save search history, won’t save cookies (which are pieces of information stored in your web browser from certain websites, which, in turn, help generate ads and suggested websites based on your past visits), and it won’t remember information entered on private forms, such as applications of profile information.

5.) Ctrl/Cmd + plus/minus keys.

This will make for a more comfortable reading or inspection of a photo on any website! You have the ability to go up to 500% magnification, which is just like looking at the logo of a website, but blown up by a lot. If you want to go back to the default setting (100%), then just hit ctrl/cmd + 0, and it’ll take you right there.

6.) Ctrl + alt + t.

This open a new tab in your web browser; command + t on macOS. If you want to alternate between one or more tabs in a window without using a mouse or track pad, then Ctrl/Cmd + number (1-9) will take you to the first, second, third, and so on tabs. The number nine will always take you to the last tab, though, no matter how many you may have open.

Coding is everything in the 21st century. From the Instagram app on your phone to the intricacies of your work laptop, it all uses a string of code. Numbers and letters all piled into a specific order can run an entire interface of computers. It is a wild thought. But knowing coding can prove to be a career unlike any other. There are jobs popping up at every new company for coders. There is a need for them in nearly every field from medicine to gaming. If you have the skills to be a coder, these careers are surely right up your alley.

Software/Web Developer

This is probably the field with the vastest array of jobs for coders. You can make anywhere from $50,000 a year to north of $100,000 to create software for companies.

Engineering

Knowing coding is not the easiest thing. So engineering new computers can be for you. With a little extra training, your skills could go a long way.

Database Administrators

Database administrator tend to a large set of information on many different levels. If you can analyze an issue and be a fast problem solver while still using your coding ability, this job is for you.

Computer Analyst

Analysts of computer systems usually merge the gap between the business side of a company and the IT side of the company so that people can understand it. Breaking down the coding from IT and transforming into something a business man understands.

Software Quality Engineer

This is an important job at technology based companies. Someone has to assure that everything is running smoothly. Continuing the effort of the software developer you tend to that software and make it the best it can be.

Business Intelligence

This can be military based or company based. The business intelligence analyst would dissect all the inner workings of the company’s technology and grab information that can help the technology move forward.

Computer Programming

This is the most obvious for a skilled coder. Someone has to do the dirty work and create the programs behind the technology. If you are creative and intelligent, this field may be for you.

Networking Administrator

Coding is loosely needed in this field, but will always help. Networking is huge in today’s online world. Knowing the way around the web and its inner workings can give you the upper hand.

No matter what field you choose, coding is a huge need in our world. Use it to your advantage, and lock up a career that pays well, and keeps you doing what you enjoy.

Computers, coding, and how the internet works can seem like confusing concepts for many people. There is much to learn about the roles each person has in creating code — but what a front rnd developer does is a good place to start. We sometimes think of the internet as this overwhelmingly complicated place, but it can be simplified. With a basis of knowledge, it is possible to understand what is going on behind the scenes every time you go online.

Now, in the simplest terms, a front end developer deals with the beginning of a person’s experience on a browser. For example, say you open up Google Chrome on your laptop, everything visually that you can see is made by a front end developer. The Google logo, the tabs for image search, the coding that delivers you through the internet to a different website, etc.; this is all the handy work of the front end. They are responsible for the look and feel of every site you click on. The main task of a front end developer is to create interaction and a user experience that will keep them intrigued. Most browsers or individual sites are not boring. This is on purpose. It catches the users’ senses. Don’t get confused though, a web designer is the person that orchestrates how a website looks to our eye. However, without the front end coding, there would be no website. From the top; a front end developer creates coding that enables the website designer to create a beautiful, but usable site.

Some companies are now beginning to use “responsive” front end developers. So, the original use for the developer was fixed, meaning that the site would get developed and that was all the user would ever see. But in today’s world, people want more. Companies began tailoring browsers to the users. By adding extra coding, the user can adapt their own way of using it, making it easier for them to understand. The developer wants to create a website where there is a mix of functionality and speed. It should be easy to use for anyone but also fast so that the user experience is as pleasurable as possible.

The job of a front end developer is not an easy one. Since they are coding, the developer has to be extremely tech savvy. But they can’t only be good technically, as the developer has to be creative as well. They are helping the web designer create a website that keeps users coming back time and time again.

Staying motivated can be hard, especially for someone living a multitask life between school, sports, work, volunteering, or any other resume-builder. The truth is, life sort of requires you to live chaotically if you want to achieve your goals and dreams. It’s understandable that there are days when all you really want to do is lay in bed with a family size bag of chips and binge watch something that isn’t even good; everyone’s been there. The problem starts when you can’t pull yourself out of that comfortable spot and get everything you need done. When projects fall behind, so does your mental and physical health.

So, how does one stay motivated?

Write yourself inspirational messages on colorful sticky notes, and place them around the areas that you visit every day — your refrigerator in your kitchen, your bathroom mirror, on the wall above your bed, on doors, etc. The colors will draw your attention, and the notes themselves will give you the right boost for the right moments.

Meditation is also a good way to gather your thoughts after a lazy day, or even when you’re just not feeling up to doing what needs done that day.

It might sound cheesy, but meditation will help you organize your mind and realize what emotions might be tying you to your bed. The mind is a wondrous thing, and taking a second to just get lost in it, alone in a quiet room, is one of the healthiest things you can do when you’re not motivated to work or read or write.

Create a playlist that amps you up!

Are there songs that really speak to you, or get your blood flowing? Then those should be in that playlist. Don’t pick songs that are too emotional or slow — you need your brain to tell you to get up and go. Music has a crazy way of effecting people, so give it a try! You might be surprised.

Be open about how you’re feeling with one or two people.

Lack of motivation is often times associated with other feelings, like not wanting to write a paper because, deep down, you have no confidence in your chosen topic, or not wanting to clean your room because you know you’re going to find things in there that will make you nostalgic — stuff like that. Getting deep into the root of the no motivation crisis will help change a lot of attitudes towards certain tasks; it’s usually not just “being lazy”, but rather feeling some type of way about something related to the task that keeps you from being your best, motivated you.