#這行是在ipython notebook的介面裏專用，如果在其他介面則可以拿掉
%matplotlib inline
from sklearn import datasets

import matplotlib.pyplot as plt

#載入數字資料集
digits = datasets.load_digits()

#畫出第一個圖片
plt.figure(1, figsize=(3, 3))
plt.imshow(digits.images[-1], cmap=plt.cm.gray_r, interpolation='nearest')
plt.show()

"""
Explanation: Datasets
機器學習資料集/ 範例一: The digits dataset
http://scikit-learn.org/stable/auto_examples/datasets/plot_digits_last_image.html
這個範例目的是介紹機器學習範例資料集的操作，對於初學者以及授課特別適合使用。
(一)引入函式庫及內建手寫數字資料庫
End of explanation
"""


for key,value in digits.items() :
    try:
        print (key,value.shape)
    except:
        print (key)


"""
Explanation: (二)資料集介紹
digits = datasets.load_digits() 將一個dict型別資料存入digits，我們可以用下面程式碼來觀察裏面資料
End of explanation
"""


images_and_labels = list(zip(digits.images, digits.target))
for index, (image, label) in enumerate(images_and_labels[:4]):
    plt.subplot(2, 4, index + 1)
    plt.axis('off')
    plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')
    plt.title('Training: %i' % label)

"""
Explanation: | 顯示 | 說明 |
| -- | -- |
| ('images', (1797L, 8L, 8L))| 共有 1797 張影像，影像大小為 8x8 |
| ('data', (1797L, 64L)) | data 則是將8x8的矩陣攤平成64個元素之一維向量 |
| ('target_names', (10L,)) | 說明10種分類之對應 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] |
| DESCR | 資料之描述 |
| ('target', (1797L,))| 記錄1797張影像各自代表那一個數字 |
接下來我們試著以下面指令來觀察資料檔，每張影像所對照的實際數字存在digits.target變數中
End of explanation
"""


#接著我們嘗試將這個機器學習資料之描述檔顯示出來
print(digits['DESCR'])

"""
Explanation: 
End of explanation
"""


