Fast AI ML Note
github repo:https://github.com/fastai/fastai/tree/master/courses/ml1
視訊連結:https://www.bilibili.com/video/av23356580
Fast AI依賴庫的安裝:
conda install bcolz
conda install tqdm
pip install graphviz
pip install sklearn_pandas
pip install isoweek
pip install pandas_summary
pip install -U feather-format
注意graphviz庫的安裝需要參考
(因為我是先pip install graphviz,然後發現仍然報錯,才去下載安裝包安裝的)
Lesson1
08:17
在notebook開始處寫下如下程式碼
%load_ext autoreload
%autoreload 2
%matplotlib inline
能夠為後續的restart提供便利(暫時體會不到)
11:00
檢視display
函式的文件
?display
檢視display函式的原始碼
??display
17:00
在遠端伺服器上下載kaggle資料,使用FireFox瀏覽器,選擇Copy as cURL
--2.0
,並在末尾加上-o bulldozers.zip
21:40
可以使用Jupyter Notebook建立一個遠端控制檯
22:50
mkdir bulldozer
cd !$
其中!$
表示上一條命令的最後一個word
24:00
在Jupyter Notebook中使用Shell
!ls {PATH}
其中{PATH}
表示使用定義的PATH
變數
29:20
name = 'Jeremy'
f'Hello {name}'
f'Hello {name.upper()}'
pd.read_csv
函式,low_memory
預設為True
32:55
target variable也稱為dependent variable
46:00
Shift+Tab可以快速檢視某個函式的介紹
可以Shift+Tab一次,兩次,三次
51:00
使用Fast AI內建的add_datepart
函式來提取日期特徵,其中利用getattr
函式獲取datetime
物件的各種屬性
57:30
使用train_cats
函式,將訓練集中的字串轉換為數字
使用apply_cats
函式,將測試集中的字串轉換為數字
只是儲存了額外的資訊,並沒有對DataFrame本身進行修改
65:30
pd.to_feather
儲存為feather格式,這是一種全新的也是最快的儲存格式
68:00
使用proc_df
函式,對DataFrame本身進行修改
Lessson2
12:00
從公式上解釋
score
score為0時,表示均值模型
score小於0時,表示模型比均值模型還差
score等於1時,表示模型完美擬合
68:00
對於RandomForest,如何判斷n_estimators設定得足夠多了?
答案是畫出一個In [59]那樣的圖,當performance變得平坦時,說明estimator數量已經足夠了
70:10
在訓練樣本數量較少,無法劃分出驗證集時,使用oob_score=True
,檢視model.oob_score_
76:05
set_rf_samples
似乎從底層修改了RandomForest的取樣方式
fit時仍然傳入完整的訓練集,在訓練過程中自動完成取樣
reset_tf_samples
,fit時使用完整的訓練集
80:40
因為該資料集樣本數量足夠多,跑一次RF花的時間較長,而且由於RF預設引數為每個葉節點僅包含一個樣本,故在所有樣本上學習出來的RF一定是過擬合的,因此對訓練集進行取樣,既減輕了過擬合,又節約了時間
83:25
min_samples_leaf=1, 3, 5, 10, 25
84:10
max_features=0.5,意思是每次尋找切分點時,使用50%的特徵,這與列取樣有區別
Lesson3
07:50
對訓練集,使用df, y, nas = proc_df( df_raw, 'SalePrice' )
nas
可作為引數在處理測試集時使用
30:20
RF的fit函式可以送入DataFrame,然而最終還是要轉換為Numpy Array
所以當資料量很大的時候,提前轉換為Numpy Array可以節約不少的時間
%prun m.fit( x, y )
可以找出哪一條語句的執行時間最長
55:00
訓練了多個決策樹,對於某個樣本,這些決策樹給出不同的預測值,那麼這些預測值的方差越小,表示這個樣本的confidence較高,預測值的方差越大,表示這個樣本的confidence較低
77:30
詳細解釋了RF中feature importance的計算方式