2017-02-17 29 views
1

我在RaschberryPi RC汽車中以PiCamera拍攝的圖像的形式獲得了訓練數據,同時我在兩條車道線之間駕駛它。使用Numpy來簡化線性迴歸的分組數據

每個圖像都標有左右電機控制。我在下面的圖表中繪製了它們。

我使用ConvNets做爲KerasTensorFlow作爲後端進行迴歸。

很明顯,如果我能夠移除可見迴歸左側的訓練樣本,則迴歸可以更加簡單。

用於裝載所述圖像和標記代碼非常簡單,下面:

filenames = glob.glob("../data/*.jpg") 

labels = [] 

images = [] 

for filename in filenames: 
    # Timestamp-LeftMotorControl-RightMotorControl.jpg 

    filename = filename.replace('.jpg', '') 

    parts = filename.split('-') 

    if float(parts[1]) == 0. or float(parts[2]) == 0.: 
     continue 

    images.append(filename) 

    labels.append([float(parts[1]), float(parts[2])]) 

enter image description here

首先是存在用於去除數據的好方法,其是從可見迴歸界從訓練樣本?

另外,我心裏有一種不同的方法是創建具有的0邊緣100數據段到1,然後取50個樣品從每個容器,使得我的數據是平衡的。

是否有numpy的方式將數據放入垃圾箱,以便我不需要用一些自定義功能來做到這一點?

回答

1

回答第一個問題:

  1. 請在整個數據集的線性迴歸擬合
  2. 與最大殘差
  3. 重複1和2取出點,直到所有的殘差舒適小
+0

在分類中,我們使用驗證數據進行測試(而不是測試數據),以避免過度擬合測試數據。這種方法不會導致測試集過度擬合嗎?它能很好地概括完全看不見的圖像嗎? –

+0

如果我理解正確,殘差表示實際和預測之間的差異。正確?因此我對泛化的困惑。 –

+0

@SamHammamy如果OP有理由相信兩個變量之間存在因果線性關係,那麼我不會擔心過度擬合。 – DyZ