從資料中獲得pattern的過程稱為fitting or training the model。
Pandas中的DataFrame包含了類似表格的資料。
使用model的過程可以分為:Define,建立一個model。Fit,從提供的資料中獲得pattern。Predict,使用X來分析Y。Evaluate,估算model的預測的準確程度。
一般來說,y是我們想要預測的資料。在這裡他會是一個pandas中的series(一個column?)。
Model validation用來evaluate model you build。其中一個方法是MAE - Mean Absolute Error,其實就是平均預測的誤差。這個方法建立在sklearn.metrics中(metrics為指標之意)。
一般來說會將dataset分成training set跟test set。這點可以用train_test_split()做到,他會將X和y各自分成兩個set,並且維持對應關係。model對training set fit之後再predict testX之後的y。
Overfitting指的是當decision tree的深度過深,每個prediction結果會和真實的結果很接近,但是對新的資料的prediction卻很不穩定,因為每個預測的結果都只基於少數幾個資料。
相反的underfitting則是tree depth過淺,每個預測都基於非常多資料,但是結果的區間卻太大。
對training set來說,tree depth加深會讓MAE持續下降。但是對valid set來說,必須找到sweet spot。可以使用get_mae()方法(自定義),試用多個max_leaf_nodes來觀察MAE的變動。
Pandas中的DataFrame包含了類似表格的資料。
使用model的過程可以分為:Define,建立一個model。Fit,從提供的資料中獲得pattern。Predict,使用X來分析Y。Evaluate,估算model的預測的準確程度。
一般來說,y是我們想要預測的資料。在這裡他會是一個pandas中的series(一個column?)。
Model validation用來evaluate model you build。其中一個方法是MAE - Mean Absolute Error,其實就是平均預測的誤差。這個方法建立在sklearn.metrics中(metrics為指標之意)。
一般來說會將dataset分成training set跟test set。這點可以用train_test_split()做到,他會將X和y各自分成兩個set,並且維持對應關係。model對training set fit之後再predict testX之後的y。
Overfitting指的是當decision tree的深度過深,每個prediction結果會和真實的結果很接近,但是對新的資料的prediction卻很不穩定,因為每個預測的結果都只基於少數幾個資料。
相反的underfitting則是tree depth過淺,每個預測都基於非常多資料,但是結果的區間卻太大。
對training set來說,tree depth加深會讓MAE持續下降。但是對valid set來說,必須找到sweet spot。可以使用get_mae()方法(自定義),試用多個max_leaf_nodes來觀察MAE的變動。
留言
張貼留言