我有一個包含:(“wordsList”和“classList”文件)的數據集。wordsList 文件包含 72 封預處理的電子郵件。每行都是從每封電子郵件中提取的單詞列表。classList 文件包含指示電子郵件是普通電子郵件還是廣告的類標簽(0 表示普通電子郵件,1 表示廣告)。我的任務是開發一個樸素貝葉斯分類器作為Python中的電子郵件過濾器。也就是說,分類器預測電子郵件是普通電子郵件還是廣告。為了開發這個,我需要使用分層采樣從72行中選擇66行進行訓練,其余6行用于測試。然后返回這 6 條記錄的分類概率。但對我來說壞消息是,我不能使用任何機器學習庫,只能使用NumPy和SciPy。有沒有辦法實現這一點?如果是這樣,是否有任何從頭開始實現此方法的示例代碼?提前感謝您!
1 回答

一只名叫tom的貓
TA貢獻1906條經驗 獲得超3個贊
最簡單的解決方案是使用 pandas 的方法,然后應用采樣,在你的情況下從 72 行中得到 66 行:groupby
frac=0.91
cL2=cL.groupby(['classList']).apply(lambda x: x.sample(frac=0.91))
這將創建一個 MultiIndex 數據幀,該數據幀通過重置索引、刪除與該方法關聯的列'classList',并選擇性地刪除一個額外的數據幀(此處參照分組變量的數量命名):將其轉換為普通數據幀:groupby
level_1
cL3=cL2.drop(columns=['classList']).reset_index().drop(columns=['level_1'])
添加回答
舉報
0/150
提交
取消