2011-03-13 145 views
4

我想在一個文件中表示一組標記實例(數據)作爲訓練數據送入LibSVM。對於this問題中提到的問題。這將包括,LibSVM輸入格式

  1. 登錄的時間
  2. 登錄時間
  3. 位置(國家代碼?)
  4. 一週
  5. 真實性日(0 - 非正品,1 - 正品) - 標籤

如何格式化該數據以輸入到SVM?

+0

位置和IP地址重疊,所以您可能只想選擇其中一個(試驗以找出哪個最好)。 – 2011-03-14 15:39:17

+0

刪除了IP地址 – ruwanego 2011-03-14 19:34:53

+0

您不需要將其從問題中刪除:) – 2011-03-14 21:03:24

回答

4

你問的數據格式或如何轉換數據?對於後者,你將不得不嘗試找到正確的方法來做到這一點。總體思路是將數據轉換爲名義值或有序值屬性。其中一些很簡單 - #4,#6 - 其中一些將會很艱難 - #1-#3。例如,您可以將#1表示爲日,月和年的三個屬性,或者通過將#1轉換爲類似時間戳的UNIX來表示#1。

IP更難 - 沒有簡單的方法將其轉化爲有意義的序數值。根據您的問題使用每個IP作爲名義屬性可能沒有用處。

一旦你弄明白了,轉換你的數據,檢查LibSVM文檔。一般的格式是:+1 1:0 2:0 .. etc

+0

IP地址等於用戶的先前(或最常見)IP地址可能是一個很好的功能,並且僅爲二進制。 – 2011-03-14 15:49:29

+0

所以..只要我能夠使用日期(dd/mm/yyyy),時間(hh:mm - 24h格式),位置(國家代碼 - 爲了簡單起見),星期幾(0-6 ),以真實性(1或0)來實現這一目標..我不應該? – ruwanego 2011-03-14 19:25:59

+0

您將無法使用任何非數字格式(如日期) - 此處的區別在於您有三個維度(日/月/年)與一維(自1972年以來的秒數)。您必須以任何方式進行轉換。 – dfb 2011-03-14 19:46:50

1

我相信在以前的答案中有一個沒有說明的假設。沒有說明的假設是libSVM的用戶知道他們應該避免將分類數據放入分類器中。

例如,libSVM不知道如何處理國家代碼。如果您試圖預測哪些訪問者最有可能在您的網站上購買某些內容,那麼如果美國位於您的國家/地區代碼列表中的乍得和尼日爾之間,則可能會出現問題。來自美國的膨脹可能會歪曲位於附近的國家的預測。

要解決這個問題,我會爲每個正在考慮的國家(也可能是「其他」類別)創建一個類別。然後,對於要分類的每個實例,除了實例所屬的類別外,我會將所有國家/地區類別設置爲零。 (要用libSVM稀疏文件格式來做到這一點,這並不是什麼大問題)。