![](/img/trans.png)
[英]How can I read a CSV into a Python dictionary, where each key's value is a list of dicts?
[英]How can I perform classification using a dictionary where each key is the label and each value is a dataframe?
如果這個問題有明顯的答案或者已經有人回答,請原諒我。 我試圖盡我所能尋找答案,但無濟於事。
這里的問題圍繞着這樣一個想法,即有一個 python 字典,其中包含用作標簽和值的鍵,在這種情況下是包含時間序列信息的 Pandas 數據幀。 該程序的目標是對給定的輸入數據幀進行分類,必須根據字典將標簽應用於該數據幀。
我知道從表面上看,這似乎是一個基於值的簡單字典搜索,但真正的問題在於輸入數據幀可能包含也可能不包含與字典相同的信息。 因此,我計划使用機器學習——特別是 RNN(我對其他想法持開放態度,但這是我一遍又一遍地推薦的)——來執行這種分類。 但是,由於我嚴重缺乏關於 RNN 算法的知識以及減少作為輸入的數據幀的維數,我被困住了。 任何信息或建議將不勝感激。
更多信息:
為了更仔細地了解正在發生的事情,我在下面包含了我的一些數據
*A1 *A2 *B1 *B2
*0 *104 *258 *190 *284
*1 *102 *258 *186 *286
*2 *100 *254 *178 *286
*3 *98 *252 *170 *282
*4 *94 *248 *158 *278
*5 *90 *244 *148 *274
對於上下文,在上表中,第 0 - 5 行表示屬性 A1、A2 等隨時間的變化。 這里 A1 和 A2 可以被認為是 X 和 Y 值,它們都描述了 A 的屬性。因此,每一行都可以被認為是屬性的位置,分為 X 和 Y 分量。 注意:表格的列和行都縮小了,只是為了顯示主要概念,我認為除了處理能力之外這應該不是問題。
該表作為數據幀加載,該數據幀是字典中的一個值並具有標簽“零”。 整個字典有 n 個項目,現在的目標是訓練一個分類器,該分類器可以將另一個數據幀作為輸入並將其與標簽匹配。 例如,如果我提供了一個類似於上面的數據幀,但值略有不同,假設它與上表最相似而不是任何其他表,我將如何讓程序讀出“零”。
有關上述“略有不同的值”含義的更多上下文,我想提供下表。 該表旨在像上面一樣標記為“零”。
*A1 *A2 *B1 *B2
*0 *107 *258 *192 *294
*1 *104 *259 *188 *296
*2 *103 *254 *180 *296
*3 *0 *0 *172 *292
*4 *97 *248 *160 *288
*5 *92 *244 *150 *284
數據的區別在於初始值可能略有不同,每個屬性的不同時間戳(第0-5行)之間的變化可能與原始數據略有不同(即原始數據幀中行之間的變化可能是 7,而在輸入數據幀中可能是 6、7 或 8)。 但是,數據的總體趨勢在輸入和匹配的字典數據幀中應該大致相同。 但是,在某些情況下,數據條目為零,表明該屬性的行中沒有實際數據。 這就是我考慮使用 RNN 的原因,但我知道除此之外還有其他分類方法,並且我願意接受任何想法/建議。
謝謝,弗吉尼亞州
如果您需要進一步說明或者問題沒有意義,請告訴我。
編輯 1:為問題添加了更多信息和上下文。
編輯 2:在數據框中添加了有關“略有不同的值”的更多信息
編輯 3:重讀我的問題,我意識到我在談論 RNN 而不是 KNN
我剛剛制作了一個字典,其中標簽是描述性的,值是一個數據框:
df = pd.DataFrame([['2019-01-01',2,5],['2019-01-02',15,8],['2019-01-03',1,9],['2019-01-04',10,20],['2019-01-05',5,15]],columns = ['date','data1','data2'])
even = df[df['data1']%2==0]
odd= df[df['data1']%2==1]
dict1 = {'even':even,'odd':odd}
如果列數很少並且每個數據框中的列都不相同,則可以應用:
d= { (tuple(df.columns),df.index[0],df.index[-1]): df }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.