Data Science that Vacation.
Using Data Science to find where you should take your next vacation.
TJ Stalcup
Lead Mentor @Thinkful
API Evangelist @WealthEngine
Pokemon Master
Englightened Ingress Agent
About Me
***see slide***
Speaker notes
What's your name?
What do you do?
Why are you interested in data science?
About you
Vacationing is fun.
Planning a vacation is not.
Data science can help.
TONIGHT: Data, Vacation, and AI
A text analyzer to take your writeup of your dream vacation and find your best match.
To do that we need 3 things:
A set of vacation reviews (we're going to use hotel reviews)
A text based model for hotel matching
Dream vacation descriptions
What we're building:
The data tonight is a sample of reviews of 1000 hotels collected by Datafinity, available
on Kaggle .
Has information about the hotel (name, location, etc)
Information about the reviewer
Review Text
Rating
here
The Data
Text processing is a slow and involved process
This way we can make a model and perform matching in a relatively quick amount of
time
Why is it slow?
Why only 1000 hotels?
Text data is often referred to as 'unstructured data'.
But what is structure data?
Let's talk about text
Structured Data
NameName EmailEmail Date of SignupDate of Signup
Jas Singh jas@thinkful.com 11/29/2017
... ... ...
This data is nice. It's a table with columns and we know what to
expect.
Unstructured Data
This data is not as nice. It's unpredictable, varying in length and we
don't really know what's what. It just kind of looks like one big thing.
The text above (and this text here) is unstructured data....
The Problems with Unstructured
Unstructured data gives us a few specific problems:
- What is a data point? Is it all just one data point? Is every character
a data point?
- How do we compare data? For things to be similar, how similar do
they have to be?
- What parts of the data matter? Are they all equally important?
An example
This is our test sentence.
So what parts of this sentence matter? What are our data points?
An example
This is our test sentence.
The words matter! And whitespace gives us a way to find them.
An example
This is our test sentence.
ThisThis isis ourour testtest sentence.sentence.
1 1 1 1 1
An example
This is our test sentence.
And this is a second sentence.
ThisThis isis ourour testtest sentence.sentence.
1 1 1 1 1
0 1 0 0 1
We've taken our data and turned it into a table.
We added structure!
Bag of words
This is called a 'bag of words' approach. (It's also called vectorizing.)
We took our initial sentence and created a bag for each word.
Then we went through any following sentences and counted the
number of times we found a word that matched.
It leaves us with a table where each column is a word and rows
are counts
Punctuation and case
However, in looking at our example, something should seem logically
off.
Things like 'This' and 'this' are not considered equal because the
computer doesn't see them as the same. The case is a difference.
This is why you (almost) always preprocess text data.
Back to the example
This is our test sentence. ---> this is our test sentence
And this is a second sentence. ---> and this is a second sentence
thisthis isis ourour testtest sentencesentence
1 1 1 1 1
1 1 0 0 1
Getting rid of case and punctuation makes comparisons easier and
more effective (particularly on small data)
Stop words
But there's more!
Some words don't matter. They don't really tell us anything.
These are called 'stop words'.
Things like 'it', 'is', 'the' are usually just thrown out.
Back to the example
This is our test sentence. ---> this our test sentence
And this is a second sentence. ---> this second sentence
thisthis ourour testtest sentencesentence
1 1 1 1
1 0 0 1
Now we have vectors of the essentials for each sentence.
This is something we can build a model on!This is something we can build a model on!
The Model
Our model is going to be Random Forest.
A random forest is an ensemble of decision trees to predict the most
likely class of an outcome variable.
What does that mean?
Decision Trees
A set of rules that get us to a prediction, in the form of a tree.
You can think of it like a computer building a version of 20
questions.
Decision Trees
Random Forest
A random forest builds a lot of different decision trees and then lets
each one vote.
Our questions will be things like "Contains the word 'beach'" or
"Contains the world 'sun' 2 or more times".
The Notebook
We're going to use a Google hosted Python to build this
model.
http://bit.ly/ideal-vacation
notebook
Shortcomings
Our model has a few weaknesses:
-What about relative frequency?
-What about context?
Relative Frequency
It has a nice beach.
vs
10 pages of text that says the word beach once.
Relative Frequency
Each one scores a 1 for beach.
TFIDF is the answer. It rates each word by its relative frequency.
So the word beach in a ten word sentence counts more than one
mention in 10000 words.
Context
'I hate beaches and love cities'
vs
'I love beaches and hate cities'
Our model would see these as the same thing.
Context - N-Grams
We can get a sense of context with n-grams. Each feature is a set of
words rather than individual words.
So we'd get features like 'love cities' and 'hate beaches' rather than
'love' 'cities' 'hate' 'beaches'.
There's a lot more
This all falls under the banner of Natural Language Processing, or
NLP, one of the largest and most exciting fields of data science and
artificial intelligence.
It's the basis for things like chatbots and Siri and the Turing test itself.
There is a lot of fun to be had in this space.
QA with Alex
Data Science @ Thinkful
Flexible, project-based curriculum to help you become the data
scientist you want to be
You don’t just learn skills, you get to make things
Mentor support from experts in the industry
Also, there's a job guarantee
Learning Mentor
Career MentorProgram Manager
Local Community
You
Unprecedented Support
http://bit.ly/dc-ds-trialhttp://bit.ly/dc-ds-trial
Initial 2-week trial course
Start with Python and Statistics
Unlimited Q&A Sessions
Option to continue with full bootcamp
Financing & scholarships available
Offer valid for tonight onlyOffer valid for tonight only
BenjyBenjy SchechnerSchechner
Education Advisor
Thinkful Two Week Trial

Data Science Your Vacation

  • 1.
    Data Science thatVacation. Using Data Science to find where you should take your next vacation.
  • 2.
    TJ Stalcup Lead Mentor@Thinkful API Evangelist @WealthEngine Pokemon Master Englightened Ingress Agent About Me
  • 3.
  • 4.
    What's your name? Whatdo you do? Why are you interested in data science? About you
  • 5.
    Vacationing is fun. Planninga vacation is not. Data science can help. TONIGHT: Data, Vacation, and AI
  • 6.
    A text analyzerto take your writeup of your dream vacation and find your best match. To do that we need 3 things: A set of vacation reviews (we're going to use hotel reviews) A text based model for hotel matching Dream vacation descriptions What we're building:
  • 7.
    The data tonightis a sample of reviews of 1000 hotels collected by Datafinity, available on Kaggle . Has information about the hotel (name, location, etc) Information about the reviewer Review Text Rating here The Data
  • 8.
    Text processing isa slow and involved process This way we can make a model and perform matching in a relatively quick amount of time Why is it slow? Why only 1000 hotels?
  • 9.
    Text data isoften referred to as 'unstructured data'. But what is structure data? Let's talk about text
  • 10.
    Structured Data NameName EmailEmailDate of SignupDate of Signup Jas Singh jas@thinkful.com 11/29/2017 ... ... ... This data is nice. It's a table with columns and we know what to expect.
  • 11.
    Unstructured Data This datais not as nice. It's unpredictable, varying in length and we don't really know what's what. It just kind of looks like one big thing. The text above (and this text here) is unstructured data....
  • 12.
    The Problems withUnstructured Unstructured data gives us a few specific problems: - What is a data point? Is it all just one data point? Is every character a data point? - How do we compare data? For things to be similar, how similar do they have to be? - What parts of the data matter? Are they all equally important?
  • 13.
    An example This isour test sentence. So what parts of this sentence matter? What are our data points?
  • 14.
    An example This isour test sentence. The words matter! And whitespace gives us a way to find them.
  • 15.
    An example This isour test sentence. ThisThis isis ourour testtest sentence.sentence. 1 1 1 1 1
  • 16.
    An example This isour test sentence. And this is a second sentence. ThisThis isis ourour testtest sentence.sentence. 1 1 1 1 1 0 1 0 0 1 We've taken our data and turned it into a table. We added structure!
  • 17.
    Bag of words Thisis called a 'bag of words' approach. (It's also called vectorizing.) We took our initial sentence and created a bag for each word. Then we went through any following sentences and counted the number of times we found a word that matched. It leaves us with a table where each column is a word and rows are counts
  • 18.
    Punctuation and case However,in looking at our example, something should seem logically off. Things like 'This' and 'this' are not considered equal because the computer doesn't see them as the same. The case is a difference. This is why you (almost) always preprocess text data.
  • 19.
    Back to theexample This is our test sentence. ---> this is our test sentence And this is a second sentence. ---> and this is a second sentence thisthis isis ourour testtest sentencesentence 1 1 1 1 1 1 1 0 0 1 Getting rid of case and punctuation makes comparisons easier and more effective (particularly on small data)
  • 20.
    Stop words But there'smore! Some words don't matter. They don't really tell us anything. These are called 'stop words'. Things like 'it', 'is', 'the' are usually just thrown out.
  • 21.
    Back to theexample This is our test sentence. ---> this our test sentence And this is a second sentence. ---> this second sentence thisthis ourour testtest sentencesentence 1 1 1 1 1 0 0 1 Now we have vectors of the essentials for each sentence. This is something we can build a model on!This is something we can build a model on!
  • 22.
    The Model Our modelis going to be Random Forest. A random forest is an ensemble of decision trees to predict the most likely class of an outcome variable. What does that mean?
  • 23.
    Decision Trees A setof rules that get us to a prediction, in the form of a tree. You can think of it like a computer building a version of 20 questions.
  • 24.
  • 25.
    Random Forest A randomforest builds a lot of different decision trees and then lets each one vote. Our questions will be things like "Contains the word 'beach'" or "Contains the world 'sun' 2 or more times".
  • 26.
    The Notebook We're goingto use a Google hosted Python to build this model. http://bit.ly/ideal-vacation notebook
  • 27.
    Shortcomings Our model hasa few weaknesses: -What about relative frequency? -What about context?
  • 28.
    Relative Frequency It hasa nice beach. vs 10 pages of text that says the word beach once.
  • 29.
    Relative Frequency Each onescores a 1 for beach. TFIDF is the answer. It rates each word by its relative frequency. So the word beach in a ten word sentence counts more than one mention in 10000 words.
  • 30.
    Context 'I hate beachesand love cities' vs 'I love beaches and hate cities' Our model would see these as the same thing.
  • 31.
    Context - N-Grams Wecan get a sense of context with n-grams. Each feature is a set of words rather than individual words. So we'd get features like 'love cities' and 'hate beaches' rather than 'love' 'cities' 'hate' 'beaches'.
  • 32.
    There's a lotmore This all falls under the banner of Natural Language Processing, or NLP, one of the largest and most exciting fields of data science and artificial intelligence. It's the basis for things like chatbots and Siri and the Turing test itself. There is a lot of fun to be had in this space.
  • 33.
  • 34.
    Data Science @Thinkful Flexible, project-based curriculum to help you become the data scientist you want to be You don’t just learn skills, you get to make things Mentor support from experts in the industry Also, there's a job guarantee
  • 35.
    Learning Mentor Career MentorProgramManager Local Community You Unprecedented Support
  • 36.
    http://bit.ly/dc-ds-trialhttp://bit.ly/dc-ds-trial Initial 2-week trialcourse Start with Python and Statistics Unlimited Q&A Sessions Option to continue with full bootcamp Financing & scholarships available Offer valid for tonight onlyOffer valid for tonight only BenjyBenjy SchechnerSchechner Education Advisor Thinkful Two Week Trial