Machine learning represents a key evolution in the fields of computer science, data analysis, software engineering, and artificial intelligence. It has quickly become industry's preferred way to make sense of the staggering volume of data our modern world produces. Machine learning engineers build programs that dynamically perform the analyses that data scientists used to perform manually. These programs can “learn” based on millions of experiences, all rigorously and numerically defined. Machine learning is literally everywhere, and is often at work even when we don’t realize it. Google Translate, Siri, and Facebook News Feeds are just a few popular examples of machine learning’s omnipresence. Machine learning is impacting so many critical industries, including healthcare, education, finance, robotics, artificial intelligence, astronomy, and more. The ability to develop machines and systems that automatically improve, puts machine learning at the absolute forefront of virtually any field that relies on data. - Machine learning is at the forefront of incredible new innovations in several fields. Healthcare, education, astronomy, finance, robotics, and more are all being influenced by new developments in machine learning. - The goal of this Nanodegree program is to provide students the foundation required to start participating in this exciting new field. - Throughout this program, students will learn and ultimately master the same tools and technologies that experts in the field are currently using.
The **Machine Learning Engineer Nanodegree program** will equip students with key skills, including data analysis and artificial intelligence, which will prepare them to fill roles with companies seeking machine learning experts (or to introduce machine learning techniques to their organizations). Many experts in this field go on to create new businesses as well, leveraging the vast capabilities of machine learning. Program graduates will be able to: - Analyze the class and complexity of a given problem, and identify an appropriate algorithm and/or tools to apply towards solving it (e.g. gesture recognition, robot control). - Design an intelligent system that can act on the basis of input data towards optimizing some desired goal metric, with minimal supervision from a human. - Analyze the performance of an intelligent algorithm / system and present key metrics (such as accuracy, recall, computing time, etc. as appropriate) in an easy-to-understand and visually appealing form Handle the entire machine learning pipeline, from data to system: - Gather, clean, and process large data sets to prepare them for analysis - Develop multiple models to describe the data in those sets, validate those models, and compare those models according to standard metrics - Convert the data model into a live system that can process and reach conclusions on real data - Optimize the system based on real-world constraints, such as desired accuracy, efficiency, resource availability, and real-time responsiveness - Deploy the system in a live environment, such as an autonomous car, a recommender system, or a personal assistant
Prior to entering the Machine Learning Engineer Nanodegree program, the student should have the following knowledge:
- **Intermediate Python programming knowledge**, of the sort gained through the Introduction to Programming Nanodegree, other introductory programming courses or programs, or additional real-world software development experience. Including:
- Strings, numbers, and variables
- Statements, operators, and expressions
- Lists, tuples, and dictionaries
- Conditions, loops
- Procedures, objects, modules, and libraries
- Troubleshooting and debugging
- Research & documentation
- Problem solving
- Algorithms and data structures
- **Intermediate statistical knowledge**, of the sort gained through any of Udacity’s introductory statistics courses. Including: - Populations, samples - Mean, median, mode - Standard error - Variation, standard deviations - Normal distribution - Precision and accuracy
- **Intermediate calculus and linear algebra mastery**, addressed in the Linear Algebra Refresher Course, including: - Derivatives - Integrals - Series expansions - Matrix operations through eigenvectors and eigenvalues ***We have compiled additional resources for preparation here.***
In this project, you will create decision functions that attempt to predict survival outcomes from the 1912 Titanic disaster based on each passenger’s features, such as sex and age. You will start with a simple algorithm and increase its complexity until you are able to accurately predict the outcomes for at least 80% of the passengers in the provided data. This project will introduce you to some of the concepts of machine learning as you start the Nanodegree program.
The Boston housing market is highly competitive, and you want to be the best real estate agent in the area. To compete with your peers, you decide to leverage a few basic machine learning concepts to assist you and a client with finding the best selling price for their home. Luckily, you’ve come across the Boston Housing dataset which contains aggregated data on various features for houses in Greater Boston communities, including the median value of homes for each of those areas. Your task is to build an optimal model based on a statistical analysis with the tools available. This model will then used to estimate the best selling price for your client’s home.
As education has grown to rely more and more on technology, more and more data is available for examination and prediction. Logs of student activities, grades, interactions with teachers and fellow students, and more are now available in real time. Educators are after new ways to predict success and failure early enough to stage effective interventions, as well as to identify the effectiveness of different interventions. Toward that end, your goal is to model the factors that predict how likely a student is to pass their high school final exam.
Most of the data one collects doesn’t necessarily fit into nice, labeled categories. Many times not only is data not labeled, but categories are unknown! In this project we will take unstructured data, and then attempt to understand the patterns and natural categories that the data fits into. First you’ll learn about methods that are useful for dealing with data without labels, then you’ll apply this to a dataset of your choice, learning what natural categories sit inside it.
A smartcab is a self-driving car from the not-so-distant future that ferries people from one arbitrary location to another. In this project, you will use reinforcement learning to train a smartcab how to drive.
In this capstone project, you will leverage what you’ve learned throughout the Nanodegree program to solve a problem of your choice by applying machine learning algorithms and techniques. You will first define the problem you want to solve and investigate potential solutions and performance metrics. Next, you will analyze the problem through visualizations and data exploration to have a better understanding of what algorithms and features are appropriate for solving it. You will then implement your algorithms and metrics of choice, documenting the preprocessing, refinement, and postprocessing steps along the way. Afterwards, you will collect results about the performance of the models used, visualize significant quantities, and validate/justify these values. Finally, you will construct conclusions about your results, and discuss whether your implementation adequately solves the problem.