2014-01-17 69 views
4

我正在使用Vowpal Wabbit,並且正在生成訓練成可讀模型的分類器。Vowpal Wabbit可讀模型

我的數據集有22個功能和可讀模型給出的輸出:

Version 7.2.1 
Min label:-50.000000 
Max label:50.000000 
bits:18 
0 pairs: 
0 triples: 
rank:0 
lda:0 
0 ngram: 
0 skip: 
options: 
:0 
101143:0.035237 
101144:0.033885 
101145:0.013357 
101146:-0.007537 
101147:-0.039093 
101148:-0.013357 
101149:0.001748 
116060:0.499471 
157941:-0.037318 
157942:0.008038 
157943:-0.011337 
196772:0.138384 
196773:0.109454 
196774:0.118985 
196775:-0.022981 
196776:-0.301487 
196777:-0.118985 
197006:-0.000514 
197007:-0.000373 
197008:-0.000288 
197009:-0.004444 
197010:-0.006072 
197011:0.000270 

可有人請向我解釋如何解釋文件的最後部分(選項之後:)?我用的是邏輯迴歸,我需要檢查遍歷訓練如何更新我的分類,這樣,當我到達收斂我能理解......

感謝提前:)

+0

我是新來的Vowpal Wabbit你能告訴我用邏輯迴歸訓練數據的選項是什麼?以下是否足夠: 'vw -d train_output -f data。模型 - 失去功能邏輯 –

回答

10

你看到的是值所有22個特徵的散列值和權重以及最終的訓練模型中的另一個「常量」特徵(其散列值爲116060)。

格式爲:

  • 使用utl/vw-varinfo(源:

    hash_value:weight 
    

    爲了看到你的原始特徵名稱,而不是哈希值,你可以使用以下兩種方法之一樹)實用程序與您用於培訓的選項相同。嘗試utl/vw-varinfo用於幫助/用法信息

  • 使用相對較新的--invert_hash readable.model選項

BTW:反轉的哈希值回原來的功能名稱不是默認由於大的性能損失。默認情況下,vw對其看到的每個要素字符串應用單向散列。它不會在特徵名稱和它們的哈希值之間保持哈希映射。

編輯:

另一個小珍聞可能感興趣的是options:後的第一項內容是:

:0 

它實質上意味着任何「其他」功能(所有那些不在訓練集中,因此沒有散列到權向量中)默認爲0的權重。這意味着在vowpal-wabbit中對於值爲零的特徵進行訓練是多餘的,無論如何這是默認值。明確的:0值特性根本不會對模型做任何貢獻。當你在你的訓練集中忽略一個重量時,如:feature_name沒有結尾:<value> vowpal wabbit隱含地認爲它是一個二進制特徵,其值爲TRUE。 IOW:默認所有無值功能,值爲1(:1),而不是零值(:0)。 HTH。

4

Vowpal Wabbit現在還有一個--invert_hash選項,它將爲您提供一個具有實際變量以及哈希值的可讀模型。

它消耗的LOT更多的內存,但由於你的模型看起來很小,它可能會工作。

相關問題