书中提到的一些资源网站:
- 补充材料(代码示例、IPython notebook 等)可以在https://github.com/amueller/introduction_to_ml_with_python 下载。
- scikit-learn 包含许多目前最先进的机器学习算法,每个算法都有详细的文档(http://scikit-learn.org/stable/documentation)。
- scikit-learn 用户指南(http://scikit-learn.org/stable/user_guide.html)
- pandas参考书:Wes McKinney 的《Python 数据处理》见http://www.ituring.com.cn/book/1819
必要的库和工具:
-
Jupyter Notebook
是可以在浏览器中运行代码的交互环境。 -
numpy
- 在scikit-learn 中,NumPy 数组是基本数据结构。scikit-learn 接受NumPy 数组格式的数据。你用到的所有数据都必须转换成NumPy 数组。NumPy 的核心功能是ndarray 类,即多维(n 维)数组。数组的所有元素必须是同一类型
import numpy as np
x = np.array([[1,2,3],[4,5,6]])
print("x:\n{}".format(x))
x:
[[1 2 3]
[4 5 6]]
- SciPy 是Python 中用于科学计算的函数集合。它具有线性代数高级程序、数学函数优化、信号处理、特殊数学函数和统计分布等多项功能。,SciPy 中最重要的是scipy.sparse:它可以给出稀疏矩阵(sparse matrice),稀疏矩阵是scikit-learn 中数据的另一种表示方法。如果想保存一个大部分元素都是0 的二维数组,就可以使用稀疏矩阵:
sparse_matrix = sparse.csr_matrix(eye)
eye_coo = sparse.coo_matrix((data, (row_indices, col_indices)))
-
matplotlib
- Python 主要的科学绘图库,其功能为生成可发布的可视化内容,如折线图、直方图、散点图等。在Jupyter Notebook 中, 你可以使用%matplotlib notebook 和%matplotlib inline 命令,将图像直接显示在浏览器中。我们推荐使用%matplotlib notebook 命令,它可以提供交互环境
-
%matplotlib notebook import matplotlib.pyplot as plt x=np.linspace(-10,10,100) y=np.sin(x) plt.plot(x,y,marker='x')
-
pandas
-
pandas 是用于处理和分析数据的Python 库。它基于一种叫作DataFrame 的数据结构,一个pandas DataFrame 是一张表
格,类似于Excel 表格.每一列数据的类型可以互不相同(比如整型、日期、浮点数和字符串)。pandas 的另一个强大之处在于,它可以从许多文件格式和数据库中提取数据,如SQL、Excel 文件和逗号分隔值(CSV)文件 -
import pandas as pd from IPython.display import display #创建关于人的简单数据集 data = {'Name': ["John", "Anna", "Peter", "Linda"], 'Location' : ["New York", "Paris", "Berlin", "London"], 'Age' : [24, 13, 53, 33] } data_pandas = pd.DataFrame(data) # IPython.display可以在Jupyter Notebook中打印出“美观的”DataFrame display(data_pandas)
#查询表格:选择年龄大于30的所有行 display(data_pandas[data_pandas.Age > 30])
-
-
mglearn
- 为本书编写的实用函数库,可以在GitHub 下载(https://github.com/amueller/introduction_to_ml_with_python)
-
查看版本
import sys print("Python version:", sys.version) import pandas as pd print("pandas version:", pd.__version__) import matplotlib print("matplotlib version:", matplotlib.__version__) import numpy as np print("NumPy version:", np.__version__) import scipy as sp print("SciPy version:", sp.__version__) import IPython print("IPython version:", IPython.__version__) import sklearn print("scikit-learn version:", sklearn.__version__)