Data Mining with Python (Working draft)
Data Mining with Python (Working draft)
Finn A?rup Nielsen
November 29, 2017
Contents
Contents
i
List of Figures
vii
List of Tables
ix
1 Introduction
1.1 Other introductions to Python? . . . . . . . . . . .
1.2 Why Python for data mining? . . . . . . . . . . . .
1.3 Why not Python for data mining? . . . . . . . . .
1.4 Components of the Python language and software
1.5 Developing and running Python . . . . . . . . . . .
1.5.1 Python, pypy, IPython . . . . . . . . . . . .
1.5.2 Jupyter Notebook . . . . . . . . . . . . . .
1.5.3 Python 2 vs. Python 3 . . . . . . . . . . . .
1.5.4 Editing . . . . . . . . . . . . . . . . . . . .
1.5.5 Python in the cloud . . . . . . . . . . . . .
1.5.6 Running Python in the browser . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
3
5
5
6
6
7
7
7
2 Python
2.1 Basics . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Datatypes . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1 Booleans (bool) . . . . . . . . . . . . . . . .
2.2.2 Numbers (int, float, complex and Decimal)
2.2.3 Strings (str) . . . . . . . . . . . . . . . . . .
2.2.4 Dictionaries (dict) . . . . . . . . . . . . . . .
2.2.5 Dates and times . . . . . . . . . . . . . . . .
2.2.6 Enumeration . . . . . . . . . . . . . . . . . .
2.2.7 Other containers classes . . . . . . . . . . . .
2.3 Functions and arguments . . . . . . . . . . . . . . .
2.3.1 Anonymous functions with lambdas . . . . .
2.3.2 Optional function arguments . . . . . . . . .
2.4 Object-oriented programming . . . . . . . . . . . . .
2.4.1 Objects as functions . . . . . . . . . . . . . .
2.5 Modules and import . . . . . . . . . . . . . . . . . .
2.5.1 Submodules . . . . . . . . . . . . . . . . . . .
2.5.2 Globbing import . . . . . . . . . . . . . . . .
2.5.3 Coping with Python 2/3 incompatibility . . .
2.6 Persistency . . . . . . . . . . . . . . . . . . . . . . .
2.6.1 Pickle and JSON . . . . . . . . . . . . . . . .
2.6.2 SQL . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
9
10
11
11
12
13
13
14
14
14
15
17
17
18
19
19
20
20
21
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
22
22
23
23
24
25
25
27
28
29
29
29
29
30
31
31
3 Python for data mining
3.1 Numpy . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Plotting . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 3D plotting . . . . . . . . . . . . . . . . . .
3.2.2 Real-time plotting . . . . . . . . . . . . . .
3.2.3 Plotting for the Web . . . . . . . . . . . . .
3.3 Pandas . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Pandas data types . . . . . . . . . . . . . .
3.3.2 Pandas indexing . . . . . . . . . . . . . . .
3.3.3 Pandas joining, merging and concatenations
3.3.4 Simple statistics . . . . . . . . . . . . . . .
3.4 SciPy . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 scipy.linalg . . . . . . . . . . . . . . . .
3.4.2 Fourier transform with scipy.fftpack . .
3.5 Statsmodels . . . . . . . . . . . . . . . . . . . . . .
3.6 Sympy . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 Machine learning . . . . . . . . . . . . . . . . . . .
3.7.1 Scikit-learn . . . . . . . . . . . . . . . . . .
3.8 Text mining . . . . . . . . . . . . . . . . . . . . . .
3.8.1 Regular expressions . . . . . . . . . . . . .
3.8.2 Extracting from webpages . . . . . . . . . .
3.8.3 NLTK . . . . . . . . . . . . . . . . . . . . .
3.8.4 Tokenization and part-of-speech tagging . .
3.8.5 Language detection . . . . . . . . . . . . . .
3.8.6 Sentiment analysis . . . . . . . . . . . . . .
3.9 Network mining . . . . . . . . . . . . . . . . . . . .
3.10 Miscellaneous issues . . . . . . . . . . . . . . . . .
3.10.1 Lazy computation . . . . . . . . . . . . . .
3.11 Testing data mining code . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
33
34
34
36
39
40
40
42
43
44
44
44
45
47
47
49
50
50
51
52
53
54
54
55
56
56
57
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.6.3 NoSQL . . . . . . . . . . . . . . . . . . .
Documentation . . . . . . . . . . . . . . . . . . .
Testing . . . . . . . . . . . . . . . . . . . . . . .
2.8.1 Testing for type . . . . . . . . . . . . . . .
2.8.2 Zero-one-some testing . . . . . . . . . . .
2.8.3 Test layout and test discovery . . . . . . .
2.8.4 Test coverage . . . . . . . . . . . . . . . .
2.8.5 Testing in different environments . . . . .
Profiling . . . . . . . . . . . . . . . . . . . . . . .
Coding style . . . . . . . . . . . . . . . . . . . . .
2.10.1 Where is private and public? . . . . . .
Command-line interface scripting . . . . . . . . .
2.11.1 Distinguishing between module and script
2.11.2 Argument parsing . . . . . . . . . . . . .
2.11.3 Exit status . . . . . . . . . . . . . . . . .
Debugging . . . . . . . . . . . . . . . . . . . . . .
2.12.1 Logging . . . . . . . . . . . . . . . . . . .
Advices . . . . . . . . . . . . . . . . . . . . . . .
4 Case: Pure Python matrix library
59
4.1 Code listing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
ii
5 Case: Pima data set
5.1 Problem description and objectives
5.2 Descriptive statistics and plotting .
5.3 Statistical tests . . . . . . . . . . .
5.4 Predicting diabetes type . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Case: Data mining a database
6.1 Problem description and objectives . . . . . . . . .
6.2 Reading the data . . . . . . . . . . . . . . . . . . .
6.3 Graphical overview on the connections between the
6.4 Statistics on the number of tracks sold . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
66
67
69
. . . .
. . . .
tables
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
71
71
72
74
.
.
.
.
.
.
.
.
.
.
.
.
7 Case: Twitter information diffusion
75
7.1 Problem description and objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.2 Building a news classifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8 Case: Big data
77
8.1 Problem description and objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.2 Stream processing of JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.2.1 Stream processing of JSON Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Bibliography
81
Index
85
iii
iv
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- using jupyter notebook for db2 administration
- jovial notebook based astronomical data analysis in the cloud
- jupyter at nersc
- course notebook source is installed introduction to
- mathematics in python
- jupyter notebook exploratory data analysis 2020 21 csc 5741
- jupyter formerly ipython notebook
- from glowscript to jupyter and beyond
- what s wrong with computational notebooks pain points
- jupyterdocumentation