{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Prologue to Data Science

" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "def print_resource(txt,url,img): return HTML('

%s

' % (url,txt,img,))\n", "print_resource(\"Prologue to Data Science\",'#','datasciencestarterkit2.jpg')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> It is a capital mistake to theorize before one has data. Insensibly one begins to twist facts to suit theories, instead of theories to suit facts.\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "But once you _do_ have the data, what is one supposed to do then? In this _prologue to Data Science_ the most difficult part of starting something has been taken care of : knowing _where_ to start. The prologue is an annotated list of some of the best materials covering the pre-requisite knowledge of stats, code and data you will need before doing data science. This guide was prepared for the benefit of [Symbol & Key](https://www.facebook.com/groups/symbolkey/), Hong Kong's Data Science community, but it is also functions as the pre-work for General Assembly's [Data Science course](http://ga.datascience.hk/). The Symbol & Key talk series is aimed at (aspirational) data practioners and the topics can therefore sometimes be moderately technical. By following this guide however, you should feel equiped with enough stats, code, and data knowledge to participate in the community and set out on your journey towards data science mastery." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Science Checklist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The modern Data Scientist doesn't always need to know the mathematics that go on behind the scenes, but they _do_ need to be intimately familiar with the characteristics of the various machine learning algorithms - e.g. which types of data they are suitable for, how to measure their accuracy, and how to interpret their output. That kind of knowledge is often only gained with experience, but there are ways to speed up the process. To optimise your learning, you need to have a balanced checklist. A _Data Science Checklist_ that makes sure that you are _sensitive_ to the issues and challenges from the following three domains." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nIkxBQaSAdPdrGEH6kKqe4DCx+3Nh1EK6K+KuQ37dp+6IIoVDQUEkALp7NxwaHCYAYwlO46cUUMtb\nA8EuM2vyWpWIHJWCgkhAda93GAIMPuRjCFDTy+dzNZ3RBTQf8nGQ9CjBwcM/r3UFIsGkoCASAc65\nUv4SJAaT7vNQdMhH8SG/d6RHAJKH/ZoiHQzeDALaiigSfgoKIiIikpG2ZYmIiEhGCgoiIiKSkYKC\niIiIZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiI\nZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSg\nICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIi\nIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkpKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkp\nKIiIiEhGCgoiIiKSkYKCiIiIZKSgICIiIhkpKIiIiEhGCgoiIiKS0f8DnWXrmndDYeMAAAAASUVO\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import IPython\n", "import pandas as pd\n", "import seaborn as sns\n", "from matplotlib_venn import venn3, venn3_circles\n", "from matplotlib import pyplot as plt\n", "\n", "# Utility Functions\n", "def table(df, print_index=True, print_header=True):\n", " return IPython.display.display(HTML(df.to_html(index=print_index, header=print_header).replace('','
')))\n", "\n", "def resource_table(ref):\n", " return table(df.ix[df.Ref == ref, 2:],False,True)\n", "\n", "# Generate a Venn Diagram\n", "clist = ['red','blue','black']\n", "subsets = (1, 1, 1, 1, 1, 1, 1)\n", "data = {\n", " '100':'Stats',\n", " '010':'Code',\n", " '001':'Data',\n", " '111':'Data Science \\n Checklist'\n", "}\n", "\n", "with sns.plotting_context(\"poster\"):\n", " v = venn3(subsets, set_colors=clist, alpha=0.4)\n", " c = venn3_circles(subsets, alpha=0)\n", "\n", " for k in v.id2idx.keys():\n", " v.get_label_by_id(k).set_text('')\n", " \n", " for k, p in data.iteritems():\n", " v.get_label_by_id(k).set_text(p)\n", " v.get_patch_by_id('001').set_alpha(.6)\n", " \n", " for label in data.iterkeys():\n", " v.get_label_by_id(label).set_alpha(1)\n", " v.get_label_by_id(label).set_color('white')\n", " v.get_label_by_id(label).set_fontweight(700)\n", " v.get_label_by_id(label).set_fontsize(20)\n", " v.get_label_by_id(label).set_fontname('Roboto')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To _design_ and _assess_ the validity of your data models, you'll at least need a **stats** vocabulary equivalent to one offered by college-level course. The materials referenced in this guide provide a succinct refresher. But as you'll also want to _implement_ and _iterate_ over your data models once you've designed them, you also need some **code** skills. Data Scientists often work with a scripting language with strong machine learning libraries. _R_ is a common contender, but for the purposes of this introduction _Python_ is used to teach you the basics of computational thinking. Finally, the raw input of your models never quite comes in the format or as clean as you want it so you will need the **data** skills to wrangle the data into submission." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Checklist" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "cols = ['Category','Ref','Media Type','Resource Depth','Level Up To','Style','HK$']\n", "understanding_rank = ['bare essentials', 'conceptual', 'OK foundation', 'practical foundation','solid foundation']\n", "df = pd.read_csv('resources.csv', names=cols)\n", "df['Level Up To'] = pd.Categorical(df['Level Up To'], categories=understanding_rank, ordered=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If only there were a one-size-fits-all checklist that we could all step through and be on our way again. Unfortunately we all come to the checklist with different levels of experience and different learning needs. This checklist therefore provides a _differentiated_ list of resources. For example, if you're already a programmer, there's a quick guide to the Python syntax. But if you're new to programming entirely, it's wise to spend some more time with some more expository materials. Whatever your skill level may be, pick at least **one item from each section** and add them to your checklist. \n", "\n", "#### Resource Guide\n", "\n", "Each resource is indicated by a banner image. Click on it to be taken to the actual resource, or receive further instructions on how to get it. There's a summary table under each banner, giving you a snapshot of the resource to help you evaluate the right one for you. It contains the following details:\n", "\n", "##### Media Type\n", "How is the information being delivered? Books, videos or through interactives coding execises? \n", "\n", "##### Resource Depth\n", "Expressed in pages or time, this should give you an idea of how deeply the resource covers the materials, or rather an estimate of how much time you'll have to invest to cover it fully.\n", "\n", "##### Level Up To\n", "What can you expect to know once you've checked off that resource?\n", "\n", "* **Bare Essentials** : The depth you'd get from reading a summary on the topic at high-school level. You _need_ to get way beyond this level before you can start thinking about data science, but it gives you pointers on some of the basic priciples. \n", "* **OK Foundation** : Get to this level, and whenever you'll move on to a more advanced resource / project / class the topic will be familiar to you.\n", "* **Practical Foundation** : Obtain a working level understanding of the concepts, without too much worry about any considerations beyond getting the job done.\n", "* **Solid Foundation** : Beyond just giving you a practical foundation, this resource also presents the context in the wider context of the field and explains why certain issues matter.\n", "\n", "##### Style\n", "We've all got different learning styles, so this is my best attempt to characterise the materials. Either by pointing out how the content is presented, e.g. conversational, or who it's intended audience is, i.e. tech-literate.\n", "\n", "##### HK$\n", "Most resources are free, but when they aren't I've expressed their retail price in HK Dollars. Whichever book you decide to buy, they are all worth their respective sticker prices.\n", "\n", "##### Checklist Requirement\n", "Many of these resources go beyond the introductory level. Hence I've indicated which sections / units you are advised to complete to get the foundations down and satisfy the checklist requirement." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "print '\\n'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Code\n", "\n", "Programming is making the computer do what you can’t be bothered or do not have a long enough life span to do yourself. Most analysis is crunched by programs and now most beautiful data visuals are drawn by them. While `R` is the de facto standard for performing statistical analysis, it has quite a high learning curve and there are other areas of data science for which it is not well suited. To avoid learning a new language for a specific problem domain, we will use `Python` and its numerous statistical libraries. If you are coming from `R`, you will find that much of its functionality can be replicated with `NumPy`, `SciPy`, `matplotlib`, and `pandas`.\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Google's Python Course

" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource(\"Google's Python Course\",'https://developers.google.com/edu/python/','gdb.JPG')" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
videos / notes / excercises1 daysolid foundationtech literateFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('google-python')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Up to _[Python Dict and File](https://developers.google.com/edu/python/dict-files)_ & _[Exercise: wordcount.py](https://developers.google.com/edu/python/exercises/basic)_\n", "\n", "#### Summary\n", "\n", "This is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to introduce Python to people who have just a little programming experience. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Python Language Essentials

" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource(\"Python Language Essentials\",\n", " 'https://copy.com/6D3JLxGXWaPQGU2H','Python_natalensis_Smith_1840.jpg')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
book50 p.practical foundationreferenceFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('pydata-python')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "The full appendix to _[Python for Data Analysis](http://shop.oreilly.com/product/0636920023784.do)_\n", "\n", "#### Summary\n", "\n", "This 50 page appendix to 'Python for Data Analysis' is not intended to be an exhaustive introduction to the Python language but rather a biased, no-frills overview of features which are used repeatedly in Data Science projects. For new Python programmers, it is recommended that you supplement this with the official [Python tutorial](http://docs.python.org) and potentially one of the many excellent (and much longer) books on general purpose Python programming." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

CodeAcademy

" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('CodeAcademy','http://www.codecademy.com/en/tracks/python','codecademy.png')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
interactive lessons~ 9 hoursOK foundationhand-holdingFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('codecademy-python')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Up until Codecademy's [exam statistics](http://www.codecademy.com/courses/python-intermediate-en-7mgOa/0/1) unit\n", "\n", "#### Summary\n", "\n", "CodeAcademy is a free website with tutorials to teach users rudimentary programming. Its Python course is aimed at non-programmers and will slowly take you through various programming concepts. The course is split up in teaching and practice units so you'll also learn why certain techniques are useful. Remember that Codecademy also provides an excellent [glossary](http://www.codecademy.com/glossary/python) of concepts and techniques you'll likely employ in your adventures.\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Python Practice Book

" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('Python Practice Book','http://anandology.com/python-practice-book/index.html','PythonPracticeBook.jpg')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
online reference / exercises~ 7 hoursOK foundationreferenceFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('practicebook-python')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Chapters [1. Getting Started](http://anandology.com/python-practice-book/getting-started.html) and [2. Working with Data](http://anandology.com/python-practice-book/working-with-data.html), also read [ A Plan for Spam by Paul Graham](http://paulgraham.com/spam.html) which describes a method of detecting spam using probability of occurrence of a word in spam.\n", "\n", "#### Summary\n", "\n", "This book is prepared from the training notes of Anand Chitipothu. Good presentation, stays on topic with lot's of little excercises to check comprehension." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

General Assembly

" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('General Assembly','https://generalassemb.ly/education?topic=8','gads.png')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
workshop150 minbare essentialsinteractive400
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('ga-python')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "The introductory course is run once every month in Hong Kong. Sign up through [General Assembly](https://generalassemb.ly/education/intro-to-python/hong-kong/12635).\n", "\n", "Although if you are new to programming, you need to supplement this item with another Python entry on your checklist before you're ready to start doing Data Science.\n", "\n", "#### Summary\n", "\n", "This workshop explores Python's place in the scientific ecosystem, and how the language, with several readily-available open-source libraries, can serve as a powerful tool for data analysis. Designed as a stand-alone introduction to the data science aspects of Python, this class is also a recommended refresher for students planning to enroll in General Assembly's upcoming Data Science course." ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "print '\\n'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Stats" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Statistics is perhaps the start point of data science. For most questions in the world we have neither measured every phenomenon nor asked every person what they think, instead we have a small recorded subset of conversations and measurements. Statistics helps us understand what we can, and as importantly cannot reasonably learn from that smaller group." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Think Stats: Statistics for Programmers

" ], "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('Think Stats: Statistics for Programmers','http://www.greenteapress.com/thinkstats/index.html','think_stats.png')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
book3 hourspractical foundationprogrammer orientedFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('think-stats')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "0. Preface (8 mins)\n", "1. Statistical Thinking for Programmers (14 mins)\n", "2. Descriptive Statistics (19 mins)\n", "3. Cumulative Distribution Functions (16 mins)\n", "4. Continuous Distributions (23 mins)\n", "5. Probability (23 mins)\n", "\n", "\n", "#### Summary \n", "\n", "_Think Stats_ is an introduction to Probability and Statistics for people who have some exposure to python. It emphasizes simple techniques you can use to explore real data sets and answer interesting questions. Readers are encouraged to work on a project with real datasets.\n", "\n", "Because it uses a programming language, it covers data analysis from beginning to end: viewing data, calculating descriptive statistics, identifying outliers, describing data using the distributions (and explaining what the distributions really mean!). Going through this small book, the goal is understanding and using statistics, not just learning statistics." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Statistics in a Nutshell, 2nd Edition

" ], "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'Statistics in a Nutshell, 2nd Edition'\n", "url = 'http://shop.oreilly.com/product/0636920023074.do'\n", "img = 'nutshell.jpg'\n", "print_resource(title,url,img)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
book190 p.solid foundationtext book240
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('nutshell-stats')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "1. Basic Concepts of Measurement\n", "2. Probability [**Optional**]\n", "3. Inferential Statistics\n", "4. Descriptive Statistics and Graphic Displays\n", "5. Categorical Data\n", "6. The t-Test\n", "7. The Pearson Correlation Coefficient\n", "\n", "#### Summary \n", "\n", "_Statistics in a Nutshell_ is a clear and concise introduction and reference for anyone new to the subject, and especially those who want to apply this powerful tool to real problems, this is a most useful book. Perhapps not so much an introduction to statistics but rather as a tool for those who know there is a procedure that will really help them solve a present problem, but can't remember what it was nor exactly how to use it." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Naked Statistics

" ], "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'Naked Statistics'\n", "url = 'http://www.amazon.com/Naked-Statistics-Stripping-Dread-Data-ebook/dp/B007Q6XLF2'\n", "img = 'naked.jpg'\n", "print_resource(title,url,img)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
book200 p.solid foundationanecdotal80
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('naked-stats')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "1. What's the Point \n", "2. Descriptive Stats \n", "3. Deceptive Description \n", "4. Correlation \n", "5. Basic Probability & The Monty Hall Problem\n", "6. Problems with Probability \n", "7. The Importance of Data \n", "8. The Central Limit Theorem \n", "9. Inference \n", "\n", "#### Summary \n", "\n", "Charles Wheelan's Naked Statistics is an insightful book laced with college-style humor as indicated by the soft porn book cover. Read this book if you want to understand the concepts behind statistics without having to mine a text book. The book is a quick read at only 250 pages, much of it skimmable. It is especially valuable for digital analytics professionals and marketing executives who want to understand more about data science predictions which are essentially statistically-based \"guesstimates\". " ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Metacademy

" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'Metacademy'\n", "url = 'https://www.metacademy.org/graphs/concepts/expectation_and_variance#focus=expectation_and_variance&mode=learn'\n", "img = 'metacademy.png'\n", "print_resource(title,url,img)\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
meta-reference7 Hourssolid foundationsystematicFree/$
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('metacademy-stats')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Sample items from Metacademy's Learning Plan. `Probability` and `Random Variables` are prerequisite topics prior to picking up `Expectation and Variance`. Review as is necessary for your level of understanding.\n", "\n", "#### Summary \n", "\n", "Metacademy is built around an interconnected web of concepts, each one annotated with a short description, a set of learning goals, a (very rough) time estimate, and pointers to learning resources. The concepts are arranged in a prerequisite graph, which is used to generate a learning plan for a concept. It's pretty fantastic, and a much more elaborate implementation of the idea this checklist was built on. " ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

School of Data

" ], "text/plain": [ "" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'School of Data'\n", "url = 'http://schoolofdata.org/handbook/courses/the-math-you-need-to-start/'\n", "img = 'SCODAbadges.png'\n", "print_resource(title,url,img)\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
blog article90 minsbare essentialshand-holdingFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('school-of-data')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Read the full article. Since it only convers the bare essentials, it is recommended that you follow up this item with another item from the stats section.\n", "\n", "#### Summary \n", "\n", "Math seems to be a scary thing for many people. If you tend to get scared by thinking about numbers and what to do with them, this item is for you. It claims to \"tame the beast and show you how much you can do – with counting, adding, and dividing numbers\"." ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n" ] } ], "source": [ "print '\\n'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas is a Python library for doing data analysis. It's really fast and lets you do exploratory work incredibly quickly. You can imagine pandas being the tool which holds your data. The better you know how to merge in new data and ask for a particualr subset of data, the simpler it will be for you to bring in more evidence to your dataset and answer more specific question about your data.\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Pandas Cookbook

" ], "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'Pandas Cookbook'\n", "url = 'https://github.com/jvns/pandas-cookbook'\n", "img = 'cookbook.png'\n", "print_resource(title,url,img)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
notebooks / exercises2 hourspractical foundationcode demoFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('cookbook-pandas')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "0. **A quick tour of the IPython Notebook** - Shows off IPython's awesome tab completion and magic functions.\n", "1. **Reading from a CSV** - Reading your data into pandas is pretty much the easiest thing. Even when the encoding is wrong!\n", "2. **Selecting data** - It's not totally obvious how to select data from a pandas dataframe. Here I explain the basics (how to take slices and get columns)\n", "3. **More selecting data** - Here we get into serious slicing and dicing and learn how to filter dataframes in complicated ways, really fast.\n", "4. **groupby and aggregate** - The groupby/aggregate is seriously my favorite thing about pandas and I use it all the time. You should probably read this.\n", "\n", "#### Summary \n", "\n", "The goal of this cookbook is to give you some concrete examples for getting started with pandas. The docs are really comprehensive. However, I've often had people tell me that they have some trouble getting started, so these are examples with real-world data, and all the bugs and weirdness that that entails." ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Learn Pandes

" ], "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "title = 'Learn Pandes'\n", "url = 'https://bitbucket.org/hrojas/learn-pandas'\n", "img = 'learn.png'\n", "print_resource(title,url,img)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
notebooks4 hoursolid foundationcode demoFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('learn-pandas')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "1. Babynames\n", "2. Babynames Redux\n", "3. Customer Data\n", "4. Back to Basics\n", "5. Stack & Unstack\n", "6. Groupby\n", "\n", "#### Summary \n", "\n", "A series of simple notebooks showcasing how to do data analysis with pandas based on a motivating examples of finding baby name popularity and customer counts." ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Python for Data Analysis

" ], "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('Python for Data Analysis','http://shop.oreilly.com/product/0636920023784.do','pydata.png')" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
book90 p.solid foundationreference150
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('pydata-pandas')" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "#### Checklist Requirement\n", "\n", "* Chapter 1 : Preliminaries\n", "* Chapter 2 : Introductory Example\n", "* Chapter 5 : Getting Started with Pandas\n", "\n", "#### Summary\n", "\n", "Python for Data Analysis is concerned with the nuts and bolts of manipulating, processing, cleaning, and crunching data in Python. It is also a practical, modern introduction to scientific computing in Python, tailored for data-intensive applications. This is a book about the parts of the Python language and libraries you’ll need to effectively solve a broad set of data analysis problems." ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

10 Min to Pandas

" ], "text/plain": [ "" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('10 Min to Pandas','http://pandas.pydata.org/pandas-docs/stable/10min.html#min','10mintopandas.png')" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Media TypeResource DepthLevel Up ToStyleHK$
overview1 hourconceptualhighlight featuresFree
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "resource_table('10min-pandas')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Checklist Requirement\n", "\n", "Just gives you an idea of what's possible with `pandas` but it won't teach you how to do it. So follow this item up with another one from the data category.\n", "\n", "#### Summary\n", "\n", "Shows off what `pandas` can do." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Resources for Further Study" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Upon strengthening your knowledge base in both Python and Statistics, you'll be ready to embark on your journey to become a Data Scientist. [General Assembly's Data Science](https://generalassemb.ly/education/data-science) course picks up where this prologue ends. It first offers a chance to clarify anything that wasn't clear from the prologue. The instructor then sets off on a 11-week tour to develop the student's programming ability and knowledge of statistical methods. The course provides an in-depth overview of the most popular machine learning algorithms, and culminates in an indivudual data science project. \n", "\n", "The course curriculum was developed in-house by General Assembly, but any further study of Data Science benefits from having these two books handy for reference.\n", "\n", "_Building Machine Learning system with Python_ shows you exactly how to find patterns through raw data. The book starts by brushing up on your Python ML knowledge and introducing libraries, and then moves on to more serious projects on datasets, Modelling, Recommendations, improving recommendations through examples and sailing through sound and image processing in detail." ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Building Machine Learning Systems

" ], "text/plain": [ "" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('Building Machine Learning Systems','http://shop.oreilly.com/product/9781782161400.do', 'building_machine_learning_python.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Python for Data Analysis_ is concerned with the nuts and bolts of manipulating, processing, cleaning, and crunching data in Python. It is also a practical, modern introduction to scientific computing in Python, tailored for data-intensive applications. It was authored by the lead developer of the pandas package that's been discussed here, so acts as an insider's guide to everything pandas." ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "

Python for Data Analysis

" ], "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print_resource('Python for Data Analysis','http://shop.oreilly.com/product/0636920023784.do','pydata.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With sophisticated analytics, cool new technologies, lean learning principles and agile delivery methods, data science is an exciting, emerging field to join.\n", "\n", "Please reach out if you have questions about anything or need help!\n", "\n", "All the best,\n", "\n", "**Mart van de Ven**" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", "TOGGLE CODE" ], "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "HTML('''\n", " \n", "TOGGLE CODE''')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "HTML('''\n", "\n", "\n", "\n", "''')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }