章節
數據科學中的第一步通常都是加載數據,我們首先學習怎么使用SciKit-Learn來加載數據集。
數據集的來源,通常有2個:
- 自己准備
- 第三方處獲取
如果你不是研究人員,一般都會選擇從第三方獲取。有一些網站上,可以獲取數據集:
這個網頁上,列出了很多數據集分享地址:https://www.kdnuggets.com/datasets/index.html。
注意:SciKit-Learn是SciKit庫的一部分,SciKit意思是SciPy Tookits,名字來源於SciPy庫,SciKit基於SciPy庫構建,除了SciKit-Learn,還包含其他很多模塊,可以打開這個網址查看。SciKit-Learn庫是專注於機器學習和數據挖掘的模塊。
SciKit-Learn庫中也自帶一些數據集,我們可以嘗試加載。
先從sklearn導入數據集模塊,然后,可以使用數據集中的load_digits()
方法加載數據:
# Import `datasets` from `sklearn`
from sklearn import datasets
# 加載 `digits` 數據集
digits = datasets.load_digits()
# 打印 `digits` 數據
print(digits)
輸出
{'data': array([[ 0., 0., 5., ..., 0., 0., 0.],
[ 0., 0., 0., ..., 10., 0., 0.],
[ 0., 0., 0., ..., 16., 9., 0.],
...,
[ 0., 0., 1., ..., 6., 0., 0.],
[ 0., 0., 2., ..., 12., 0., 0.],
[ 0., 0., 10., ..., 12., 1., 0.]]), 'target': array([0, 1, 2, ..., 8, 9, 8]), 'target_names': array([0, 1, 2, 3, 4, 5, 6, 7,
8, 9]), 'images': array([[[ 0., 0., 5., ..., 1., 0., 0.],
[ 0., 0., 13., ..., 15., 5., 0.],
[ 0., 3., 15., ..., 11., 8., 0.],
...
datasets
模塊中也包含了獲取其他流行數據集的方法,例如datasets.fetch_openml
可以從openml存儲庫獲取數據集。
上面示例中的數據集,也可以從這個網址獲取:http://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/
# 導入 `pandas` 庫
import pandas as pd
# 使用 `read_csv()` 加載數據集
digits = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra", header=None)
# 打印 `digits` 數據
print(digits)
可以看到,上面下載網址中的文件后綴是.tra
,表示是訓練(train)數據集,在這個頁面內還可以看到.tes
文件,表示是測試(test)數據集,所以上面加載的數據集,是已經分割好訓練數據集和測試數據集的。上面示例中,只加載了訓練數據集。