Jupyter Lab 九個小指令

tierwint
No Free Lunch
Published in
5 min readJun 10, 2018

參與 Kaggle NYC Taxi Trip Duration 的過程中,由於我們團隊中已經有一個 Data Scientist (Alvin Lin)了,很多 Coding 跟觀念的東西其實都是他帶著我們前進的,用此篇來記錄一下從他的 ipython 檔案裡偷學到的實用方法。

0. 快捷鍵

出處: https://blog.csdn.net/lawme/article/details/51034543

很重要啊,熟練的話會省下很多時間,要多練習。

1. %matplotlib inline

%matplotlib inline 可以在Ipython编译器里直接使用,功能是可以内嵌绘图,并且可以省略掉plt.show()这一步。

出處: https://blog.csdn.net/liangzuojiayi/article/details/78183783

2. sns.set()

一步設定美觀參數的方法
Set aesthetic parameters in one step.

seaborn.set(context='notebook', style='darkgrid', palette='deep', font='sans-serif', font_scale=1, color_codes=False, rc=None)

出處: https://seaborn.pydata.org/generated/seaborn.set.html#seaborn.set

3. pd.read_csv(“input/train.csv”)

其實就是讀取 csv 的資料,這邊 input 應該指的是相對路徑,可是我照著處理的時候卻會出現問題,最後是用 Desktop /file_folder/train.csv 才成功。

猜測是 Anaconda 被我安裝在跟 Desktop 同層級的地方,直接使用相對路徑會找不到,採用從 Desktop 開始的絕對路徑才行 (其實這應該也不算是絕對路徑啦…)

4. .head()

先讀取頭五筆資料看看資料大概會長什麼樣子,Alvin 一開始的處理方式看起來都是先 snooping 一下資料格式大概長什麼樣子 (which 軒田 wouldn’t like)

為什麼軒田大大不建議呢,因為機器學習是基於機率、統計和電腦科學的應用,如果是有加入人腦的 model 選擇的話 VC dimension 會上升,也就是 Eout 錯誤率也會開始增加,也就是我們訓練出來的 model 對於現實世界的預測就沒那麼好了

但話說我們要是連 dataset 的格式長什麼樣子都不知道,還能怎麼處理數據呢?

而且 Kaggle 有好好保存了一份 test 用的 data,snooping 應該不會影響預測結果才是

5. train.info()

This method prints information about a DataFrame including the index dtype and column dtypes, non-null values and memory usage.

就是 print 出 DataFrame 的一些基本資訊
像是 data type, 或是有多少 column 和多少 row、有沒有空值、或是 memory 的使用量

參考資料:
https://pandas.pydata.org/pandas-docs/version/0.21/generated/pandas.DataFrame.info.html

6. train.describe()

將除了 `NaN` Value 外的資料統整出一份統計性質的報表, 我們可以看見每個欄位的分佈數據

參考資料:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.describe.html

8. numpy.random.seed() 的使用

seed( ) 用于指定随机数生成时所用算法开始的整数值。 
1.如果使用相同的seed( )值,则每次生成的随即数都相同;
2.如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同。
3.设置的seed()值仅一次有效

Blog 裡面的東西我看了看還沒辦法體會, 不過起碼知道是隨機數的應用, 連結放上來, 有興趣的人可以體會一下

參考資料:
https://blog.csdn.net/linzch3/article/details/58220569

8. .isnull()

就是檢查資料裡空值的部位 (哎呀好隨便啊)

大概看起來會像這樣

9. .to_csv(“file_name”)

顧名思義就是把檔案匯出成 csv 檔, 不過要怎麼匯出到指定資料夾還沒研究, 但這 google 應該很快吧

以上。

jupyter lab 使用起來滿好玩的, 有點 python 底子的人在入門的時候成就感累積的很快, 因為所有的東西你拿一份 csv 檔亂玩都會有 feedback

但資料科學的硬仗不在這, 這只是工具, 工具只要用熟了每個人都差不多, 這條路感覺還很長啊。

--

--

tierwint
No Free Lunch

Product Design / Crypto Currency / Machine Learning