sklearn.model_selection中train_test_split的坑
坑
無論是做機器學習還是深度學習,有個叫做數據集的東西不可忽視,有時候數據集的好壞會影響最后學習的效果。特別是沒有現成處理好的數據集時需要我們自己動手搜集整理得到訓練和測試的數據集。
我在處理數據集的時候喜歡把數據放在一個列表,label放在一個一個列表,然后利用sklearn.model_selection中的train_test_split函數來分割得到訓練集和數據集。該函數的具體返回值和用法如下:
datas:為數據集
labels:為數據集對應的分類
test_size:測試集占所有數據的比例
random_state:具體作用暫時未知(我踩的坑可能和它有關,后面寫代碼測試一下)
通過代碼測試,我踩的坑果然和random_state這個參數有關,當忽略這個參數時每次運行得到兩個分組都是隨機的,每次可能都不一樣,當設置random_state之后多次運行的分組結果相同。在網上看都讓random_state=42,具體不知為啥,有興趣可以探究一下,我把它設為2得到的結果也不發生變化。
作為一個嚴謹的我怎么能容忍不知道這個random_state是為啥呢?所以我就去查了一下。
當random_state=1,會生成一組隨機數
當random_state=2, 會生成另一組隨機數
。。。
這個是一一對應的,random_state=1,就固定得到那組隨機數。
總結
以上是生活随笔為你收集整理的sklearn.model_selection中train_test_split的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 断言(assert)详解
- 下一篇: python 西门子交换机_python