#### Overview of this book

Machine learning applications are highly automated and self-modifying, and continue to improve over time with minimal human intervention, as they learn from the trained data. To address the complex nature of various real-world data problems, specialized machine learning algorithms have been developed. Through algorithmic and statistical analysis, these models can be leveraged to gain new knowledge from existing data as well. Data Science Algorithms in a Week addresses all problems related to accurate and efficient data classification and prediction. Over the course of seven days, you will be introduced to seven algorithms, along with exercises that will help you understand different aspects of machine learning. You will see how to pre-cluster your data to optimize and classify it for large datasets. This book also guides you in predicting data based on existing trends in your dataset. This book covers algorithms such as k-nearest neighbors, Naive Bayes, decision trees, random forest, k-means, regression, and time-series analysis. By the end of this book, you will understand how to choose machine learning algorithms for clustering, classification, and regression and know which is best suited for your problem
Title Page
Packt Upsell
Contributors
Preface
Free Chapter
Classification Using K-Nearest Neighbors
Time Series Analysis
Python Reference
Statistics
Glossary of Algorithms and Methods in Data Science
Other Books You May Enjoy
Index

## Going shopping – dealing with data inconsistencies

We have the following data about the shopping preferences of our friend, Jane:

 Temperature Rain Shopping Cold None Yes Warm None No Cold Strong Yes Cold None No Warm Strong No Warm None Yes Cold None ?

We would like to find out, using a decision tree, whether Jane would go shopping if the outside temperature was cold with no rain.

### Analysis

Here, we should be careful, as there are instances of the data that have the same values for the same attributes, but different classes; that is, `(cold,none,yes)` and `(cold,none,no)`. The program we made would form the following decision tree:

```    Root
├── [Temperature=Cold]
│    ├──[Rain=None]
│    │    └──[Shopping=Yes]
│    └──[Rain=Strong]
│         └──[Shopping=Yes]
└── [Temperature=Warm]
├──[Rain=None]
│    └──[Shopping=No]
└── [Rain=Strong]
└── [Shopping=No]
```

But at the leaf node `[Rain=None]` with the parent `[Temperature=Cold]`, there are two data samples with...