日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

使用说明 vector_Paddlepaddle学习|Ubuntu环境使用 Mahout 进行朴素贝叶斯模型的训练和测试...

發布時間:2024/9/15 Ubuntu 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用说明 vector_Paddlepaddle学习|Ubuntu环境使用 Mahout 进行朴素贝叶斯模型的训练和测试... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

樸素貝葉斯算法是基于貝葉斯定理與特征條件獨立假設的分類方法。分類是 將一個未知樣本分到幾個預先已知類的過程。解決數據分類問題有兩步:第一步, 建立一個模型,描述預先的數據集或概念集,通過分析由屬性描述的樣本(或實 例,對象等)來構造模型;第二步,假定每一個樣本都有一個預先定義的類,由 一個被稱為類標簽的屬性確定,為建立模型而被分析的數據元組形成訓練數據 集,該步也稱作有指導的學習。

接下來我們在Ubuntu系統使用 Mahout 進行樸素貝葉斯模型的訓練和測試。

(一)訓練模型

  • root用戶
su root

  • 啟動hadoop
start-all.sh

查看 ls /zhenghe-out/ 數據文件是否存在

  • 將文本數據轉換成 SequenceFile
mahout seqdirectory -i file:///home/sys-01/zhenghe-out/ -o file:///home/sys-01/zhenghe-out-seq/ -c UTF-8 -chunk 64 -xm sequential --keyPrefix7

內置的seqdirectory命令可以完成 文本目錄到SequenceFile的轉換過程。 上述命令蘊含了2個大坑,在官方文檔中均沒有仔細說明:

(1) -xm sequential,表示在本地執行,而不是用MapReduce執行。如果是后者, 我們勢必要將這些小文件上傳到HDFS上,那樣的話,還要就不需要SequenceFile(序列文件)。

(2) 然而seqdirectory在執行的時候,并不因為十本地模式,就在本地文件系統上找。而是根據-i -o的文件系統前綴來判斷文件位置。也就是說,默認情況,依 然是在HDFS上查找的……所以,這個file://的前綴是非常有必要的。

其他2個參數: -c UTF8:編碼格式。

-chunk 64:64MB一個Chunk,應該和HDFS的BLOCK保持一致或者倍數關系。

  • (4)在HDFS上創建目錄user/coder5
hadoop fs -rm -r -skipTrash /user hadoop fs -mkdir -p /user/coder5/train hadoop fs -mkdir -p /user/coder5/test

  • 上傳序列文件(SequenceFile)到HDFS系統
hdfs dfs -put /home/sys-01/zhenghe-out-seq /user/coder5

查看結果

hdfs dfs -ls /user/coder5

  • 開始SequenceFile->Vector的轉換:
mahout seq2sparse -i /user/coder5/zhenghe-out-seq/chunk-0 -o /user/coder5/zhenghe-vectors -lnorm -nv -wt tfidf8

參數說明如下:

-ow( 或 --overwrite):即使輸出目錄存在,依然覆蓋。

--weight(或 -wt) tf:權重公式。(當LDA時建議使用tf )。

--maxDFPercent(或 -x) 85:過濾高頻詞,當DF大于85%時,將不在作為詞特征輸

出到向量中。

--namedVector (或-nv):向量會輸出附加信息。

其他可能有用的選項:

--analyzerName(或-a):指定其他分詞器。

–minDF:最小DF閾值。

–minSupport:最小的支持度閾值,默認為2。

–maxNGramSize(或-ng):是否創建ngram,默認為1。建議一般設定到2就夠了。

–minLLR(或 -ml):The minimum Log Likelihood Ratio。默認為1.0。當設定了-ng >

1后,建議設置為較大的值,只過濾有意義的N-Gram。

–logNormalize(或 -lnorm):是否對輸出向量做Log變換。

–norm(或 -n):是否對輸出向量做p-norm變換,默認不變換。

  • 拆分數據(如果想拆分數據就執行1,不想拆分數據就執行2。可以兩種實驗 都做一下,然后使用正確率較高的model)

①想拆分數據就執行此步驟,將60%的數據用于訓練,40%用于測試。

mahout split -i /user/coder5/zhenghe-vectors/tfidf-vectors --trainingOutput /user/coder5/train --testOutput /user/coder5/test --randomSelectionPct 40 --overwrite --sequenceFiles -xm sequential9

②不想拆分數據就執行此步驟。

hadoop fs -mkdir /user/coder5/trainW hadoop fs -mkdir /user/coder5/testW hdfs dfs -cp /user/coder5/zhenghe-vectors/tfidf-vectors /user/coder5/trainW hdfs dfs -cp /user/coder5/zhenghe-vectors/tfidf-vectors /user/coder5/testW

  • 訓練:

①拆分過數據執行此步驟。

mahout trainnb -i /user/coder5/train -o /user/coder5/train/model -li labelindex -ow -c

②未拆分數據執行此步驟。

mahout trainnb -i /user/coder5/trainW/tfidf-vectors -o /user/coder5/trainW/model -li labelindex -ow -c10
  • 測試訓練好的貝葉斯分類器:

①拆分過數據就執行此步驟。

mahout testnb -i /user/coder5/test -m /user/coder5/train/model -l labelindex -ow -o test-result

②未拆分數據就執行此步驟。

mahout testnb -i /user/coder5/testW/tfidf-vectors -m /user/coder5/trainW/model -l labelindex -ow -o test-result11

二、數據分類

  • 將數據庫導出的所有 txt 直接放在/home/sys-01/data 文件夾下面(此步驟跳過,數據已存在)
  • 將文本數據轉換成 SequenceFile
mahout seqdirectory -i file:///home/sys-01/data/ -o file:///home/sys-01/data-seq/ -c UTF-8 -chunk 64 -xm sequential --keyPrefix

  • 在 HDFS 上創建目錄
hadoop fs -mkdir -p /user/coder/train
  • 上傳序列文件(SequenceFile)到 HDFS 系統
hdfs dfs -put /home/sys-01/data-seq /user/coder

查看結果

hdfs dfs -ls /user/coder12

  • 開始 SequenceFile->Vector 的轉換:
mahout seq2sparse -i /user/coder/data-seq/chunk-0 -o /user/coder/data-vectors -lnorm -nv -wt tfidf
  • 復制數據到/user/coder/train 目錄下
hdfs dfs -cp /user/coder/data-vectors/tfidf-vectors /user/coder/train
  • /home/sys-01下新建文件夾 classify (提示文件已存在,我們刪除了它,在新

建)

rm -rf /home/sys-01/classify mkdir /home/sys-01/classify
  • 將 hdfs 中的 coder 文件導出到本地
hdfs dfs -get /user/coder /home/sys-01/classify
  • 將 hdfs 的 coder5/train/model 文件導出到本地/home/sys01/classify/coder/train

目錄下

hdfs dfs -get /user/coder5/train/model /home/sys-01/classify/coder/train
  • 運行/home/sys-01/下的 jar 包生成路徑名/文件名->索引的 csv 文件
output.csv。

①拆分數據運行 bayesF.jar 包

java -jar bayesF.jar

②未拆分數據運行 bayesW.jar 包

java -jar bayesW.jar

總結

以上是生活随笔為你收集整理的使用说明 vector_Paddlepaddle学习|Ubuntu环境使用 Mahout 进行朴素贝叶斯模型的训练和测试...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。