在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

訓練一個機器學習模型,實現了根據基于文本分析預測葡萄酒質量

電子工程師 ? 來源:lq ? 2019-05-16 18:27 ? 次閱讀

愛酒人士應該都知道,選紅酒是個需要大量知識儲備的技術活——產地、年份、包裝、飲用場合,每個元素的變化都會對口感產生一定的影響。

TowardsDataScience上一位作者(同時也是輕度葡萄酒飲用者)用一組Kaggle的數據集撰寫了一個可以幫忙在網上選紅酒的AI小程序。

該數據中包含對葡萄酒的評論,葡萄酒評級(以分數衡量),以及從WineEnthusiasts網站提取的其他相關信息。他通過訓練一個機器學習模型,實現了根據基于文本分析預測葡萄酒質量。

數據集按照日期被劃分為兩組數據文件。一組作為訓練集,把一組作為測試集。

以下是整個訓練過程,一起看看。

目標:訓練一個機器學習模型,實現基于文本分析的葡萄酒質量預測

WineEnthusiast的用戶會對葡萄酒評分,1表示最差,100表示最好。不幸的是,傳到網站上的都是正面評論,所以數據集里分數值只分布在80-100之間。

這意味著我們所用的這套數據并不能很好反應我們在探索的問題。因此,基于這套數據所建立的模型只適用于評論較好的酒。在進行分析之前,我們還是得先預習一些圈內基本知識。通過從閱讀葡萄酒網站及一些相關資源,我找到一種自認為不錯的分級方案,按照評分進行分級。如下所示。

對于一個最終用戶(白話說就是買葡萄酒的),評分就是他們想要傳達的信息。如果我們按照上述劃分形式,我們就能既減少了葡萄酒信息維度又能保留住質量相關信息。

重要決定:我把這個問題定義為一個傾向性分析問題,基于用戶評價判斷葡萄酒屬于Classic(典藏酒)、Superb(豪華酒)、Excellent(酒中上品)、Very Good(優質酒)、Good(好酒)及Acceptable(湊合吧)中的哪個等級。

實現:探索式分析

在這步中,我們會一點點深入理解數據。數據探索能夠給我們帶來更多解決問題的靈感。數據集中除了評論和評分,還有其他信息,如葡萄酒價格、品類(葡萄品種)及產地等。

數據預覽

我們可以把上述的其他信息也引入作為特征參數,這樣就能構建出一個更全面的模型來預測葡萄酒質量。為了將文字描述與其他特征結合起來進行預測,我們可以創建一個集成學模型(文本分類器就是集成在內的一部分);也可以創建一個層級模型,在層級模型中,分類器的輸出會作為一個預測變量。

出于此目的,我們僅研究一下評論與葡萄酒評分之間的關系。

全面地查看數據完整性

評分和評論描述這兩列數據是完整的。前文提到過,葡萄酒的評分相對都比較高。所以,以我的經驗看來,價格也會比較高。

data.describe()的輸出結果

data.info()的輸出結果

查看文本數據

評論的內容看似來都很清晰。沒有出現任何語法和拼寫錯誤,而且評論的言語都比較簡潔。請看示例:

這款由純葡萄釀制的精品干紅來自奧克維爾酒莊,并在木桶中足足陳釀3年。當如紅櫻桃汁般的果味遇上濃烈的焦糖味,再在精致柔和的單寧的作用下,并散發著微微薄荷香,真是令人垂涎。綜合從釀造開始至今的各項數據,它還值得再存放幾年使其越陳越香,推薦品嘗時間2022年-2030年。

還是得有一定的葡萄酒知識才能完全讀懂一些評論。上述示例中,“單寧”是一種能使得葡萄酒口感很干的一種成分。

下圖中我能看到這些常用術語的出現頻率。

最常出現的詞就是“Wine”,出現頻率超過了0.025%

分類前的準備工作

所以,我們可以通過評分,將評論和我們所分的等級關聯起來。但不巧的是,我們的數據并不是很平衡。

沒有落在第4級內的評論,大部分評論都落在第1-3級中。數據分布不均雖然是個問題,但還是可以通過細分類別或者設置類別權重來處理。可是,某個類別完全沒數據,這可得好好想想辦法了。

重要決定:我把第5級和第4級合成一級,這里評分在94-100中的評論就都在這個級別里了。

有必要清洗文本數據嗎?

我們可以考慮一下要不要對葡萄酒的評論信息進行清洗或者標準化。做不做這事主要取決于我們所使用的學習算法。如果我們想把每條評論轉化成一個向量并作為一對一分類器的輸入,那就得花大量的時間進行文本的標準化處理。另一種方式,如果以多向量的形式順序處理文本內容,就用不著過多的標準化了。

順序處理文本(通常每個單詞都有對應的向量,且對應關系都很明確)有利于詞義消歧(一個單詞有多種含義)和識別同義詞。因為評論都是關于葡萄酒的,其中所提到的專業術語語境基本一致,所以我不太在意詞義消歧和識別同義詞的問題。但是由于評論的內容都比較正面,我當心一對一分類器很難區分出相鄰兩個類別之間的微妙差異。

重要決定:我要使用遞歸神經網絡模型,把每條評論轉化為向量序列傳到模型中進行預測。這樣我也就保留了文本的原始形式。

相較于使用TF-IDF等方式將文本轉為詞向量傳到一對一分類器中,我所選的就會一定更優嗎?這并不好說。不過,這可以留到以后試試再作比較。

文本向量化

基于神經網絡的單詞向量化通常可以使用word2vec、GloVe和fastText。對此,我們可以選擇使用自己定義的詞向量映射模型或是預先訓練好的模型。由于我們要處理的文本沒有異常語意,所以我們直接使用訓練好的詞向量模型來理解文字即可。

重要決定:使用預先訓練好的詞向量模型。

但是該使用哪種詞向量映射模型?首先排除掉fastText方案,因為它是通過對單詞的n-gram等級求和來構建詞向量的。而我們處理的文本中不太可能包含標準單詞表以外的詞匯(沒有拼寫錯誤、俚語、縮寫),所以fastText這種方案沒什么優勢。

重要決定:使用訓練好的GloVe詞向量。

我們可以下載一些已經訓練好的詞向量。我選用已經標記好的Common Crawl數據集,它包含大量詞匯且區分大小寫,名為300d的詞向量包含300個維度。

在加載預先訓練好的嵌入之前,我們應該定義一些固定的參數,另外還需下載一些必備的庫文件以及將類別進行one-hot化編碼。

分割訓練集和驗證集

即使我們已經有了指定的測試集,我們也最好把訓練數據分為訓練集和驗證集,因為這有助于調參。

我將使用Keras庫中的text_to_sequences函數來保留文本中的單詞序列。同時,每個單詞會根據預先訓練好的詞向量模型映射為詞向量。不足100(max_len)個單詞的序列會填充到100個,超過100(max_len)個單詞的序列只截取100個,這樣學習算法的輸入向量長度就一致了。

如果文本中出現了生僻的單詞(沒在訓練好的詞向量模型中),它們會被設定為0向量。

注:如果有大量單詞不在模型的詞庫中,那我們得找個更智能的方式來初始化這些單詞。

訓練分類器

由于文本的內容通常比較短,我將選擇使用GRU網絡,而不用LSTM。這樣,文本內容越短,我們對內存的開銷就越少,而且GRU還能使學習算法效率更高。

我還會使用到早停法,這種方式可以通過驗證集的準確率來判斷是否要繼續訓練網絡。當驗證集的準確率在幾次訓練后呈現為持續下降,早停法就會生效以停止訓練。該方法還會將最有權重保存為“checkpoint”(就是本例中的model.h5),當準確度提升后還會更新權重。使用早停法,我們大可對網絡進行多次訓練,而不必擔心出現過擬合。

patience這個參數可以理解為一個閾值,用來判斷是否要提前結束訓練。patience=3,意味著如果對全樣本進行3次訓練后仍沒有減少損失函數,則執行早停。

遞歸神經網絡的結構比較簡單。其結構里依次包含著有50個神經元的雙向GRU層、池化層、全連接層、dropout層。雙向則意味著網絡能按照單詞出現的正序和逆序都進行學習。

分類器還需優化一下對準確率這個指標的定義。因為準確率無法辨別出人類兩種誤判中的差別。對于人的判斷而言,把0級酒預測為4級酒可能比把0級酒預測為1級酒要糟糕得多。對神經網絡的判斷而言,卻看不出差別。在未來的實踐中,可以設計一個指標來反映兩者的關系。

是時候評估模型了——祭出我們的測試集

準確率高達64%!

請看下圖中的混淆矩陣。從矩陣中,數值以百分比的形式反映出我們樣本數據中的數據不平衡。

必須記住的是,由于數據樣本中關于葡萄酒的評論都比較正面,所以這個分類器僅適用于評價較好的葡萄酒。如果未來能拿到一些不一樣數據來嘗試,結果想必也會很有意思。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3305

    瀏覽量

    49221
  • 機器學習
    +關注

    關注

    66

    文章

    8438

    瀏覽量

    133085
  • 數據集
    +關注

    關注

    4

    文章

    1209

    瀏覽量

    24833

原文標題:如何在網上選到一瓶心儀的紅酒?通過文本分析預測葡萄酒的質量

文章出處:【微信號:BigDataDigest,微信公眾號:大數據文摘】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【大語言模型:原理與工程實踐】大語言模型的預訓練

    進行損失計算,得到下一個目標的預測。也會設計些其他輔助訓練任務,與主任務共同訓練。選擇合適的預訓練
    發表于 05-07 17:10

    50多種適合機器學習預測應用的API,你的選擇是?(2018年版本)

    摘要: 本文盤點了2018年以來人臉和圖像識別、文本分析、自然語言處理、情感分析、語言翻譯、 機器學習預測這幾個領域常用的API,讀者可以
    發表于 05-03 16:41

    pyhanlp文本分類與情感分析

    需要調節。訓練本系統實現訓練算法是樸素貝葉斯法,無需用戶關心內部細節。另有子項目實現
    發表于 02-20 15:37

    50機器學習實用API干貨

    還在為找不到機器學習的API而煩惱嗎?本篇文章將介紹包含50+關于人臉和圖像識別,文本分析,NLP,情感
    發表于 10-06 08:00

    NLPIR平臺在文本分類方面的技術解析

    下NLPIR大數據語義智能分析系統是怎樣實現文本分類的。NLPIR大數據語義智能分析平臺的文本分
    發表于 11-18 17:46

    自回歸滯后模型進行多變量時間序列預測案例分享

    1、如何建立模型來進行多元時間序列預測呢?  下圖顯示關于不同類型葡萄酒銷量的月度多元時間
    發表于 11-30 15:33

    50機器學習實用API

    還在為找不到機器學習的API而煩惱嗎?本篇文章將介紹包含50+關于人臉和圖像識別,文本分析,NLP,情感
    的頭像 發表于 06-13 18:20 ?4342次閱讀

    改進粒子群優化神經網絡的葡萄酒質量識別

    算法代替BP網絡自身訓練過程,建立PSO優化BP網絡模型,進而對葡萄酒質量進行分類評定。經過實證與文獻的對比,PSO優化算法的確能夠有效的代替BP神經網絡自身訓練過程。
    發表于 01-16 14:25 ?3次下載
    改進粒子群優化神經網絡的<b class='flag-5'>葡萄酒質量</b>識別

    基于深度神經網絡的文本分分析

      隨著深度學習技術的快速發展,許多研究者嘗試利用深度學習來解決文本分類問題,特別是在卷積神經網絡和循環神經網絡方面,出現許多新穎且有效的分類方法。對基于深度神經網絡的
    發表于 03-10 16:56 ?37次下載
    基于深度神經網絡的<b class='flag-5'>文本分</b>類<b class='flag-5'>分析</b>

    融合文本分類和摘要的多任務學習摘要模型

    文本摘要應包含源文本中所有重要信息,傳統基于編碼器-解碼器架構的摘要模型生成的摘要準確性較低。根據文本分類和
    發表于 04-27 16:18 ?11次下載
    融合<b class='flag-5'>文本分</b>類和摘要的多任務<b class='flag-5'>學習</b>摘要<b class='flag-5'>模型</b>

    基于不同神經網絡的文本分類方法研究對比

    海量文本分析實現大數據理解和價值發現的重要手段,其中文本分類作為自然語言處理的經典問題受到研究者廣泛關注,而人工神經網絡在文本分析方面的優異表現使其成為目前的主要研究方向。在此背景下
    發表于 05-13 16:34 ?49次下載

    基于LSTM的表示學習-文本分模型

    類的關鍵。為了獲得妤的文本表示,提高文本分類性能,構建了基于LSTM的表示學習-文本分模型,其中表示
    發表于 06-15 16:17 ?18次下載

    NLP中的遷移學習:利用預訓練模型進行文本分

    遷移學習徹底改變了自然語言處理(NLP)領域,允許從業者利用預先訓練模型來完成自己的任務,從而大大減少了訓練時間和計算資源。在本文中,我們將討論遷移
    發表于 06-14 09:30 ?476次閱讀

    如何基于深度學習模型訓練實現圓檢測與圓心位置預測

    Hello大家好,今天給大家分享下如何基于深度學習模型訓練實現圓檢測與圓心位置預測,主要是通過
    的頭像 發表于 12-21 10:50 ?2189次閱讀
    如何基于深度<b class='flag-5'>學習</b><b class='flag-5'>模型</b><b class='flag-5'>訓練</b><b class='flag-5'>實現</b>圓檢測與圓心位置<b class='flag-5'>預測</b>

    如何基于深度學習模型訓練實現工件切割點位置預測

    Hello大家好,今天給大家分享下如何基于深度學習模型訓練實現工件切割點位置預測,主要是通過對
    的頭像 發表于 12-22 11:07 ?859次閱讀
    如何基于深度<b class='flag-5'>學習</b><b class='flag-5'>模型</b><b class='flag-5'>訓練</b><b class='flag-5'>實現</b>工件切割點位置<b class='flag-5'>預測</b>
    主站蜘蛛池模板: 欧美三级小视频 | 国产播放啪视频免费视频 | 四虎国产永久在线精品免费观看 | 亚洲色图国产精品 | 狠狠色丁香婷婷综合久久来 | 久久久久久久久综合 | 午夜高清在线观看免费6 | 日韩三级中文 | 在线成人免费观看国产精品 | 夜夜穞狠狠穞 | 精品乱人伦一区二区三区 | 三级网站在线播放 | 天天综合久久久网 | 国产在线精品一区二区夜色 | 午夜免费视频福利集合100 | 天天干夜夜添 | 中文字幕一区视频 | 2021日本三级理论影院 | semimi亚洲综合在线观看 | 2021最新久久久视精品爱 | 亚洲综合国产一区二区三区 | 欧美在线视频7777kkkk | 伊人久久大香线蕉综合影 | 成年色黄大色黄大片 视频 成年视频xxxxx免费播放软件 | 亚洲国产一区二区三区a毛片 | 日韩美女拍拍免费视频网站 | 国内精品伊人久久大香线焦 | 天天摸天天草 | www四虎影院 | 成人在线精品 | 欧美精品一二区 | 日本一区二区三区四区不卡 | 欧美爱爱网址 | 男女爱爱是免费看 | 8844aa在线毛片 | 视频在线高清完整免费观看 | 色妇视频| 日韩1024| 亚洲国产成人久久精品图片 | 日本理论午夜中文字幕第一页 | 2022第二三四天堂网 |