簡體   English   中英

如何將 Label 數據多個 csv 文件作為 python 中的單個觀察進行機器學習

[英]How to Label data multiple csv files as single observation in python for machine learning

我已經開始了一個機器學習項目,我現在處於數據准備和標記階段。 在我的測量設置中,我有 4 個傳感器以毫秒為單位記錄數據。 然后將該數據存儲為 csv 文件作為單一觀察。 例如,安裝在身體不同部位的 4 個傳感器檢測人的姿勢,如"sitting""standing" 數據記錄了不同的持續時間,因此每個文件都以姿勢和持續時間命名,例如sitting_3_hours.csvsitting_2min.csv等。現在我想准備數據以應用監督機器學習方法來分類人是否坐着或站立。

如何 label 這些 csv 文件? 我可以在 python 中做到嗎? 或者我必須使用某種注釋或標簽工具? 到目前為止,我已經體驗過單個 csv 文件,其中有一列包含所有標簽,如鳶尾花數據庫。

這是數據集外觀的一個小例子。

 - Folder name "Sitting"
-------------Sitting_200s.csv
.............Sitting_100s_elevated.csv
-------------Sitting_200s_elevated.csv
 - Folder name "Standing"
-------------Standing_8s.csv
.............Standing_29s_elevated.csv
-------------Standing_86s_elevated.csv

每個 csv 文件中的數據以逗號分隔,如下所示(Sitting_100s_elevated.txt 的示例):

Time [s], Sensor1, Sensor2, Sensor3, Sensor4, Sensor5, Sensor6, Sensor7, Sensor8, Sensor9, Sensor10, Sensor11, Sensor12, Sensor13
+0.0, 0.0, 0.09, 0.0, 25.22, 28.5, 833.0566, 0.49, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+1.0, 0.0, 0.09, 0.0, 25.22, 28.5, 834.668, 0.45, 0.0, 0.0, 0.28, 102037.0, 23.72, 38.39
+2.0, 0.0, 0.09, 0.0, 25.22, 28.5, 831.4453, 0.38, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+3.0, 0.0, 0.09, 0.0, 25.22, 28.5, 834.668, 0.47, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.38
+4.0, 0.0, 0.09, 0.0, 25.22, 28.5, 829.834, 0.41, 0.0, 0.0, 0.28, 102037.0, 23.72, 38.4
+5.0, 0.0, 0.09, 0.0, 25.21, 28.5, 833.0566, 0.46, 0.0, 0.0, 0.2, 102037.0, 23.72, 38.38
+6.0, 0.0, 0.09, 0.0, 25.22, 28.4, 831.4453, 0.46, 0.0, 0.0, 0.31, 102037.0, 23.72, 38.39
+7.0, 0.0, 0.09, 0.0, 25.21, 28.4, 831.4453, 0.41, 0.0, 0.0, 0.25, 102037.0, 23.72, 38.39
+8.0, 0.0, 0.09, 0.0, 25.21, 28.4, 834.668, 0.4, 0.0, 0.0, 0.25, 102037.0, 23.72, 38.37
+9.0, 0.0, 0.09, 0.0, 25.22, 28.4, 831.4453, 0.43, 0.0, 0.0, 0.36, 102037.0, 23.72, 38.39
+10.0, 0.0, 0.09, 0.0, 25.21, 28.4, 833.0566, 0.44, 0.0, 0.0, 0.31, 102035.0, 23.72, 38.38

 

這里有幾個問題。

  • 每個文件都有完整的傳感器數據概況,這些數據給出了單一的觀察結果,即人是坐着還是站着。 我是否必須在添加 label 的每個文件中創建額外的第 5 列?
  • 隨着時間的推移,相同的 class 將有不同的 csv 文件捕獲不同的場景。 我是否必須將所有數據連接為一個文件作為機器學習算法的輸入? 如果是,那么我的另一個問題是如何處理時間列,因為每個文件的每個時間戳都記錄為從 0 開始的毫秒。如果不是,那么請指導我如何?

如何開始這樣做?

如果我正確理解了這個問題......是的,您可以為此使用 Python 。

您可以使用 Python 瀏覽不同的文件夾,和/或檢查文件的名稱中是否包含“Sitting”或“Standing”以對它們進行不同的分類。

您還可以使用pandas閱讀您的csv文件。

通過您提供的示例,您可以使用以下內容生成DataFrame

df = pd.read_csv('Sitting_100s_elevated.csv',lineterminator='+', index_col=0)
df

    Sensor1     Sensor2     Sensor3     Sensor4     Sensor5     Sensor6     Sensor7     Sensor8     Sensor9     Sensor10    Sensor11    Sensor12    Sensor13
Time [s]                                                    
0.00    0.00    0.09    0.00    25.22   28.50   833.06  0.49    0.00    0.00    0.31    102,037.00  23.72   38.39
1.00    0.00    0.09    0.00    25.22   28.50   834.67  0.45    0.00    0.00    0.28    102,037.00  23.72   38.39
2.00    0.00    0.09    0.00    25.22   28.50   831.45  0.38    0.00    0.00    0.31    102,037.00  23.72   38.39
3.00    0.00    0.09    0.00    25.22   28.50   834.67  0.47    0.00    0.00    0.31    102,037.00  23.72   38.38
4.00    0.00    0.09    0.00    25.22   28.50   829.83  0.41    0.00    0.00    0.28    102,037.00  23.72   38.40
...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...     ...
6.00    0.00    0.09    0.00    25.22   28.40   831.45  0.46    0.00    0.00    0.31    102,037.00  23.72   38.39
7.00    0.00    0.09    0.00    25.21   28.40   831.45  0.41    0.00    0.00    0.25    102,037.00  23.72   38.39
8.00    0.00    0.09    0.00    25.21   28.40   834.67  0.40    0.00    0.00    0.25    102,037.00  23.72   38.37
9.00    0.00    0.09    0.00    25.22   28.40   831.45  0.43    0.00    0.00    0.36    102,037.00  23.72   38.39
10.00   0.00    0.09    0.00    25.21   28.40   833.06  0.44    0.00    0.00    0.31    102,035.00  23.72   38.38

11 rows × 13 columns

(如果您不希望將第一列作為索引,您可以從上面的代碼中刪除index_col=0 。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM