<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[資料探員 Data Agent - Medium]]></title>
        <description><![CDATA[資料探員分享資料科學的算法解說與案例應用。站長自學生時期從事廣告投放及內容行銷，研所進修後轉職數據科學，擅長用戶行為序列分群、時間序列預測及文本探勘。網站版： https://idataagent.com - Medium]]></description>
        <link>https://medium.com/datamixcontent-lab?source=rss----b006fe95c676---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>資料探員 Data Agent - Medium</title>
            <link>https://medium.com/datamixcontent-lab?source=rss----b006fe95c676---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 23:43:48 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/datamixcontent-lab" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[【NLP 自然語言處理】BERT + Fast.ai — 多標籤分類模型實作]]></title>
            <link>https://medium.com/datamixcontent-lab/nlp-%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86-bert-fast-ai-%E5%A4%9A%E6%A8%99%E7%B1%A4%E5%88%86%E9%A1%9E%E6%A8%A1%E5%9E%8B%E5%AF%A6%E4%BD%9C-673eca215263?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/673eca215263</guid>
            <category><![CDATA[fastai]]></category>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[multilabel-classifier]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sun, 22 Aug 2021 14:22:05 GMT</pubDate>
            <atom:updated>2021-08-22T14:30:41.385Z</atom:updated>
            <content:encoded><![CDATA[<h3>【NLP 自然語言處理】BERT + Fast.ai — 多標籤分類模型實作</h3><h4>Fast.ai 是基於 PyTorch 的深度學習函式庫，為深度學習應用提供統一的 API，使開發者更無痛上手</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i2yZiYezz7jf-46234x12A.jpeg" /></figure><p>PyTorch 源碼牽涉一些底層程式，能夠自由修改但出錯機會也大，而 Fastai 提供統一的 API 調用 PyTorch 函式。本文將使用 fastai 及 BERT pretrained model 訓練多標籤文本分類模型。</p><h4>本文任務‌</h4><ul><li>了解多標籤分類任務</li><li>認識 Fast.ai</li><li>使用 Fast.ai 進行文本多標籤分類任務</li></ul><pre>在開始前不免俗的…<br>．如果你喜歡這篇文章的選題，請幫我拍手👏 +5 下，讓我瞭解這是不是讀者所喜歡的方向<br>．如果這篇文章的整理對你有幫助，請幫我拍手👏 +20 下，讓我瞭解內容對讀者的幫助程度<br>．如果還希望有類似的知識點整理，請幫我拍手👏 +50 下，讓類似的內容可以繼續出現！</pre><h3>何謂多標籤分類‌？</h3><p>和「二元分類」、「多類別分類」相比，「多標籤分類」是指每個樣本能夠被賦予多個 label，各個 label 是否標上樣本，由 sigmoid function 產生一個 0~1之間的機率、設定門檻後決定。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1007/1*Ww8jlia98Z9MOhRsW-2Bfg.jpeg" /><figcaption>資料探員站長自製整理圖</figcaption></figure><h3>認識 Fast.ai‌</h3><p>Fast.ai 是基於 PyTorch 的深度學習函式庫，為深度學習應用提供統一的 API，使開發者更無痛上手、加速深度學習應用開發。透過 Fast.ai 可以使用統一的架構進行影像辨識、文本、時間序列、協同過濾等應用。‌</p><ul><li>官方文件：<a href="https://docs.fast.ai/">https://docs.fast.ai/</a></li><li>文件及影片教學：<a href="https://course.fast.ai/">https://course.fast.ai/</a></li></ul><h3>使用 Fast.ai 進行文本多標籤分類任務</h3><ul><li>使用資料集‌：<a href="https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge">Toxic Comment Classification Challenge | Kaggle</a></li></ul><p>此 Kaggle 比賽使用來自維基百科的留言資料，將留言標上 6 種代表負面情緒的標籤，分別是 toxic, severe_toxic, obscene, threat, insult, identity_hate，幫助平台判斷是否阻擋用戶的不當留言。</p><ol><li>安裝所需套件</li></ol><pre>!pip install pytorch-pretrained-bert</pre><p>2. 引入所需套件</p><p>包含基本的 numpy, pandas, sklearn 的 train_test<em>_</em>split 及 pytorch, fastai套件，並自 pretrained model 提取 BERT Tokenizer 及 BERT 文本分類模型。</p><pre>import numpy as np<br>import pandas as pd</pre><pre>from typing import *<br>from sklearn.model_selection import train_test_split</pre><pre>import torch<br>import torch.optim as optim</pre><pre>from fastai import *<br>from fastai.vision import *<br>from fastai.text import *<br>from fastai.callbacks import *</pre><pre>from pytorch_pretrained_bert import BertTokenizer<br>bert_tok = BertTokenizer.from_pretrained(config.bert_model_name)</pre><pre>from pytorch_pretrained_bert.modeling import BertForSequenceClassification<br>model = BertForSequenceClassification.from_pretrained(&#39;bert-base-uncased&#39;, num_labels=6)</pre><p>3. 引入本任務訓練資料集</p><pre>label_cols = [&#39;toxic&#39;, &#39;severe_toxic&#39;, &#39;obscene&#39;, &#39;threat&#39;, &#39;insult&#39;, &#39;identity_hate&#39;]</pre><pre>train = pd.read_csv(&#39;train.csv&#39;, error_bad_lines=False, engine=&#39;python&#39;)<br>train[&#39;comment_text&#39;] = train[&#39;comment_text&#39;].str.replace(&#39;([“”&quot;¨«»®´·º½¾¿¡§£₤‘’])&#39;, &#39;&#39;)</pre><pre>test = pd.read_csv(&#39;test.csv&#39;, error_bad_lines=False, engine=&#39;python&#39;)<br>test[&#39;comment_text&#39;] = test[&#39;comment_text&#39;].str.replace(&#39;([“”&quot;¨«»®´·º½¾¿¡§£₤‘’])&#39;, &#39;&#39;)</pre><pre>train, val = train_test_split(train)</pre><p>4. 創建所需的 BertTokenizer 及 Vocab</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/e172db82794e89d699f4e0e509968c4a/href">https://medium.com/media/e172db82794e89d699f4e0e509968c4a/href</a></iframe><p>5. 調用 Fastai 的 TextClasDataBunch 方法，將資料集轉成可以丟進 Fastai 模型的格式</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/e267a5b776b7573555eba19f6c919f3b/href">https://medium.com/media/e267a5b776b7573555eba19f6c919f3b/href</a></iframe><p>6. 產生<strong>多標籤模型架構</strong></p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/205f704d60b143e4219d0b86fa3b5ee9/href">https://medium.com/media/205f704d60b143e4219d0b86fa3b5ee9/href</a></iframe><p>7. 設定指標評估 function 並建置模型</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c312768511e272c117e7068d9a6d9564/href">https://medium.com/media/c312768511e272c117e7068d9a6d9564/href</a></iframe><p>8. 測試模型效果</p><ul><li>正面案例：沒有被標上任何負面情緒 label，機率分數也低於門檻很多</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/958/0*SBH58IA0LGclD-D1" /></figure><ul><li>負面案例：被標上負面情緒 label = {‘toxic’, ‘threat’}，其他標籤的機率分數也更為接近門檻</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jRlJ8HLwcNrQUGSY" /></figure><p>9. 印出模型成效指標</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/978/1*-a6EV9GbqALO5uvyvSTlRQ.png" /></figure><p>以上是運用 Fast.ai 及 BERT 預訓練模型進行文本多標籤分類的實作案例，希望對你有幫助！</p><blockquote>若想獲得完整代碼請至<a href="https://www.facebook.com/MarketingDataAgent/posts/1244600585979761">粉專貼文</a>留言，Chatbot 會將連結火速送到你手中。</blockquote><pre>．如果你喜歡這篇文章的選題，請幫我拍手👏 +5 下，讓我瞭解這是不是讀者所喜歡的方向<br>．如果這篇文章的整理對你有幫助，請幫我拍手👏 +20 下，讓我瞭解內容對讀者的幫助程度<br>．如果還希望有類似的知識點整理，請幫我拍手👏 +50 下，讓類似的內容可以繼續出現！</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=673eca215263" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/nlp-%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86-bert-fast-ai-%E5%A4%9A%E6%A8%99%E7%B1%A4%E5%88%86%E9%A1%9E%E6%A8%A1%E5%9E%8B%E5%AF%A6%E4%BD%9C-673eca215263">【NLP 自然語言處理】BERT + Fast.ai — 多標籤分類模型實作</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【時間序列預測】使用 Facebook Prophet 開源套件構建單變量時間序列預測模型]]></title>
            <link>https://medium.com/datamixcontent-lab/%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97%E9%A0%90%E6%B8%AC-%E4%BD%BF%E7%94%A8-facebook-prophet-%E9%96%8B%E6%BA%90%E5%A5%97%E4%BB%B6%E6%A7%8B%E5%BB%BA%E5%96%AE%E8%AE%8A%E9%87%8F%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97%E9%A0%90%E6%B8%AC%E6%A8%A1%E5%9E%8B-%E9%81%A9%E5%90%88%E5%88%9D%E5%AD%B8%E8%80%85%E9%96%B1%E8%AE%80-b27dc783743b?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/b27dc783743b</guid>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[beginners-guide]]></category>
            <category><![CDATA[time-series-forecasting]]></category>
            <category><![CDATA[data-analytics]]></category>
            <category><![CDATA[time-series-analysis]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sun, 08 Aug 2021 16:28:33 GMT</pubDate>
            <atom:updated>2021-08-08T16:30:34.147Z</atom:updated>
            <content:encoded><![CDATA[<h4>Time Series Prediction 時間序列預測套件介紹：Prophet 安裝與應用 101</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OguTqtevDBhDtuwl03lrQQ.jpeg" /></figure><h3>認識 Prophet</h3><p>Prophet 是一個由 Facebook Core Data Science Team 發表的開源代碼庫，用於<strong>時間序列預測</strong>，基於 <strong>Python</strong> 和 <strong>R</strong> 語言。相較於自行訓練時間序列預測模型，Prophet 的一些優點如下：‌</p><ol><li>改善模型選擇和調參的時間成本：時間序列有許多經典算法如 AR, VAR, ARMA, ARIMA, 指數平滑法等，選擇模型和調參的過程可被自動化。</li><li>提供讓分析師、領域專家能根據經驗法則設定的參數：例如歷史週期、特殊節日的日期等，不會因為寫成制式套件就失去自己手刻的好處。</li></ol><p>其實英文版有不少 use cases，不過在安裝套件上只有官方文件的說明，如果對 conda 虛擬環境、套件管理不太熟悉可能會踩不少雷，因此這邊我把安裝重點步驟寫下來。</p><p>‌</p><h3>安裝步驟</h3><p>(0) 首先建議要用 conda 創建虛擬環境，避免不同套件版本產生不必要的衝突</p><pre>(base) $ conda create -n env_name python=3.7</pre><pre>(base) $ conda activate env_name</pre><pre>(env_name) $</pre><h4>Mac OS</h4><p>(1) 依照官方文件，由於 Prophet 程式庫中用到一個進行 Bayesian inference 的套件名為 pystan ，本身需要使用 C++ compiler 來運行，支援的有 gcc 及 clang。</p><blockquote><em>關於編譯器的比較：GCC, LLVM &amp; CLANG，請參見</em><a href="https://developer.51cto.com/art/202011/630677.htm"><em>相關文章</em></a>‌</blockquote><p>Mac OS 預設的編譯器是 clang ，檢查一下版本基本上就沒問題。</p><pre>(env_name) $ clang --version</pre><pre>Apple LLVM version 10.0.1 (clang-1001.0.46.4)<br>Target: x86_64-apple-darwin18.7.0<br>Thread model: posix<br>InstalledDir: /Library/Developer/CommandLineTools/usr/bin</pre><h4>Windows</h4><p>而 Windows 的預設編譯器是 MSVC ，pystan 並不支援，因此需要額外安裝 Windows 版本的 gcc：mingw-w64 compiler</p><blockquote>關於 mingw-w64 compiler 具體安裝了哪些東西，請看<a href="https://pystan2.readthedocs.io/en/latest/windows.html#windows">官方文件</a>說明，這裡就不贅述</blockquote><pre>(env_name) $ conda install libpython m2w64-toolchain -c msys2</pre><p>(2) 確認都有安裝好支援的 c++ compiler 後，記得先安裝 pystan 。以下都建議使用 conda install，不要用 pip install，虛擬環境下的 jupyter notebook 可能會 import 不到。</p><pre>(env_name) $ conda install -c pystan conda-forge</pre><p>(3) 接著安裝 prophet （注意：v1.0 後的版本套件名稱為 prophet，不再是 fbprophet，網路上很多教學文章還以舊稱，記得在 import 時調整即可）</p><pre>(env_name) $ conda install -c prophet conda-forge</pre><p>(4) 完成後確認版本號</p><pre>import prophet<br>print(prophet.__version__)</pre><pre>&gt; 1.0</pre><h3>單變量時間序列預測</h3><p>本篇先以單變量時間序列預測為範例，相同資料集也在 <a href="https://machinelearningmastery.com/time-series-forecasting-with-prophet-in-python/">Machine Learning Mastery</a> 上也有教學。下一篇會實作一個多變量時間序列的案例來介紹 Prophet 的功能。</p><h4>簡單版範例的完整代碼</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/92a9e016eb191784bd6abb2807e9a3bc/href">https://medium.com/media/92a9e016eb191784bd6abb2807e9a3bc/href</a></iframe><h4>預測結果</h4><p>yhat 是預測值，yhat_upper 及 yhat_lower 是預測值的上下界。除此之外還有代表<strong>趨勢變化</strong>、<strong>週期性</strong>及其他泛化線性模型的參數。Prophet 其實是將多個時間序列預測的線性與非線性模型整合成一個泛化線性模型（Generalized Additive Model, GAM），以至於他能夠涵蓋了trend, seasonality, holidays &amp; idiosyncratic changes 等時間序列的重要特徵在模型中。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mKGuM-EVMo60E5Ur5stMsw.jpeg" /></figure><h4>預測分佈圖</h4><p>黑點是資料集中的實際值，藍線是模型的預測值，藍底範圍則是模型估計的 95% 信賴區間，也就是模型有信心 95% 的實際值會落在此範圍。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/712/0*qS_ZYKb0uOSfbmRM" /></figure><p>參考資料：</p><ul><li><a href="https://www.inside.com.tw/article/8635-facebook-prophet-forecasting-at-scale">支援 Python 與 R 語言！Facebook 開源大規模預測工具「Prophet」</a>（Prophet 其實 2017 年就發表了，但中文教程較少）</li><li><a href="https://pystan2.readthedocs.io/en/latest/windows.html#windows">PyStan Documentation</a></li><li><a href="https://github.com/facebook/prophet">Prophet Github</a></li><li><a href="https://medium.com/future-vision/the-math-of-prophet-46864fa9c55a">The Math of Prophet</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b27dc783743b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97%E9%A0%90%E6%B8%AC-%E4%BD%BF%E7%94%A8-facebook-prophet-%E9%96%8B%E6%BA%90%E5%A5%97%E4%BB%B6%E6%A7%8B%E5%BB%BA%E5%96%AE%E8%AE%8A%E9%87%8F%E6%99%82%E9%96%93%E5%BA%8F%E5%88%97%E9%A0%90%E6%B8%AC%E6%A8%A1%E5%9E%8B-%E9%81%A9%E5%90%88%E5%88%9D%E5%AD%B8%E8%80%85%E9%96%B1%E8%AE%80-b27dc783743b">【時間序列預測】使用 Facebook Prophet 開源套件構建單變量時間序列預測模型</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【NLP 自然語言處理】將 Bert 加入 tf.Keras Model 與 Bert 起源淺談]]></title>
            <link>https://medium.com/datamixcontent-lab/nlp-%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86-%E5%B0%87-bert-%E5%8A%A0%E5%85%A5-tf-keras-model-%E8%88%87-bert-%E8%B5%B7%E6%BA%90%E6%B7%BA%E8%AB%87-1b84a183482d?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/1b84a183482d</guid>
            <category><![CDATA[nlp]]></category>
            <category><![CDATA[text-mining]]></category>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[bert]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sat, 07 Aug 2021 15:48:30 GMT</pubDate>
            <atom:updated>2021-08-07T15:58:41.659Z</atom:updated>
            <content:encoded><![CDATA[<h3>【NLP 自然語言處理】Bert 簡介＆將 Bert 加入 tf.Keras Model（附程式碼）</h3><h4>用自己的話彙整多篇 Bert 教學，挑選能夠方便加在各式神經網絡架構的方法</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*td3MyutemFglrn1clFipjQ.png" /></figure><h3>起源與影響</h3><p>BERT（Bidirectional Encoder Representations for Transformers）是由 Wikipedia（25億字）, BooksCorpus（8億字） 等未經標籤的大量文本資料作為 input，訓練而成的模型。由於他在廣泛的 NLP task 都有良好的表現（如 Question Answering (SQuAD v1.1), Natural Language Inference (MNLI)等）已在 ML 社群引起轟動並改變許多人建構 NLP 模型的方式，同時它也啟發了後續更多語言模型的出現（如 Google’s TransformerXL, OpenAI’s GPT-2, XLNet, ERNIE2.0, RoBERTa 等）</p><h3>重點介紹</h3><p>(1) BERT 的構造是由多個 Transformer encoders 相疊而成 (multi-layer bidirectional Transformer encoder)</p><ul><li>BERT base–12 layers (transformer), 12 attention heads, &amp; 110 million parameters</li><li>BERT Large–24 layers, 16 attention heads and, 340 million parameters</li></ul><p>(2) BERT 與他的前代模型（OpenAI GPT）差異最大的部分是在於使用了 Bidirectional 的概念</p><ul><li>Bidirectional: BERT 的 self-attention layer 是雙向的，也就是訓練時會從 token（一個字符）的上、下文學習</li><li>上下文很重要是因為，同樣的字擺在不同的上下文位置，會有不同含意（contextual）</li></ul><p>(3) Pre-training steps 對 BERT 的優異表現來說相當關鍵</p><h3>文本前處理</h3><p>文本資料在進入 BERT 模型做訓練前有先經過前處理：‌</p><p>(a) 句子開頭以 [CLS] 做標記、斷句時以 [SEP] 做標記</p><p>(b) Input Embedding 是 3 個部分的加總：Token, Segment, Position</p><ul><li>Token: 文字本身 WordPiece Token</li></ul><blockquote>使用 WordPiece Tokenization：以一個字作為單位，再反覆加入頻次高的組合字到模型中（ex: 音, 樂, 符, 音樂, 音符, 樂符, …）</blockquote><ul><li>Segment: 文字屬於起頭句還是結尾句</li><li>Position: 文字在句中的位置</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HOpnRd0B71h1YAeI" /></figure><h3>Pre-training</h3><p>在 pre-training 階段時是同時訓練兩個 task：</p><ul><li>Masked Language Model：把句子中的其中一個字蓋住，讓模型預測（最符合上下文語意）最可能是填入什麼字</li><li>Next Sentence Prediction：給模型前一句，模型預測出下一句接續什麼最符合語意</li></ul><h3>使用 BERT 並在自己的模型中微調</h3><p>Bert 可以用於以下任務：</p><ol><li>單句分類 Single Sequence Classification</li><li>對句分類 Sequence Pair Classification</li><li>問答任務 Question-Answering</li><li>單句貼標 Single Sequence Tagging：對句中的每個文字都貼標，ex: NER (Named Entity Recognition)</li></ol><p>Fine-tuning 時的注意事項：</p><ol><li>文本資料量大於 10 萬時，超參數的影響較小</li><li>在資料量充足的情況下，pre-training steps 越多，精確度越好</li></ol><h3>將 Bert 加入 tf.Keras Model</h3><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/aa45bdb3cea5528040f8b43a7b0f44aa/href">https://medium.com/media/aa45bdb3cea5528040f8b43a7b0f44aa/href</a></iframe><p>接著呼叫寫好的 class：</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c8adbeb1bdca9fb52eaa848c110560f1/href">https://medium.com/media/c8adbeb1bdca9fb52eaa848c110560f1/href</a></iframe><p>可以看到將 Bert 加在 input layer 後的模型架構：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Z4IlBRMy1qfl5xNXunBeBw.png" /></figure><p>參考資料：</p><ul><li><a href="https://www.kaggle.com/abhinand05/bert-for-humans-tutorial-baseline/notebook">BERT for Humans: Tutorial+Baseline</a></li><li><a href="https://www.kaggle.com/gunesevitan/nlp-with-disaster-tweets-eda-cleaning-and-bert/notebook#7.-Model">NLP with Disaster Tweets — EDA, Cleaning and BERT</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b84a183482d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/nlp-%E8%87%AA%E7%84%B6%E8%AA%9E%E8%A8%80%E8%99%95%E7%90%86-%E5%B0%87-bert-%E5%8A%A0%E5%85%A5-tf-keras-model-%E8%88%87-bert-%E8%B5%B7%E6%BA%90%E6%B7%BA%E8%AB%87-1b84a183482d">【NLP 自然語言處理】將 Bert 加入 tf.Keras Model 與 Bert 起源淺談</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【機器學習知識點】非監督式學習的應用情境與演算法分類]]></title>
            <link>https://medium.com/datamixcontent-lab/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9F%A5%E8%AD%98%E9%BB%9E-%E9%9D%9E%E7%9B%A3%E7%9D%A3%E5%BC%8F%E5%AD%B8%E7%BF%92%E7%9A%84%E6%87%89%E7%94%A8%E6%83%85%E5%A2%83%E8%88%87%E6%BC%94%E7%AE%97%E6%B3%95%E5%88%86%E9%A1%9E-c3af292be5cc?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/c3af292be5cc</guid>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-analytics]]></category>
            <category><![CDATA[機器學習]]></category>
            <category><![CDATA[數據分析]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Mon, 02 Aug 2021 16:09:17 GMT</pubDate>
            <atom:updated>2021-08-04T12:21:57.780Z</atom:updated>
            <content:encoded><![CDATA[<h4>本文條列非監督式學習的實務應用舉例與相關算法，並描述其概念、圖示及延伸閱讀補充</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/977/0*DywcqTBn3YrwtsmX.png" /></figure><p>本期帶大家盤點 非監督式學習 的應用情境與算法，將網路上散佈的知識集中在這邊。</p><pre>開始前……<br>如果你喜歡這篇文章的選題和動機，請幫我拍手👏 +5 下，讓我瞭解這是不是讀者妳/你所喜歡的方向喔</pre><h3><strong>(1) 分群</strong></h3><h4><strong>聚合式階層分群法（Agglomerative Hierarchical Clustering）</strong></h4><ol><li>將每個樣本視為一個群聚，從樹狀結構底部不斷融合相近的樣本；假如生成的群數多於我們預期的群數，則反覆重複聚合<strong>最近距離的兩群</strong>的動作，直到群數降到條件範圍內。</li><li>完成的分群會以樹狀結構呈現，稱作 dendrogram。</li><li>若群內有多個樣本，該如何定義兩群間的距離？<br> 在階層式分群中常見的距離定義方式有：</li></ol><ul><li>Single Linkage：群與群的距離為不同群中最接近兩點間的距離，容易產生大者恆大的分群結果。</li><li>Average Linkage：群與群的距離為不同群中各點與各點間距離總和平均，相比 Single Linkage 則較容易產生齊頭並進、各群規模相近的分群結果。</li><li>Complete Linkage：群與群的距離為不同群中最遠兩點間的距離</li><li>Ward’s Method：將兩群合併後，各點到合併後的群中心的距離平方和</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HAS3Oq2ZLMOpQPZD" /><figcaption>聚合式階層分群法 dendrogram 示意圖｜圖片來源：datanovia</figcaption></figure><h4><strong>分割式分群（Partitional Clustering）</strong>：以 <strong>K-Means</strong> 演算法 為例</h4><ul><li>將<em> n</em> 個點切分到 <em>k</em> 個群中，不斷重複調整群心、重新分群，最後達到每個點都隸屬於與其群心最近的聚類（群）中。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*Dpl2-MMFzCU1VZ-C" /><figcaption>K-Means 分群結果三維展示圖｜圖片來源：scikit-learn 官方文件</figcaption></figure><h4>基於<strong>機率分佈</strong>的分群算法：以 <strong>高斯混合模型 </strong>為例</h4><ul><li>使用多個高斯機率密度函數來更精確地量化特徵的分佈，也就是將特徵分解為多個高斯機率密度函數的統計模型。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*IyVfRhWgele_KlFj" /><figcaption>高斯分佈以機率為基礎分群示意圖｜圖片來源：CSDN Blog</figcaption></figure><h3><strong>(2) 關聯規則</strong></h3><h4><strong>Apriori 演算法</strong></h4><ul><li>一種逐層搜索的迭代方法。先找出出現頻次為 1 的項目集合，存為 L1；再用 L1 找出現頻次為 2 的項目集合 L2，L2 再用來找 L3，依此類推，直到不能找到更多頻次共同出現的項目集合。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*2r1xSag3_jk3IH_i" /><figcaption>Apriori 演算法過程示意圖｜圖片來源：matters 社群專欄</figcaption></figure><h3><strong>(3) 異常檢測</strong></h3><h4><strong>LOF（Local Outlier Factor）</strong></h4><ul><li>如果樣本點 <em>p</em> 的 <em>LOF</em> 得分接近 1，則表示 <em>p</em> 的局部密度與相鄰點差不多<br>如果 <em>p</em> 的 <em>LOF</em> 得分小於 1，則表示 <em>p</em> 落在一個相對密集的區域，最不像是異常點<br>如果 <em>p</em> 的 <em>LOF</em> 得分遠大於 1，則表示 <em>p</em> 跟其他樣本點相對疏遠，很有可能是異常點</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*HWIdp59xpez2X9my" /><figcaption>LOF 得分高低示意圖｜圖片來源：scikit-learn 官方文件</figcaption></figure><h3><strong>(4) 降維</strong></h3><h4>主成分分析（Principle Component Analysis, PCA）</h4><ul><li>對一系列可能相關的特徵進行線性轉換，將他們投影成另一系列「線性不相關」的特徵值，這些不相關特徵稱為「主成分」。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/0*N1yv0Rqoksznr2H6" /><figcaption>PCA 前2維主成份向量之樣本分佈圖｜圖片來源：researchgate.net</figcaption></figure><h4>t-隨機鄰近嵌入法（t-Distributed Stochastic Neighbor Embedding, t-SNE）</h4><ul><li>使用機率分佈方法定義高維到低維的相似度轉換，優點是在保持局部結構的能力比 PCA 更佳，因此常被用於學術論文和競賽中的資料視覺化。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/619/0*MbpCKJyXYIZ90bG9" /><figcaption>t-SNE 分群結果展示：以手寫數字影像辨識為例｜圖片來源：nlml.github.io</figcaption></figure><h3><strong>(5) 結構化資料分析</strong></h3><h4>隱含狄利克雷分布（Latent Dirichlet Allocation, LDA）</h4><ul><li>事先定義好有限的主題，並透過觀察文件與朋友用詞來計算出主題之間的關聯，以及各個文件的主題分佈，如此一來，只要文件夠多，就可以有效的快速理解不同文件的主題分佈</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*iuTYy5dBetmDw1Fy" /><figcaption>Topic Modeling 概念圖解：LDA 是其中一種常用的非監督式機率模型｜圖片來源：dataencode.net</figcaption></figure><p>以上是非監督式學習的應用情境與算法整理，希望對你有幫助！</p><pre>．如果你喜歡這篇文章的選題和動機，請幫我拍手👏 +5 下，讓我瞭解這是不是讀者妳/你所喜歡的方向<br>．如果這篇文章的整理對你有幫助，請幫我拍手👏 +20 下，讓我瞭解內容對讀者妳/你的幫助程度<br>．如果還希望有類似的知識點整理，請幫我拍手👏 +50 下，讓類似的內容可以繼續出現！</pre><p>資料來源：</p><ul><li><a href="https://mropengate.blogspot.com/2015/06/ai-ch17-6-clustering-hierarchical.html">聚合式階層分群法</a></li><li><a href="https://blog.csdn.net/weixin_42137700/article/details/90762583">高斯混合模型解釋及 Python 實作</a></li><li><a href="https://matters.news/@CHWang/machine-learning-%E9%97%9C%E8%81%AF%E5%88%86%E6%9E%90-apriori%E6%BC%94%E7%AE%97%E6%B3%95-%E8%A9%B3%E7%B4%B0%E8%A7%A3%E8%AA%AA%E5%95%A4%E9%85%92%E8%88%87%E5%B0%BF%E5%B8%83%E7%9A%84%E8%83%8C%E5%BE%8C%E5%8E%9F%E7%90%86-python%E5%AF%A6%E4%BD%9C-scikit-learn%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E6%95%99%E5%AD%B8-bafyreiblhbu7qc3go3aatvabovx2yykd5t4azssw56c5ewcezshjkr74m4">Apriori 演算法詳解及 Python實作</a></li><li><a href="https://zhuanlan.zhihu.com/p/28178476">基於密度的經典異常偵測算法：LOF 算法詳解</a></li><li><a href="https://mropengate.blogspot.com/2019/06/t-sne.html">資料降維與視覺化：t-SNE 理論與應用</a></li><li><a href="https://tengyuanchang.medium.com/%E7%9B%B4%E8%A7%80%E7%90%86%E8%A7%A3-lda-latent-dirichlet-allocation-%E8%88%87%E6%96%87%E4%BB%B6%E4%B8%BB%E9%A1%8C%E6%A8%A1%E5%9E%8B-ab4f26c27184">主題模型與 LDA 概念理解</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c3af292be5cc" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9F%A5%E8%AD%98%E9%BB%9E-%E9%9D%9E%E7%9B%A3%E7%9D%A3%E5%BC%8F%E5%AD%B8%E7%BF%92%E7%9A%84%E6%87%89%E7%94%A8%E6%83%85%E5%A2%83%E8%88%87%E6%BC%94%E7%AE%97%E6%B3%95%E5%88%86%E9%A1%9E-c3af292be5cc">【機器學習知識點】非監督式學習的應用情境與演算法分類</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【數據分析實戰案例】Google 官方電商網站分析]]></title>
            <link>https://medium.com/datamixcontent-lab/%E6%95%B8%E6%93%9A%E5%88%86%E6%9E%90%E5%AF%A6%E6%88%B0%E6%A1%88%E4%BE%8B-google-%E5%AE%98%E6%96%B9%E9%9B%BB%E5%95%86%E7%B6%B2%E7%AB%99%E5%88%86%E6%9E%90-fa147718c7d8?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/fa147718c7d8</guid>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[data-analytics]]></category>
            <category><![CDATA[web-analytics]]></category>
            <category><![CDATA[ecommerce]]></category>
            <category><![CDATA[google-analytics]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sat, 10 Jul 2021 17:15:05 GMT</pubDate>
            <atom:updated>2021-07-11T11:13:46.223Z</atom:updated>
            <content:encoded><![CDATA[<h4>使用 Google Merchandise Store 進行網站健檢分析體驗示範</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fUmQL-QnQw6OuX1y2LLBhA.jpeg" /></figure><p>工作上使用過 Google Analytics 的朋友想必對 Demo Account 都不陌生，今天的實戰分析案例，我們使用 Google Merchandise Store 的網站訪客數據，以 2021 年 5 月為資料區間，對網站現況和問題進行歸納盤點，並提供優化方向建議。</p><p>在正文開始前先和你介紹一下 <a href="https://www.facebook.com/MarketingDataAgent">Data Agent 資料探員</a>：<br>Data Agent 是一個分享數據分析、資料科學概念、實作案例及自學資源的自媒體。除了原創內容分享，也偶爾以課程錄影、內訓教學、接案等方式和大家互動，主要平台管道有 Medium、Facebook 及 LinkedIn。現在你可以<a href="https://medium.com/datamixcontent-lab">追蹤 Medium 專欄</a>，有新文章更新時將會第一時間收到通知。</p><p>以下開始正文內容：</p><h3>本分析案例大綱</h3><ol><li><strong>訂定分析目標</strong></li><li>資料集描述</li><li>資料處理流程</li><li>分析圖表與判讀</li><li>推論歸納與決策建議</li></ol><h3><strong>(1) 訂定分析目標</strong></h3><p>開始每個分析案例以前，都需要先大致確立分析目標，設定會希望獲得什麼成果。以下是我們希望從 Google Analytics 報表數據中獲得的洞察方向：</p><h4>分析問題</h4><ol><li><strong>指標–維度相關程度</strong>：找出重點維度 / 指標〔註1〕 間的相關性，瞭解多維度、多指標下對不同目標值的影響程度。</li><li><strong>商品定位象限</strong>：了解 Google 自家電商目前的商品銷售情況，針對不同受眾的經營提出優化建議</li></ol><h4>可能的研究結果</h4><p>決策者從分析報告了解到的洞察點，如何實質幫助決策？</p><ol><li>輔助行銷資源投入的優先決策（EX：透過商品定位象限，對不同客群重新規劃主打品項、要主力優化的指標、要開發新客的渠道或國家等）</li></ol><blockquote>〔註1〕維度：類別型屬性（如：來源媒介、國家、時段等） / <br>指標：數值型屬性（如使用者數、交易次數、收益等）</blockquote><p>–</p><h3><strong>(2) 資料集描述</strong></h3><p>說明我們對資料集的認識如何影響研究目標</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/622/0*zXIJs41XlnGwBzHE" /></figure><ol><li>資料來源：<a href="https://your.googlemerchandisestore.com/Category/New">Google Merchandise Store</a>（銷售 Google 品牌商品的電子商務網站）的 <a href="https://analytics.google.com/analytics/web/demoAccount">Google Analytics 官方示範帳戶</a></li><li>資料區間：取用 2021/05/01–2021/05/31</li><li>資料集涵蓋數十項維度及指標，本分析案例主要篩選兩類資料屬性：</li></ol><h4>(A) 流量指標區塊</h4><p>多種維度下的流量指標數據，包含用戶數、平均停留時間、跳出率、交易次數、收益等</p><h4>(B) 電子商務區塊</h4><p>商品的各項瀏覽行為及銷售表現，包含主要漏斗事件，如瀏覽、加入購物車、購買等</p><p>–</p><h3><strong>(3) 資料處理流程</strong></h3><p>進入分析前進行的資料處理紀錄</p><h4>資料擷取</h4><ol><li>Google Analytics (GA) Demo Account — Master View，自訂報表並匯出</li><li>從 Google Data Studio 連結 GA 帳戶，選擇加入 Google Merchandise Store 資料源</li></ol><h4>資料合併</h4><ol><li>因匯出限制，需另外將從 GA 匯出的資料表合併</li></ol><h4>資料屬性處理</h4><ol><li>因匯出限制，需另外將 {時段} 拆分為 {日}, {小時}, {星期幾}</li><li>資料格式清理（如：幣值、時間戳記、百分比等）</li></ol><p>–</p><h3>(4) 分析邏輯說明</h3><p>先說明接下來會進行的探索分析脈絡、分析邏輯來由</p><p><em>Step1</em>：先瞭解維度、指標之間的相關性</p><p>制定成效提升策略以前，需要瞭解哪些因素會直接或間接影響、相關程度排序，因素之間是否存在相依性等，使得策略方向符合實際情況。</p><p><em>Step2</em>：根據業務場景模擬分析應用</p><p>除了都以全站為標的，業務上對不同用戶客群也需要制定經營策略，因此讓分析圖表或系統能夠抽換用戶變數同樣重要。</p><p>–</p><h3>(5) 圖表判讀與分析</h3><h4><strong>（A）指標間的相關性 — 「跳出率」</strong></h4><p>相關性圖表判讀結果歸納：</p><ul><li>「跳出率」與其他指標間皆呈現負相關</li><li>特別觀察到，指標分成與「跳出率」負相關的 3 種強弱程度：</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QXpaB4shHU1tiVYF" /><figcaption>▲ <strong>跳出率</strong> 與 其他指標 相關係數長條圖</figcaption></figure><ol><li>停留時間類指標越大，跳出率最低、相關度最強</li><li>瀏覽不重複品類或品牌數指標越高，跳出率越低</li><li>造訪及交易指標越高，跳出率越低、但相關度最弱</li></ol><ul><li>其他指標之間則皆互為正相關</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hmRpeMNuEl0QXCgN" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QWB4auh1fhUT9cbE" /><figcaption>▲ <strong>平均用戶停留時間、使用者數</strong> 與 其他指標 相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（A）指標間的相關性 — 「交易次數」、「平均訂單價值」</h4><ul><li>除了原本就呈正相關的交易指標，特別觀察到<strong>與「交易次數」、「平均訂單價值」相關程度較高的指標是「不重複瀏覽品類數」、「不重複事件」</strong>，大於「使用者」、「新使用者」、「人均停留時間」等指標，說明了：</li></ul><blockquote><strong>若想要提升交易量和每單消費額，讓用戶多逛不同的品類、做到互相比較、考慮的效果可能比純粹導流來得更好。</strong></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*TlplA3y_PrbwcvtJ" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2KKz9nXD6kLstC9z" /><figcaption>▲ <strong>交易次數、平均訂單價值</strong> 與 其他指標 相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><pre>你已閱讀 30%，休息一下…<br>如果這篇文章讓你認識了新的分析方法、洞察，想請你幫我拍手👏 至少 +5 下；<br>如果這篇文章給了你靈感、工作上的幫助，想請你幫我拍手👏 至少 +15 下；<br>如果你看到目前覺得收穫非常多，想請你幫我拍手👏 至少 +30 下，一下子吸收這麽久，也當作是給自己的鼓勵XD</pre><p>–</p><h4>（B）<strong>網站訪客 特徵歸納</strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*E5SkuLpssqnEfTWd" /><figcaption>▲<strong> 使用者數 與小時維度 </strong>相關係數長條圖</figcaption></figure><p>相關性圖表判讀結果歸納：</p><ul><li>星期幾：<strong>更傾向於週二造訪</strong>，<strong>最不傾向於週末造訪</strong></li><li>小時：<strong>最傾向於 11–13 時造訪</strong>，不傾向於晚間 9 點後造訪</li><li>流量來源：<strong>多為直接流量</strong>，少部分廣告及聯盟流量</li><li>來源國家：<strong>以美國為首</strong>、印度次之，其餘國家比例低</li><li>瀏覽使用之作業系統：以 <strong>Macintosh, Chrome OS</strong> 為大宗</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ein1RiuT6n9SAAXG" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*aJG3wGbibpBIDNb3" /><figcaption>▲ <strong>使用者數 與作業系統、來源媒介維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（C）網站新訪客〔註2〕 特徵歸納</h4><ul><li>星期幾：與同總體訪客相同，更傾向於週二造訪，最不傾向於週末造訪</li><li>小時：最傾向於 15 時、11–13 時造訪，不傾向於晚間 10 點後造訪</li><li>流量來源：與同總體訪客相同，多為直接流量，少部分廣告及聯盟流量</li><li>來源國家：與同總體訪客相同，以美國為首、印度次之，其餘國家比例低</li><li>瀏覽使用之作業系統：以 <strong>iOS</strong> 為首、Macintosh, Chrome OS 次之</li></ul><blockquote>〔註2〕新訪客：係指過去在網站無 cookie 紀錄，視為全新訪客</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*lC_8D7NhPPjx-dwJ" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*byep3FwBnudued_5" /><figcaption>▲ <strong>新使用者數 與作業系統、進站小時維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（D）訪客人均停留時間 特徵歸納</h4><ul><li>星期幾：相關程度較弱，週四造訪的停留時間最長</li><li>小時：相關程度較弱，也沒有隨著特定的時段有較長的停留時間</li><li>流量來源：<strong>直接流量和自然流量的停留時間越長</strong>，廣告流量則越短</li><li>來源國家：以瑞典最長、美國次之</li><li>瀏覽使用之作業系統：與同總體訪客相同，而<strong> iOS 訪客之人均停留時間最低；根據前述 iOS 用戶多為新訪客，其停留時間較短。</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*AxleR6bfoId7U14C" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*EXKvaT3LxgKA_-Pl" /><figcaption>▲ <strong>平均用戶停留時間 與作業系統、來源媒介維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（E）交易次數 特徵歸納</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*nCZs5_dWqtRgvpZe" /><figcaption>▲<strong> 交易次數 與小時維度 </strong>相關係數長條圖</figcaption></figure><ul><li>星期幾：相關程度較弱，<strong>週四下單次數最高</strong></li><li>小時：<strong>用戶傾向集中在 10–15 時下單</strong></li><li>流量來源：直接流量進站與下單次數呈正相關；<strong>廣告及聯盟流量呈負相關</strong></li><li>來源國家：只有來源於美國的流量有達成交易</li><li>瀏覽使用之作業系統：<strong>Macintosh, Chrome OS 訪客與下單呈正相關，而 Windows, Android, iOS 訪客為負相關</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*RFEGH86E5TlfSfAC" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*YxoyKLeyGbeApOOH" /><figcaption>▲<strong> 交易次數 與作業系統、來源媒介維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（F）電子商務轉換率、收益 特徵歸納</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*bVSMWFiR1ZYTGF7o" /><figcaption>▲<strong> 電子商務轉換率 與小時維度 </strong>相關係數長條圖</figcaption></figure><ul><li>星期幾：相關程度較弱，<strong>週二轉換率最高；週日最低</strong></li><li>小時：<strong>13、17、20–21 時的轉換率較高</strong></li><li>流量來源：直接造訪及未登入的訪客流量和轉換率呈正相關；自然流量及關鍵字廣告的轉換率則呈負相關；以曝光為目的〔註3〕 的廣告流量轉換率有最強負相關</li><li>來源國家：與交易次數的相關分佈相同</li><li>瀏覽使用之作業系統：<strong>以 Chrome OS 最高</strong>，BlackBerry, Linux, Mac OS 次之；<strong>Windows, Android, iOS 的轉換相關性最低</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*57nNTZGb-WfIsfmb" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*oTfEHfTr0gQYgrNp" /><figcaption>▲<strong> 電子商務轉換率 與作業系統、來源媒介維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><p>–</p><h4>（G）平均訂單價值 特徵歸納</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*9hAx5t9ziPNGQ6fs" /><figcaption>▲<strong> 平均訂單價值 與小時維度 </strong>相關係數長條圖</figcaption></figure><ul><li>星期幾：相關程度較弱，<strong>週一的平均訂單價值最高；週日最低</strong></li><li>小時：<strong>8、11–12、17、20–21 時的平均訂單價值較高</strong></li><li>流量來源：與收益的相關分佈接近</li><li>來源國家：同上</li><li>瀏覽使用之作業系統：以 Chrome OS, Mac OS 訪客最高；Windows, Android, iOS 訪客最低</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*jU32Y2G3OrZ5K9Cj" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*CSOQ41l-10BPxmK7" /><figcaption>▲<strong> 平均訂單價值 與作業系統、來源媒介維度 </strong>相關係數長條圖（為了維持資訊量，只呈現相關程度較強的部分圖表）</figcaption></figure><pre>你已閱讀 65%！就快看完了！<br>如果這篇文章讓你認識了新的分析方法、洞察，想請你幫我拍手👏 至少 +5 下；<br>如果這篇文章給了你靈感、工作上的幫助，想請你幫我拍手👏 至少 +15 下；<br>如果你看到目前為止覺得收穫非常多，想請你幫我拍手👏 至少 +30 下，一下子吸收這麼多資訊，也當作是給自己的鼓勵XD</pre><h3>二、分析圖表與判讀：商品定位象限</h3><h4>商品瀏覽 Ｘ 收益定位圖 — 以前 20 % 為臨界點</h4><p>以 5 月份的商品「總瀏覽次數」為 X 軸、「總收益」為 Y 軸，我們可以區隔出 4 塊象限，分別代表不同定位的商品。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tADrIrtt6MmCPEcn" /></figure><p>4 個區隔象限說明如下：</p><ol><li>右上角「<strong>綠色區域</strong>」為「銷售主力品」，品項流量及收益是全站排名前20%。<br>&gt;&gt; 維持瀏覽量</li><li>左上角「<strong>藍色區域</strong>」為「銷售潛力品」，品項收益亦為全站排名前20%，<strong>可專注於提升流量，目標讓更多品項移往主力區</strong>。<br>&gt;&gt; <strong>集中提升商品瀏覽量</strong></li><li>右下角「<strong>黃色區域</strong>」的特色是「<strong>叫好不叫座</strong>」，品項流量為全站排名前20%，但總收益較不理想。<br><strong>需深入瞭解此區商品是否能夠間接讓用戶購買其他品項（是否有其存在必要）。<br>&gt;&gt; 計算輔助轉換效益，調整首頁商品或推薦商品呈現的排序</strong></li><li>左下角「<strong>紅色區域</strong>」為「<strong>銷售長尾品</strong>」，近 8 成品項落在此處，是未來潛力、主力品的預備區。在提高用戶瀏覽品類數（總瀏覽次數）時，觀察後續落點，哪些商品能有相對更高的轉換率。<br><strong>&gt;&gt; 優先程度最後，等待前兩項優化做完後，計算商品的落點改變和輔助轉換效益</strong></li></ol><p>做個結論：</p><blockquote>維持主力品流量、提升銷售潛力品流量；評估高流量低轉換商品之輔助轉換效益，長尾品保留觀察。</blockquote><h4><strong>切換 GA 區隔，查看不同用戶分組當前的主力商品</strong></h4><p>前述我們觀察的是全站情況。<br>如果使用 Google Analytics 內建區隔或自訂區隔（Segments），也可以分別篩出該族群的主力銷售品、觀察瀏覽和消費在商品間的分佈情形。</p><p>這裡我們以「新訪客」 v. s. 「回訪客」兩種區隔來觀察，可發現<strong>新訪客的消費更相對集中於少部分熱門品；</strong>回訪客的消費則相對分散在不同商品上。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*JloClcH-uR1XETUk" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*7969nARNFyc1DsG1" /><figcaption>▲ 將區隔設定為「<strong>New Users</strong>」（新訪客） &lt;— — — — — — — v. s. — — — —&gt; ▲ 將區隔設定為「<strong>Returning Users</strong>」（回訪客）</figcaption></figure><p>其中根據 Google Analytics 報表資料，5 月份 Google Merchandise Store 之新訪客特性：</p><ul><li>新訪客<strong>佔 5 月所有訪客 82.6 %</strong></li><li>新訪客貢獻網頁瀏覽量佔全站 60.4 %</li><li>新訪客<strong>貢獻收益佔全站 32.6 %</strong></li><li>新訪客平均訂單價值（客單價）為 US$ 63.63，低於回訪客的 US$ 79.94</li><li><strong>回訪客每人交易次數是新訪客的 7.87 倍</strong></li></ul><h4>以增加全站收益為目標，提出兩種做法方向</h4><ol><li>改善會員機制，提高新訪客再次回訪的比例：<br>有鑒於回訪客貢獻近 7 成收益，且轉換率高於新訪客 4–5 倍；是否能透過回訪客偏好的活動、品類，主動吸引新訪客回流。</li><li>針對回訪客偏好的商品種類，提高新訪客購買意願或吸引不同訪客族群：<br>新訪客貢獻 6 成瀏覽量卻只有約 1% 訪客下單，有可能是新訪客所觸及的商品吸引力不足，或現有商品未精準觸及潛在受眾。</li></ol><p>–</p><h3><strong>推論歸納與決策建議</strong></h3><p>歸納本次對 Google Merchandise Store 2021 年 5 月份網站數據分析之解讀、提出假設，並提供電商經營方向。</p><h4>數據洞察歸納</h4><ol><li>根據「交易次數與其他指標相關係數長條圖」顯示，與「交易次數」呈現正相關強度第二高為「不重複品類瀏覽數」，解讀為 <strong>若想要提升交易量和每單消費額，讓用戶多逛不同的品類、做到互相比較、考慮的效果可能比純粹導流來得更好</strong></li><li>根據各指標的特徵維度相關係數圖表，我們分為 3 個面向來統整：停留時間類（流量品質）、不重複事件類（訪客考慮程度）、造訪及交易紀錄類</li></ol><ul><li>停留時間類（流量品質）—『人均停留時間』『平均工作階段瀏覽頁數』『跳出率』：<br>（i）<strong>直接流量及自然流量的停留時間最長；而關鍵字廣告停留傾向為負相關，建議需檢視其設定</strong>。<br>（ii）<strong>iOS 訪客之人均停留時間最低，多為新訪客，應調整首頁配置，讓新訪客有機會停留更久</strong>。</li><li>不重複事件類（訪客考慮程度）—『不重複事件』『不重複瀏覽品牌數』『不重複瀏覽品類數』：<br>（i）<strong>相關程度較弱，平均而言 10–15 時的訪客所瀏覽的品牌數及品類數較多；行銷資源應以此時段為優先</strong>。</li><li>造訪及交易紀錄類 —『使用者數』『新使用者數』『交易次數』『電子商務轉換率』『收益』『平均訂單價值』<br>（i）總體描述：<strong>訪客傾向於 10–15 時造訪及購買</strong>，較不傾向於週末或晚間 9 點後造訪；<strong>以 Mac、Chrome OS 用戶為多數</strong>；新訪客則以 iOS 用戶為多數；<strong>收益、轉換率皆以週二最高、週日最低</strong>；<strong>平均訂單價值以週一最高、週日最低</strong>。<br>（ii）流量及交易集中在美國，可深入探討<strong>城市差異</strong>。<br>（iii）<strong>曝光廣告及關鍵字廣告流量轉換率呈負相關，需檢視其設定</strong>。</li></ul><h3><strong>分析自家網站：索取你的網站分析示範</strong></h3><p>這次以 Google Analytics Demo Account 實作數據分析並歸納 Google Merchandise Store 目前的困境及建議方向。</p><p>如果你看了本次實戰案例內容，也想應用到自家網站上，<strong>歡迎提供你的網站 Google Analytics 帳戶，即可獲取一份我為你做的『網站健檢分析體驗版』報告</strong>（就像此份的架構）。</p><p>開始方法很簡單，只要兩步驟：</p><ol><li><strong>來信簡介你的公司品牌、產業、目前經營的行銷渠道有哪些，並附上網址</strong></li><li><strong>將您網站的 Google Analytics 檢視權限開通到以下信箱：</strong>martech.tw@gmail.com</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Vt1QSO4dtD9pznO7_dKlYg.png" /><figcaption>網站健檢分析套餐說明圖</figcaption></figure><p>有任何問題，同樣歡迎先來聊聊詢問，你可以透過以下方式聯絡到我：</p><ul><li>e-mail: martech.tw@gmail.com</li><li>phone: 0989-960-615</li><li>fanpage（私訊會於一個工作天內回覆）: <a href="https://www.facebook.com/MarketingDataAgent">https://www.facebook.com/MarketingDataAgent</a></li></ul><pre>恭喜你完成閱讀 100% ！<br>如果這篇文章讓你認識了新的分析方法、洞察，想請你幫我拍手👏 至少 +5 下；<br>如果這篇文章給了你靈感、工作上的幫助，想請你幫我拍手👏 至少 +15 下；<br>如果你看完了整篇文章，並覺得收穫非常多，想請你幫我拍手👏 至少 +30 下，也當作是給自己的鼓勵XD</pre><p>P.S. 關掉這篇文章前，記得追蹤 Data Agent 資料探員 Medium 專欄唷！<a href="https://medium.com/datamixcontent-lab">https://medium.com/datamixcontent-lab</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=fa147718c7d8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E6%95%B8%E6%93%9A%E5%88%86%E6%9E%90%E5%AF%A6%E6%88%B0%E6%A1%88%E4%BE%8B-google-%E5%AE%98%E6%96%B9%E9%9B%BB%E5%95%86%E7%B6%B2%E7%AB%99%E5%88%86%E6%9E%90-fa147718c7d8">【數據分析實戰案例】Google 官方電商網站分析</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【教學重點】機器學習方法與流程入門 Machine Learning — Intro｜政大數據分析社 110_2 社課 Lesson 6]]></title>
            <link>https://medium.com/datamixcontent-lab/%E6%95%99%E5%AD%B8%E9%87%8D%E9%BB%9E-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E6%96%B9%E6%B3%95%E8%88%87%E6%B5%81%E7%A8%8B%E5%85%A5%E9%96%80-machine-learning-intro-%E6%94%BF%E5%A4%A7%E6%95%B8%E6%93%9A%E5%88%86%E6%9E%90%E7%A4%BE-110-2-%E7%A4%BE%E8%AA%B2-lesson-6-e94d002d52b8?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/e94d002d52b8</guid>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[數據分析]]></category>
            <category><![CDATA[資料科學]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[data-science]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Tue, 08 Jun 2021 19:16:33 GMT</pubDate>
            <atom:updated>2021-06-08T19:16:33.111Z</atom:updated>
            <cc:license>http://creativecommons.org/publicdomain/zero/1.0/</cc:license>
            <content:encoded><![CDATA[<h3>【教學重點】機器學習方法與流程入門 Machine Learning — Intro｜政大數據分析社 110_2 社課 Lesson 6</h3><h4>講解資料科學流程、機器學習經典四類演算法、交叉驗證概念及模型訓練優化心得。</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wMVlVpWbMw32t4d4WtK0Mg.png" /><figcaption>本堂課的<a href="https://www.facebook.com/MarketingDataAgent/posts/1193597974413356">自製簡報</a></figcaption></figure><h4>前言</h4><p>本次資料探員與 <a href="https://medium.com/finformation%E7%95%B6%E7%A8%8B%E5%BC%8F%E9%81%87%E4%B8%8A%E8%B2%A1%E5%8B%99%E9%87%91%E8%9E%8D">Finformation</a> 合作擔任 <a href="https://www.facebook.com/nccuda">政大數據分析社</a> 社課講師，一共7週課程。第6堂課主題是【資料科學方法與流程入門】，後來考慮課程長度和難易度，調整為著重在「資料科學題目發展」、「資料科學流程重點」、「經典機器學習算法」。</p><p>本次課後也釋出課程錄影及上課簡報pdf，若想要索取，相關流程在<a href="https://www.facebook.com/MarketingDataAgent/posts/1193597974413356">這篇貼文</a>可以找到。<br>你也可以前往觀賞我錄製的 <a href="https://youtu.be/iZCJOh0yfN0">課程Youtube影片</a>（資訊欄有各節課綱的快捷秒數，可以跳著觀看），對你有幫助的話歡迎按讚留言分享，讓我收到一些你的回饋。</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FiZCJOh0yfN0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DiZCJOh0yfN0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FiZCJOh0yfN0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/40babd14a2631fc3fda1ea1b27f13371/href">https://medium.com/media/40babd14a2631fc3fda1ea1b27f13371/href</a></iframe><h4>本次上課課綱</h4><ol><li>從數據分析到資料科學</li><li>資料科學技術範疇</li><li>設定資料科學問題</li><li>機器學習演算法運作概念</li><li>機器學習演算法種類介紹</li><li>如何選擇演算法</li><li>了解演算法的成效：模型評估指標</li><li>交叉驗證的必要性</li><li>因應預測標籤不平衡問題</li><li>心得總結：如何優化訓練後的模型</li></ol><p>以下我們整理各節重點和相關參考連結，方便學員做複習：</p><h3>＊資料科學流程</h3><p>在開始前再次複習資料科學流程：</p><ol><li>資料擷取</li><li>資料前處理</li><li>資料視覺化與分析洞察</li><li>模型選擇與建構</li><li>模型訓練與成效指標比較</li><li>特徵工程用於模型成效優化</li><li>模型超參數調整</li></ol><h3>(I) 從數據分析到資料科學</h3><ol><li>商業目標：改善現況 → 提前佈局：<br>數據分析幫助我們了解現況、發現問題、提出改善方針；資料科學則是當我們有充足的數據量、資源能夠從改善現況，往前推進到提前佈局、節省成本或增加盈利時，透過建模流程和資料工程將整個從資料擷取到目標值預測的流程加以自動化，並將預測輸出直接運用到業務情境中，發揮資料的價值。</li><li>數據分析的洞察用於訓練特徵篩選：<br>數據分析和資料科學在流程上是相互銜接的，我們在進行數據分析時所繪製的視覺化圖表，展示特徵分佈、相關程度、解釋性等等，都會幫助我們在進行資料科學流程時的特徵篩選，有時也甚至會回頭去修改資料前處理的做法。</li><li>模型演算法複雜度和業務需求需取得平衡，資料科學的本質為解決問題：<br>機器學習算法大部分還是保留了特徵貢獻度、權重等輸出量，但在較為複雜的神經網絡中，如遞歸神經網絡、長短期記憶模型等牽涉到 time_steps 的模型，要如何同步解讀特徵權重和時間窗格權重則是深度學習所面臨的解釋性議題。</li></ol><h3>(II) 資料科學技術範疇</h3><p>人工智慧、機器學習、深度學習、監督式學習、非監督式學習、強化學習等眾多名詞，彼此間的關係大致可用此圖來描述，在很多地方你也會看到類似的圖表呈現不同領域的關係。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pX4uJKhSDVRCNFQu5BV05Q.png" /><figcaption>圖片來源：<a href="https://www.facebook.com/MarketingDataAgent/posts/1193597974413356">資料探員 Data Agent</a> 課程投影片</figcaption></figure><p>以下是經過資料探員理解吸收後，以盡量白話好懂的方式解釋名詞。</p><ul><li><strong>人工智慧</strong><br>廣義的人工智慧泛指，運用電腦程式展現人類智能以解決問題。展現人類智能指的是在條件式規定以外，電腦程式能夠從中找到數學規律、最佳解的過程。理想化的情境是電腦能夠透過觀察周遭環境、經由超越條件式以外的判斷，做出行動以達到目標，舉例來說，自駕車、AlphaGo人工智慧棋手等。</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f6DWnvSPKxtRt9_y7MDEXw.png" /><figcaption>維基百科上的人工智慧學科及研究範疇涵蓋眾多領域，機器學習只是其中一個分支。<a href="https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD#%E5%AD%B8%E7%A7%91%E7%AF%84%E7%96%87">出處連結</a></figcaption></figure><ul><li><strong>機器學習</strong><br>其中一種解決人工智慧問題的手段，透過歷史資料及領域經驗，定義損失函數及預測評估指標，用以最佳化演算法成效表現。</li><li><strong>深度學習<br></strong>機器學習的其中一個分支，特色在於在神經網絡架構中加入特徵學習。如圖像、影像、語音、文字等非結構化資料難以人工方式進行高效的特徵抽取，而透過多層的神經網絡結構，可以將特徵經由不同的抽象層次被抽取出來（例如理解為從不同面向對事物進行特徵描述）。</li><li><strong>監督式學習</strong><br>指定目標預測值來讓演算法學習最小化預測與實際的誤差，如 是否購買、廣告花費、是否違規等。</li><li><strong>非監督式學習</strong><br>在不指定目標預測值的情況下，利用演算法將更為相似的資料樣本歸納在一起，或找出隱藏在其中的關聯。</li><li><strong>強化學習</strong><br>在不告訴機器預測目標值的情況下進行模型學習，每當機器做出一個行為，環境回饋一種狀態和回報給機器，使其透過狀態和回報的好壞往正確方向學習。</li></ul><h3>(III) 設定資料科學問題</h3><p>有的時候我們會很直觀的想好要預測的目標值會是什麼，通常這樣的題目要不是已經被實作出來，就是往往因為標籤過少難以達到很好的成效。此時可以依照資料特性、業務情境調整資料科學問題。</p><p>案例1：根據問題屬性改變原本的直觀設計 — 電商瀏覽行為的預測議題</p><blockquote>電商A擁有訪客的瀏覽日誌、交易紀錄，現希望能增加全站的營收；其訪客瀏覽日誌中的購買次數比例僅約1%。</blockquote><p>我們會很直覺的想要對電商A的訪客進行購買預測，了解誰會是真正下單的顧客，但在這樣的購買比例下做預測是不切實際的，我們很難得到非常好的預測效果，以數據分析來說購買者的人數也不夠具代表性。</p><p>這時我們如果轉個方向想，要提升營收的勢必不能限於目前的流量，需要在擴大流量之餘，提高全站轉換率，才能再增加廣告預算的同時提升廣告投報率。如果我們的方向改為追求「未購買者的精確度」，調整門檻值，儘早排除不會購買之可能性最高的用戶，這樣一來則可以讓廣告預算花在較有可能會購買的人，並透過追蹤全站轉換率來驗證長期的效果。</p><p>案例2：根據業務需求調整預測目標 — 從研究所需的分類模型到實際上線所需的數值模型</p><blockquote>醫院B擁有病患進行血液透析的生理監測數據時間序列，現希望能提前預測血壓偏低的病患示警請醫護關注。</blockquote><p>直覺上來說會以血壓低於多少的機率來作為預測目標，但這樣的結果呈現給醫護人員，他們無法直觀的做出判斷，仍需要預測的血壓值和機率輔助來綜合判定要做什麼樣的預防措施。</p><p>經由以上兩個案例可以發現到，其實資料科學題目會在實務情境中，透過專家和使用者意見被修正改善。</p><h3>(IV) 機器學習演算法運作概念</h3><p>在進行機器學習時有以下幾個元素：</p><ul><li>Input：訓練資料集特徵</li><li>Process：演算法</li><li>Output：預測目標值</li></ul><p>我們希望一個演算法能夠有越來越好的成效，意指的是希望他的預測值與實際值越接近越好，因此我們會定義所謂的「損失函數 (Loss Function)」，來衡量每一次預測完，樣本總體的預測值和實際值相差了多少？</p><p>接著演算法便會將損失函數的結果進行「最佳化」，通常是直到找到最小值為止（Loss最少，預測和實際值最接近）。我們可以設定搜尋最小值所跑的次數上限（Epochs）、每次搜尋時要改變的量的大小（Learning Rate）、所改變的量是否要根據前一次調整（Momentum）等等。這個過程即為機器學習演算法的大致運作邏輯。</p><h3>(V) 機器學習演算法種類介紹</h3><p>經典機器學習演算法我們介紹以下四類、共9種：</p><p>( A ) 迴歸</p><ul><li><strong>Linear Regression 簡單線性迴歸</strong><br>針對平面上的樣本點，找到一條誤差平方和最小的直線</li></ul><p>( B ) 分類</p><ul><li><strong>Logistic Regression（羅吉斯迴歸）</strong><br>針對空間中樣本點，找到一能夠將兩/多類別資料樣本切分開的線或平面</li><li><strong>Decision Tree（決策樹）</strong><br>以不同資料特徵和切點做分類，找到分類後能夠造成純度較高的分類子集的特徵作為節點，以此類推構成有數個節點和葉子的分類樹。</li><li><strong>Random Forest（隨機森林）</strong><br>由數個決策樹構成，以多數決方式得出預測結果，善用多棵弱決策樹增強成效。</li><li><strong>Gradient Boosting Decision Tree（梯度提升樹）</strong><br>循序式的建構決策樹，下一棵樹是以上一棵預測後的殘差為訓練特徵，最終結果是將多棵決策樹的結果加總得之。</li><li><strong>K-Nearest Neighbor（K-近鄰演算法）</strong><br>以附近K個樣本點的分類結果決定該樣本要被分到哪一類</li></ul><p>( C ) 分群</p><ul><li><strong>K-Means Clustering（K-平均分群演算法）</strong><br>須事先決定要分成幾群，算法隨機挑選群心後不斷迭代分群結果，直到群心不再變動。</li><li><strong>Hierarchical Clustering（階層式分群演算法）</strong><br>無須事先決定要分幾群，有由上而下分裂和由下而上聚合兩種方法。</li></ul><p>( D ) 關聯</p><ul><li><strong>Apriori Algorithm（先驗演算法）</strong><br>將出現項目排列組合後，依次去掉支持度最低（最不頻繁出現）的項目組，迭代直到最後剩下即為最頻繁一起出現的組合。</li></ul><h3>(VI) 如何選擇演算法</h3><p>本課我們所介紹到的演算法較為經典、初階，在判斷演算法的選擇上，最首要是分辨資料科學問題種類；若我們考慮到更進階的演算法，如 Lasso Regression, Ridge Regression、其他 NLP 演算法 等，此時選擇演算法的標準就不會再那麼單純只考慮問題本身，還會牽涉到資料集大小、資料特性等。但本堂課以初學者出發，暫不深入討論；在入門階段時，需要注意資料集樣本數至少&gt;100筆再進行演算法訓練、經典演算法可當作 baseline model（基準比較模型） 優先測試，因為其模型架構不會過於複雜，也可作為未來優化的基礎。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tIOQq8Ph8egX3X-te29kAg.png" /><figcaption>圖片來源：<a href="https://www.facebook.com/MarketingDataAgent/posts/1193597974413356">資料探員 Data Agent</a> 課程投影片</figcaption></figure><h3>(VII) 了解演算法的成效：模型評估指標</h3><p>針對方才我們介紹的四類演算法中，這邊舉前三類來介紹常見的評估指標：</p><p>( A ) 迴歸</p><ul><li><strong>MSE (Mean Square Error) 均方差</strong><br>預測值與實際值之殘差平方的平均。</li><li><strong>R² (R-squared)</strong><br>即為樣本相關係數的平方，用來判斷迴歸模型的解釋力。</li></ul><p>( B ) 分類</p><ul><li><strong>Confusion Matrix（混淆矩陣）</strong><br>表示實際和預測兩維度的列聯表，例如：實際是A但預測是B、實際是C預測也是C…符合這些情況的各自數目被記錄在一矩陣中。</li><li><strong>True-Positive (TP)</strong><br>二元分類問題下，實際和預測相符；預測是 label=1，實際也是</li><li><strong>True-Negative (TN)</strong><br>二元分類問題下，實際和預測相符；預測是 label=0，實際也是</li><li><strong>False-Positive (FP)</strong><br>二元分類問題下，實際和預測不符；預測是 label=1，實際則是 label=0<br>False-Positive Rate (FPR) 偽陽性率</li><li><strong>False-Negative (FN)</strong><br>二元分類問題下，實際和預測不符；預測是 label=0，實際則是 label=1<br>False-Negative Rate (FNR) 偽陰性率</li><li><strong>Precision（精確度）</strong><br>預測的樣本中，有多少比例預測正確</li><li><strong>Recall（召回率）</strong><br>實際的樣本中，有多少比例預測正確</li><li><strong>F-Score</strong><br>同時考慮 Precision 及 Recall，平衡的反映演算法的精確度</li><li><strong>ROC Curve (Receiver Operating Characteristic Curve)</strong><br> X軸：偽陽性率（FPR）／Y軸：真陽性率（TPR），隨著閾值不同，ROC Curve 上座標點跟著改變</li><li><strong>AUC (Area Under ROC Curve)</strong><br>代表在 ROC Curve 下的面積，表示分類器預測能力；當 2 條 ROC Curve 發生交叉，我們無法斷言孰優時，計算曲線下面作為能力判斷指標之一。</li></ul><p>( C ) 分群</p><ul><li><strong>WSSE (Within-cluster Sum of Squared Errors) 群內誤差平方和</strong><br>各群內樣本到自家群心距離平方和</li><li>Silhouette Coefficient（側影係數）<br>是一種評估群與群之間離散程度的方法，使用 a 參數表示樣本點在目前群內的緊密程度、b 參數表示樣本點與其他群的緊密程度，越小越緊密、越大則越疏遠。最終綜合得出側影係數，係數越大表示當前分權方法的品質越好。<br>＊不能用來評價不同分群演算法間的優劣，由於如DBSCAN所得出的側影係數本來就會高於其他方法</li></ul><h3>(VIII) 交叉驗證的必要性</h3><p>交叉驗證的目的在於使我們獲得的模型成效能夠更客觀、穩定，避免在模型應用到測試集或真實世界資料時，成效與訓練環境相差過大。交叉驗證發生在模型訓練、驗證環節，透過多重切分資料訓練來達到對模型穩定度的驗證，最後得到一個交叉驗證後的成效指標。</p><p>因此在解釋交叉驗證前，我們還需要了解：</p><ul><li><strong>訓練、驗證、測試集切分的用意</strong><br>以 作業、小考、期末考 來分別比喻 訓練集、驗證集、測試集三者，模型需要透過多次作業和小考來訓練，我們才能更好的掌握期末考分數。如果只寫過一次作業就面期末考，那麼作業所得的成績和期末考成績很可能相差甚遠。</li><li><strong>何謂 overfitting （擬合過度）？</strong><br>模型好壞可大致有3種階段： Under-fit → Good-fit → Over-fit <br>Under-fit 指的是模型複雜度還可以再提升，現有的可能無法 fit 到大部分的資料點。Good-fit 指的是目前的模型可以很好的 fit 到大部分的樣本。Over-fit 則是模型因為過度 fit 在訓練集的資料點，以致於使用新資料進行預測時，出現和訓練時落差很大的成效。</li></ul><p>為了避免 overfitting 導致新資料進行預測時的成效不可控，我們透過交叉驗證，讓模型對打亂的資料集重複訓練，使其看過很多不同的資料組合，最後對新資料做預測時能夠有更 generalized 的表現，不會過度受到單一資料集的影響。</p><p>P.S. 簡報中有交叉驗證的圖解，更方便學習理解（<a href="https://www.facebook.com/MarketingDataAgent/posts/1193597974413356">如何領取簡報？</a>）。</p><h3>(IX) 因應預測標籤不平衡問題</h3><p>這是分類題目在現實生活中很常面臨到的資料集困境，很多時候我們更在意的那個標籤相對少數，如：購買者、刷單者、假流量來源、駭客攻擊行為等。</p><p>那麼有預測標籤不平衡問題該怎麼解決呢？不外乎是將多數類別抽樣到和少數類別樣本一樣多，或是從少數類別樣本中合成新資料點，讓他變得和多數類別樣本一樣多。前者稱做 Under-Sampling，後者為 Over-Sampling。</p><ol><li><strong>Under-Sampling</strong><br>使用合理的抽樣方法皆可達到目的，如隨機抽樣、分層抽樣等</li><li><strong>Over-Sampling</strong><br>imbalance-learn 套件提供不同的樣本合成方法，SMOTE 是最為常見的，還有其變化型</li></ol><h3>(X) 心得總結：如何優化訓練後的模型</h3><p>不論是根據個人經驗或參考他人作品，通常來說，<strong>好的特徵組合對成效的提升會比超參數調整更明顯</strong>。</p><p>不論是每次訓練後的模型對特徵貢獻度的解讀、透過不同的遞迴方式篩選特徵組，都是我們盡可能找到對目標值更有鑑別度特徵的方式之一。</p><p>這次我們還沒有深入介紹到特徵工程的內容，不過有一些在優化分類器上的特徵工程 tips：</p><ul><li>觀察連續型變數和目標值的關係後轉換為離散區間</li><li>假如遇到時間序列資料，可生成差值、成長率等特徵</li><li>從高維度資料萃取有效特徵：降維（PCA/T-SNE/LDA等）</li><li>使用神經網絡層進行特徵提取</li></ul><h4>結語</h4><p>感謝聽課的所有學員，若對簡報、上課內容、錄影內容和方式有任何建議回饋，歡迎私訊 <a href="https://www.facebook.com/MarketingDataAgent/">資料探員 Data Agent</a> 粉專，我會再一一回覆各位。</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e94d002d52b8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E6%95%99%E5%AD%B8%E9%87%8D%E9%BB%9E-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E6%96%B9%E6%B3%95%E8%88%87%E6%B5%81%E7%A8%8B%E5%85%A5%E9%96%80-machine-learning-intro-%E6%94%BF%E5%A4%A7%E6%95%B8%E6%93%9A%E5%88%86%E6%9E%90%E7%A4%BE-110-2-%E7%A4%BE%E8%AA%B2-lesson-6-e94d002d52b8">【教學重點】機器學習方法與流程入門 Machine Learning — Intro｜政大數據分析社 110_2 社課 Lesson 6</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【Python 資料科學教程】環境架設、Numpy, Pandas 基礎 — Data Science with Python]]></title>
            <link>https://medium.com/datamixcontent-lab/python-%E8%B3%87%E6%96%99%E7%A7%91%E5%AD%B8%E6%95%99%E7%A8%8B-%E7%92%B0%E5%A2%83%E6%9E%B6%E8%A8%AD-numpy-pandas-%E5%9F%BA%E7%A4%8E-data-science-with-python-1b6d56e14c3d?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/1b6d56e14c3d</guid>
            <category><![CDATA[data-science]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[numpy]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[pandas]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Thu, 11 Feb 2021 14:02:27 GMT</pubDate>
            <atom:updated>2021-02-11T14:02:26.935Z</atom:updated>
            <content:encoded><![CDATA[<h3>【Python 資料科學教程】環境架設、Numpy, Pandas 基礎 — Data Science with Python</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1020/0*egpUQUTDK_HSkoNC.jpg" /></figure><p><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/">2021 年 2 月 11 日</a> <a href="https://jiunyiyang.me/category/python/">Python</a>, <a href="https://jiunyiyang.me/category/tutorial/">tutorial</a></p><p><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/#respond">Leave a comment</a></p><p>不管是提升工作技能或對資料有興趣，都可以簡單上手 Python 數據分析，文末我們將提供 Colab 範本給讀者進行練習。</p><blockquote><em>＊Colab 是什麼？<br>&gt;&gt; Colaboratory (簡稱為「Colab」) 可讓你在瀏覽器上撰寫及執行 Python，且具備下列優點：</em></blockquote><ul><li>不必進行任何設定</li><li>免費使用 GPU</li><li>輕鬆共用</li></ul><h3>教程大綱</h3><ol><li><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/#1-Environment-Setup">Environment Setup</a></li><li><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/#2-Data-Processing">Data Processing</a></li></ol><ul><li><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/#Numpy-Basics">2–1. Numpy Basics</a></li><li><a href="https://jiunyiyang.me/2021/02/11/python-%e8%b3%87%e6%96%99%e7%a7%91%e5%ad%b8%e6%95%99%e7%a8%8b-%e7%92%b0%e5%a2%83%e6%9e%b6%e8%a8%ad-numpy-pandas-%e5%9f%ba%e7%a4%8e-data-science-with-python/#Pandas-Basics">2–2. Pandas Basics</a></li></ul><ol><li>Explortary / Statistical Data Analysis</li><li>Feature Engineering — Feature Selection</li><li>Machine Learning Model Training</li></ol><ul><li>Supervised Learning</li><li>Classification</li><li>KNN</li><li>Regression</li><li>Unsupervised Learning</li><li>Clustering</li><li>Association Rule Learning</li></ul><ol><li>Deep Learning Model Training</li></ol><ul><li>Time Series Data</li><li>LSTM</li><li>GRU</li><li>Natural Language Processing (NLP)</li><li>Image Recognition</li><li>Other</li></ul><h3>1. Environment Setup</h3><p>開始寫 Python 程式進行資料處理之前，我們要先做好環境架設：</p><h4>Windows</h4><blockquote><em>安裝 </em><strong><em>Anaconda</em></strong><em> 及 </em><strong><em>Python:</em></strong></blockquote><ol><li>下載 <a href="https://www.anaconda.com/products/individual#windows">Anaconda installer</a></li><li>打開 “<strong>Anaconda Prompt</strong>“</li><li>輸入 conda list 來確認是否安裝成功</li><li>輸入 python 來確認你目前的 Python 版本（輸入 quit() 可以跳出 Python shell）</li></ol><blockquote><em>安裝完成後，我們要先建立虛擬環境，再來安裝需要的 package</em></blockquote><ol><li>打開 “Anaconda Prompt”</li><li>創建虛擬環境：<br>輸入conda create --name env_name python=3.7 anaconda</li></ol><ul><li>anaconda: 這個指令是為了讓創建的虛擬環境自動納入 anaconda 預設的 packages</li></ul><ol><li>啟動虛擬環境：<br>conda activate env_name</li></ol><p>當你看到前面換成 (env_name) 時，便成功啟動了</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*p90yEpJqSOPkCDNK.png" /></figure><h3>2. Data Processing</h3><h4>Numpy Basics</h4><ul><li>可對陣列進行數學或邏輯運算</li><li>線性代數運算</li><li>產生隨機亂數等</li></ul><blockquote><strong><em>Numpy 1D Arrays</em></strong><em> 一維陣列</em></blockquote><p>1. broadcast operations：對 ndarray 可以進行 broadcast 數學運算，對 list 則無法</p><pre>example_list = [45, 69, 94, 40, 694, 596, 504]<br>example_array = np.array(example_list)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DpuRockPlMD7UJWq.png" /></figure><p>2. condition selection：對 ndarray 可以進行邏輯篩選，對 list 則無法</p><pre>filter = example_list &gt; 50</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*uxAwISXeQWX-F99l.png" /></figure><blockquote><strong><em>Numpy 2D Arrays</em></strong><em> 二維陣列</em></blockquote><p>3. slicing：對 ndarray 可以進行切片選取範圍，對 list 則無法</p><pre>example_list = [[5,6,7,8,9], <br>                [7,8,9,10,11],<br>                [9,10,11,12,13]]<br>example_list[:, 1:4]<br>example_array[:, 1:4]</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-ea12WcX057Y5FI8.png" /></figure><p>4. array operations：對 ndarray 可以進行陣列相乘，list 則無法</p><pre>multiplier = [34, 78, 90, 5, 9]<br>example_list * multiplier<br>example_array * np.array(multiplier)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*K4R8d5CvRPGf_pKl.png" /></figure><p>5. basic statistics functions</p><ul><li>Average: np.mean()</li><li>Median: np.median()</li><li>Standard derivation: np.std()</li><li>Pearson’s correlation: np.corrcoef()</li></ul><p>In 1D Array:</p><pre>def func(x, axis):<br>    print(np.mean(example_list, axis=axis))<br>    print(np.median(example_list, axis=axis))<br>    print(np.std(example_list, axis=axis))<br>    print(np.corrcoef(example_list), &#39;\n&#39;)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*2ia8dsBTHq5-k2D6.png" /></figure><p>In 2D Array:</p><ul><li>axis=0: verticality operation</li><li>axis=1: horizontally operation</li></ul><pre>example_array = np.array(example_list)<br>print(&#39;verticality: &#39;)<br>func(example_array, axis=0)<br>print(&#39;horizontally: &#39;)<br>func(example_array, axis=1)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4MUeHvsdqHzJrWMo.png" /></figure><h4>Pandas Basics</h4><p>2 main data structures:</p><ul><li>Series</li><li>DataFrame</li></ul><p>Functionalities:</p><ul><li>slicing, indexing and subsetting</li><li>groupby</li><li>reshape</li><li>pivot_table</li><li>merge, join, concat, etc.</li></ul><blockquote><strong><em>Series</em></strong></blockquote><ol><li>create series</li></ol><pre># create from ndarray<br>data = np.random.randn(5)<br>pd.Series(data, index=[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*3sNUe6IXiGGjr-ub.png" /></figure><pre># create from dictionary<br>data = {<br>    &#39;Facebook&#39;: &#39;Mark Zuckerberg&#39;,<br>    &#39;Apple&#39;: &#39;Steve Jobs&#39;,<br>    &#39;Amazon&#39;: &#39;Jeff Bezos&#39;,<br>    &#39;Netflix&#39;: &#39;Reed Hastings&#39;,<br>    &#39;Google&#39;: &#39;Larry Page&#39;<br>}<br>pd.Series(data)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ylaMacLIx6rP7p8g.png" /></figure><p>2. demonstrate operations: array-like operations</p><pre>data = np.random.randn(5)<br>ser = pd.Series(data)<br>ser[ser &gt; ser.mean()]</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xTSsJ9Ojp-H05g9r.png" /></figure><p>3. demonstrate operations: dict-like operations</p><pre>ser<br>ser[&#39;a&#39;]</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4mcK7NCUv6uJhUpP.png" /></figure><blockquote><strong><em>DataFrame</em></strong></blockquote><ol><li>create series</li></ol><pre># create from dict of series</pre><pre>data = {<br>    &#39;one&#39;: pd.Series(np.random.randn(5), index=[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;]),<br>    &#39;two&#39;: pd.Series(np.random.randn(5), index=[&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;]),<br>}<br>df = pd.DataFrame(data)<br>df</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*A7exnRbJ-x0I_cOd.png" /></figure><pre># create from dict of ndarrays/lists</pre><pre>data = {<br>    &#39;one&#39;: np.random.randn(5),<br>    &#39;two&#39;: np.random.randn(5)<br>}<br>df = pd.DataFrame(data)<br>df</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Lh7cHcrg_EuWKBTh.png" /></figure><pre># create from list of dicts</pre><pre>data = [{<br>    &#39;a&#39;: 1,<br>    &#39;b&#39;: 2<br>}, {<br>    &#39;a&#39;: 3,<br>    &#39;b&#39;: 4,<br>    &#39;c&#39;: 6<br>}]<br>df = pd.DataFrame(data)<br>df</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*j_rZi_KCOO67m97W.png" /></figure><pre># create a MultiIndexed dataframe from tuples dict</pre><pre>data = {<br>    (&#39;top-1&#39;,&#39;medium-1&#39;): {(&#39;I&#39;,&#39;i&#39;): 1, (&#39;I&#39;,&#39;ii&#39;): 2},<br>    (&#39;top-1&#39;,&#39;medium-2&#39;): {(&#39;I&#39;,&#39;ii&#39;): 1, (&#39;I&#39;,&#39;iii&#39;): 2},<br>    (&#39;top-2&#39;,&#39;medium-1&#39;): {(&#39;I&#39;,&#39;i&#39;): 1, (&#39;I&#39;,&#39;ii&#39;): 2},<br>    (&#39;top-2&#39;,&#39;medium-2&#39;): {(&#39;I&#39;,&#39;i&#39;): 1, (&#39;I&#39;,&#39;iii&#39;): 2}<br>}<br>df = pd.DataFrame(data)<br>df</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*HzZ0y78f9kzZxWMD.png" /></figure><h3>Colab 範本</h3><p><a href="https://colab.research.google.com/drive/1UGyjYSyTDZ8OmuoF6P1MDjWEJJWygjTV?usp=sharing">1. Environment Setup</a><br><a href="https://colab.research.google.com/drive/1aD0goFBpaIzfBK9GDoP6BNPmvOjrDnY6?usp=sharing">2–1. Numpy Basics</a><br><a href="https://colab.research.google.com/drive/1tz5G7ibbchb1tfTgjpSWwdqktK-2iqQa?usp=sharing">2–2. Pandas Basics</a></p><h3>線上支持這個教程</h3><ul><li><a href="https://drive.google.com/file/d/1lHoz_iwZ3xkt9sfZdxo8FCpKxEpeEzdd/view?usp=sharing">掃QR碼打賞</a></li><li>至<a href="https://www.facebook.com/MarketingDataAgent">粉專</a>按讚並<a href="https://www.facebook.com/MarketingDataAgent/posts/1125229224583565">分享</a></li></ul><p>後續還會繼續更新 Python 資料科學的更多教程，喜歡的同學別忘了按讚打開通知～</p><pre>- 如果你覺得稍有收穫，請不吝嗇幫我鼓掌，給我持續更新的動力！</pre><pre>- 5-10拍手：到此一遊<br>- 10-40拍手：<strong>對文章內容的肯定<br></strong>- 50拍手：你真的很期待再看到『<strong>同類別的</strong>』文章，我們會根據拍手數做主題的參考</pre><pre>- <strong>粉絲頁</strong>：<a href="https://www.facebook.com/MarketingAnalyticsTW/">行銷數據分析 Marketing Analytics</a>，歡迎大家 Follow 獲取數位廣告&amp;資料分析知識＆技能！</pre><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1b6d56e14c3d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/python-%E8%B3%87%E6%96%99%E7%A7%91%E5%AD%B8%E6%95%99%E7%A8%8B-%E7%92%B0%E5%A2%83%E6%9E%B6%E8%A8%AD-numpy-pandas-%E5%9F%BA%E7%A4%8E-data-science-with-python-1b6d56e14c3d">【Python 資料科學教程】環境架設、Numpy, Pandas 基礎 — Data Science with Python</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【2020政大徵才月】資料分析學習路徑整理]]></title>
            <link>https://medium.com/datamixcontent-lab/2020%E6%94%BF%E5%A4%A7%E5%BE%B5%E6%89%8D%E6%9C%88-%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90%E5%AD%B8%E7%BF%92%E8%B7%AF%E5%BE%91%E6%95%B4%E7%90%86-d35ff05f67f6?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/d35ff05f67f6</guid>
            <category><![CDATA[resources]]></category>
            <category><![CDATA[data-analytics]]></category>
            <category><![CDATA[course]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[tutorial]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sat, 28 Mar 2020 10:36:16 GMT</pubDate>
            <atom:updated>2020-03-28T10:36:16.665Z</atom:updated>
            <content:encoded><![CDATA[<p>職稱滿天飛，資料分析師、數據分析師、資料科學家、數據工程師、AI工程師、機器學習工程師…，我認為有一個光譜可由淺入深分類一下這些跟「數據」搭上邊的工作（例如 日常工作類型的比例是建立資料架構、清理資料、建模還是視覺呈現報告結果佔多數、會需要產業knowhow的比例多寡等等）。</p><p>不過這不是本篇的重點，本篇想針對<strong>資料分析入門到精通、到走向資料科學家或數據工程師、AI工程師，過程中的線上教材做歸類</strong>。我目前把它簡化成三個階段。<br>另外這樣的網路文章蠻多的，可以google「data analysis tutorial recommendation」肯定能找到更多無窮無盡的乾貨；不論你最後儲存了哪一篇，重要的是我們找到一篇覺得可以follow的開始學習囉！</p><h3>Beginner: Data Analysis Concepts</h3><p>初學重要目標：知道何謂商業上有意義的分析結果、如何從資料產出可視化圖表並做出適切解讀。</p><ol><li>多吸收<strong>產業數據應用案例<br>&gt; FineReport — </strong><a href="https://www.finereport.com/tw/knowledge/acquire/how-to-master-the-ability-of-business-data-analysis-in-work.html">一個案例告訴你，如何在工作中掌握商業資料分析的能力</a><br>&gt; <strong>FineReport — </strong><a href="https://www.finereport.com/tw/knowledge/acquire/case-analysis.html">行業好文：4大案例分析金融行業的大數據應用</a><br>&gt; <strong>Coursera</strong>—<a href="https://zh-tw.coursera.org/learn/bigdataanalysis#syllabus">大數據分析：商業應用與策略管理</a> | 台大開課</li><li>參考<strong>公開的數據可視化範例</strong>，了解<strong>如何精確使用圖表</strong>讓人知道數據中的故事<br>&gt; Hubspot —<a href="https://blog.hubspot.com/marketing/types-of-graphs-for-data-visualization"> Data Visualization 101: How to Choose the Right Chart or Graph for Your Data</a> (較進階，建議)<br>&gt; <a href="https://www.businesstoday.com.tw/article/category/80408/post/201903260012/%E4%B8%8D%E5%90%8C%E5%9C%96%E8%A1%A8%E4%B8%8D%E5%90%8C%E4%BD%BF%E7%94%A8%E6%99%82%E6%A9%9F%EF%BC%8C%E6%88%91%E7%9A%84%E5%A0%B1%E8%A1%A8%E9%81%A9%E5%90%88%E4%BB%80%E9%BA%BC%E5%9C%96%E5%BD%A2%EF%BC%9F%E4%BD%A0%E7%94%A8%E5%B0%8D%E4%BA%86%E5%97%8E%EF%BC%9F">不同圖表不同使用時機，我的報表適合什麼圖形？你用對了嗎？(</a>非常基礎，當成一個檢查)<br>&gt; <a href="https://bigdatafinance.tw/index.php/tech/visualization/194-2015-08-08-12-09-29">數據可視化：柱狀圖、雷達圖等六種基本圖表的特點和適用場合</a><br>&gt; <a href="https://public.tableau.com/search/vizzes/%23marketing">Tableau Public</a> — 可搜尋到其他人公開的視覺化Dashboard範例</li><li>自己抓取<strong>公開的數據集</strong>做可視化(視覺化)練習<br>&gt; Kaggle — 帶有主題的資料集，而且蠻多是直接提供csv，應該是最好用來練習<br>&gt; <a href="https://tianchi.aliyun.com/dataset/">阿里云天池 </a>— 阿里云旗下大数据平台<br>&gt; <a href="https://data.gov.tw/">政府開放資料</a></li></ol><h3>Intermediate: Do Analysis with EXCEL/Python</h3><p>中階重要目標：知道如何清理資料、做出符合商業目標的分析、可視化呈現並使用統計數據說服聽眾，完成這一整個flow。</p><ol><li>從電子書或線上課紮實學習整個流程<br>&gt; <a href="https://files.eric.ed.gov/fulltext/ED536788.pdf">Introduction to Data Analysis HandBook</a>(原文): 他會從資料類型、資料分析流程到跑一個實際案例給你看<br>&gt; <a href="https://www.coursera.org/learn/digital-analytics">Digital Analytics for Marketing Professionals: Marketing Analytics in Practice</a> | University of Illinois at Urbana-Champaign (4.5星，2209評分)：也是從data collection到visualization跑一次案例給你看<br>P.S. 推薦 課程比較網站 <a href="https://www.classcentral.com/subject/data-analysis?lang=english&amp;sort=rating-up">ClassCentral </a>— 跨多個平台找課程時可以互相比較評價</li><li>透過EXCEL / Python 操作跑一遍analysis流程<br>&gt; Tutorialspoint 網站文章叢集教學 — <a href="https://www.tutorialspoint.com/excel_data_analysis/data_analysis_overview.htm">Excel Data Analysis Tutorial</a><br>&gt; O’Reilly® — <a href="http://greenteapress.com/thinkstats2/thinkstats2.pdf">Think Stats: Exploratory Data Analysis in Python</a>(原文)</li><li>學習更高階的分析方法<br>&gt; <a href="http://www.dataminingbook.info/pmwiki.php/Main/BookPathUploads?action=downloadman&amp;upname=book-20160121.pdf">DATA MINING AND ANALYSIS: Fundamental Concepts and Algorithms</a>(原文) — 多變量分析、處理高維度資料、分類分群方法等（銜接機器學習方法）</li></ol><p>＊Data Analysis v.s. Data Mining 兩者差異，最主要定義上前者是指產出<strong>商業上有用insight的一連串步驟包含data extracting</strong>, <strong>cleansing, transforming, modeling, visualization</strong>，後者則專指機器學習中<strong>從大量資料中找出pattern的系統化流程</strong>。source: <a href="https://www.educba.com/data-mining-vs-data-analysis/">國外線上學習網站EDUCBA點出共7點差異</a>。</p><h3>Advanced: Big Data Processing with SQL/Python</h3><p>高階重要目標：學習其他串接資料技術，了解程式效能對資料處理的影響，並優化程式寫法。</p><p>因為<strong>真實世界的資料不是永遠都長得那麼工整</strong>，會包好一個csv丟給你；很多時候必須藉由網站爬蟲、從DB撈取等方式得到資料。使用Python的好處是能一條龍的完成資料撈取到視覺化過程，但EXCEL仍有他的優點，就是能非常省時的跑出統計分析、圖表報表。</p><ol><li>學習SQL-like語言<br>&gt; <a href="https://learn.datacamp.com/career-tracks/data-analyst-with-sql-server">Data Analyst with SQL Server | Datacamp</a> — 再自己弄一個DB可能有些麻煩，所以初學者我蠻推薦用Datacamp的互動式來學SQL</li><li>學習簡單Python爬蟲<br>&gt; 推薦<a href="https://www.youtube.com/watch?v=ceUhb2-gYOU&amp;list=PLohb4k71XnPaQRTvKW4Uii1oq-JPGpwWF">大數學堂的YT視頻</a>，他有帶很多類型的案例，包含從找html tag、找藏在network頁籤的api、解決需要登入的問題、防止爬蟲被機器人擋等</li><li>了解Python中資料處理function的效能，建議用法<br>&gt; <a href="https://learn.datacamp.com/courses/writing-efficient-python-code">Writing Efficient Python Code | Datacamp</a><br>&gt; <a href="https://wiki.python.org/moin/PythonSpeed/PerformanceTips#Loops">Official Python Performance Tips</a> — 官方有針對像是Sorting, Loop, Data Aggregation等舉例直覺用法 v.s. 更有效率的用法</li></ol><p><em>Updated on 2020.03.28</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d35ff05f67f6" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/2020%E6%94%BF%E5%A4%A7%E5%BE%B5%E6%89%8D%E6%9C%88-%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90%E5%AD%B8%E7%BF%92%E8%B7%AF%E5%BE%91%E6%95%B4%E7%90%86-d35ff05f67f6">【2020政大徵才月】資料分析學習路徑整理</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【乾貨】品牌行銷九大分析維度—iBuzz CEO論壇 ＠NCCU MBA]]></title>
            <link>https://medium.com/datamixcontent-lab/%E4%B9%BE%E8%B2%A8-%E5%93%81%E7%89%8C%E8%A1%8C%E9%8A%B7%E4%B9%9D%E5%A4%A7%E5%88%86%E6%9E%90%E7%B6%AD%E5%BA%A6-ibuzz-ceo%E8%AB%96%E5%A3%87-nccu-mba-1d4be6b66ec3?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/1d4be6b66ec3</guid>
            <category><![CDATA[marketing]]></category>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[social-listening]]></category>
            <category><![CDATA[branding]]></category>
            <category><![CDATA[digital-marketing]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Wed, 25 Dec 2019 08:30:43 GMT</pubDate>
            <atom:updated>2019-12-28T12:07:56.990Z</atom:updated>
            <content:encoded><![CDATA[<h3>【乾貨】品牌行銷九大輿情分析維度—iBuzz ＠NCCU MBA CEO論壇</h3><h4>9大維度，透過資料挖掘認識品牌的對手、消費者、市場表現</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*k2x74nbGFp1NfG_maXwTIA.png" /></figure><h4>前言</h4><p><strong>iBuzz </strong>(亞洲指標數位行銷顧問股份有限公司) 是台灣第一間做海外內自動化網路口碑輿情搜集系統，來分享的<strong> CEO 黎榮章 學長</strong> 也是<strong>政大企家班</strong>的校友！</p><p>據網路資料，他們在台灣的網路環境蒐集輿情口碑資料的<strong>總頻道來源超過17,289個</strong>，涵蓋<strong>八大頻道</strong>類型<strong>(新聞、文章、論壇、部落格、維基與FB粉絲團、Youtube、PTT)</strong>；<br>同時也有針對<strong>中國大陸</strong>的網路口碑資訊蒐集，採<strong>80/20原則</strong>抓各產業別TOP30的熱門網站，包含<strong>七大頻道來源(新聞、文章、論壇、部落格、維基、電商、微博)</strong>，共<strong>12940</strong>個頻道。<br><strong>東南亞</strong>部分包含<strong>新加坡、馬來西亞、印尼、越南、菲律賓、泰國</strong>等城市，來源包含<strong>傳統媒體和臉書、IG</strong>等社交平台。<br>他們不僅服務<strong>品牌直客</strong>，同時也跟<strong>奧美</strong>集團、<strong>群邑</strong>集團、<strong>電通安吉斯</strong>集團、<strong>聯廣</strong>集團等<strong>4A大型代理商</strong>、公關公司搭配，提供<strong>網路大數據分析</strong>與<strong>社群行銷</strong>解決方案。</p><p>好的，認識完iBuzz讓我們進入主題！</p><h3>品牌行銷九大分析維度</h3><blockquote><strong>＊P.S. / 當天無法拍照，以下圖表皆為模擬示意＊</strong></blockquote><h4>(I) 產業環境分析</h4><p>ex：化妝品在不同季度的討論趨勢（用文字雲表示）</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FLa5dXT5Jc8YlA8nPKGnBQ.png" /></figure><h4>(II) 產業競爭分析</h4><ol><li>品牌討論度排名：同一產業內，約會有前３大品牌佔據80%的討論度。</li></ol><p>2. 品牌與產品的聲量占比：大家普遍講到這個品牌的時候，是打他的品牌字or產品名多？</p><p>Ex: 精品業相較於日用品品牌占比較多<br>Ex: OPPO 產品討論大於品牌太多</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W6MaxpE4Xt7h13r7WdO0yg.png" /></figure><p>2. 產品內 效能指標討論度：<br>與商品字一起出現、有關產品系統效能的名詞、評價</p><h4>(III) 企業集團分析</h4><ol><li>品牌P/N比 (正負情緒比) ：<br>將每一篇提及企業品牌的文章算出正、負面分數各一，最後再計算總共的（正面情緒分數／負面情緒分數），數值越高、品牌好感度越高。</li></ol><h4>(IV) 品牌健康分析（品牌情緒象限）</h4><ol><li>4象限：正面、負面、強烈、輕微</li><li>分別對品牌有哪些關鍵字、個別是落在什麼情緒、討論量有多少</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/700/1*iwL4KcLr5CknoDFgavLtWA.png" /></figure><h4>(V) 產品力分析 (SWOT)</h4><p>應用點：以往，行銷人員透過觀察、資料蒐集、發想寫出SWOT分析象限；但總有些無法一眼觀察出的pattern，透過文字探勘可以為行銷人員做SWOT增添靈感。</p><ol><li><strong>產品使用情境-&gt;顧客痛點</strong><br>將多篇使用心得文，進行文本及情感分析，從詞頻及語意判斷顧客痛點。</li><li>斷詞後做相關性分析，哪些商品和情緒描述之間的相關度較高（EX: 在同篇文章出現）</li></ol><h4>(VI) 活動成效檢核：</h4><p>從前中後流程追蹤成效</p><ol><li>活動宣傳<br>線上投放<br>自媒體經營</li><li>活動報名<br>個人化資料</li><li>活動報到<br>個人身份辨識</li><li>活動體驗</li></ol><h4>(VII) 廣告效果檢驗＆優化</h4><p>廣告投放前後監測：</p><ol><li><strong>各大主要論壇，投放前後、討論詞頻的變化</strong>（說服效果分析）<br>適用於品牌曝光、促進知名度的廣告類型，可了解投放後，增加了多少與品牌主相關的討論。</li></ol><p>廣告優化：</p><ol><li><strong>作為後續廣告素材的主題參考<br>觀察討論集中在什麼熱詞，有可能是文案一開始並沒有強調到的</strong>，此時就可以丟新一版廣告文案做A/B Test，看CTR是否增加。</li><li><strong>聯播網內容相關：文章內容有出現關鍵詞才播送廣告<br></strong>在Google Ads可設定「<strong>多媒體廣告關鍵字</strong>」，讓廣告只出現在 「包含你設定的關鍵字」的網頁、影片、應用程式。<br>如果我們發現廣告CTR不如預期，可以嘗試在多媒體廣告關鍵字，鎖定文字探勘得到的熱詞。但不宜鎖得太細，以免曝光量過少。</li></ol><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*N64MzAz1EGHPbABFLmXqpg.png" /><figcaption><a href="https://support.google.com/google-ads/answer/2453986?hl=zh-Hant">詳細官方說明</a></figcaption></figure><h4>(VIII) 議題事件分析</h4><ol><li>聲量：提及次數、隨時間變化圖</li><li>來源占比：初次出現在不同內容平台的占比</li><li>擴散：隨時間擴散的平台分佈</li><li>隨時間變化的熱詞及正負面情緒</li></ol><h4>(IX) 消費者</h4><p>資料來源不包含年齡、ip等資訊時，若要判斷受眾輪廓該怎麼做呢？</p><ol><li>人口結構分析<br><strong>從用語回推 年齡、性別、區域等</strong>。（例如：會講「是在哈囉」的人，大概率落在14~21、說坐機捷通勤的人，大概率住在新北三重、新莊、林口、泰山）</li><li>生活型態<br><strong>透過語意反推 意見、興趣、休閒活動</strong>。（同上，例如：會講「高效學習」的人，大概率是互聯網產業、白領、喜歡閱讀）</li><li>人物性格分析<br>文本分析 明星粉專、IG、微博日常發文用語、機器學習辨識圖像風格（穿搭風格），將微網紅分成多個大類別（如：文青、可愛、運動、嘻哈、知性、甲甲、憤青、專業權威感…等）<br>方便迅速找到適合品牌主的網紅、代言人。</li></ol><h3>趨勢：圖像辨識 分析社群話題</h3><p>用戶越來越習慣在 FB、IG 等社群平台分享梗圖短影片，文字探勘能抓到的比例不斷下降；說到因應方式，iBuzz舉例內部做的<strong>「反送中」議題IG分析</strong>，找出：</p><ul><li>社群流傳度前五名傳播梗圖/照片<br>透過解析圖片風格、圖中文字來訓練分類器</li><li>初期發布者、中晚期擴散用戶群</li></ul><h3>文末補充</h3><p>這次iBuzz演講的主題—大數據輿情分析，就像開頭提過的，是從新聞、文章、論壇、部落格、維基與FB粉絲團、Youtube、PTT等來源，系統化蒐集整理口碑資料的過程。這邊整理台灣做輿情分析的重點公司，以及自己想要操刀可以用什麼工具？</p><p>輿情分析公司：</p><ul><li><a href="https://www.i-buzz.com.tw/">iBuzz</a></li><li><a href="https://www.opview.com.tw/%E6%87%89%E7%94%A8%E6%A8%A1%E5%BC%8F%E8%88%87%E6%A1%88%E4%BE%8B">Opview</a> （eLand 意藍資訊）</li><li><a href="https://www.largitdata.com/#infominer">大數軟體</a> InfoMiner<br><a href="http://ir.pccu.edu.tw/ezfiles/62/1062/img/1795/185655092.pdf">輿情分析案例分享</a></li><li><a href="https://www.yodass.com/connotation/">yodass</a></li><li><a href="http://www.tpoc.com.tw/page/view/solution">Quickseek</a><br><a href="http://2020candidate.quickseek.com.tw/">2020選舉大數據儀表板</a></li></ul><p>開源輿情分析工具：</p><ul><li><a href="https://ckip.iis.sinica.edu.tw/project/opinion/">CKIP Lab</a>：中研院輿情分析系統</li><li><a href="https://choose.blueplanet.com.tw/">蛛思輿情分析平台</a>（可申請免費試用，我個人最喜歡它的介面和互動）</li></ul><p>9大分析維度的主題就到這邊！最後不免俗要說，如果你喜歡我的文章：</p><ul><li>5–10拍手：到此一遊</li><li>10–40拍手：對文章內容的肯定</li><li>50拍手：你真的很期待再看到『同類別的』文章！！</li></ul><p>也歡迎大家 Follow 粉絲頁：<a href="https://www.facebook.com/MarketingAnalyticsTW/">行銷數據分析 Marketing Analytics</a>， 獲取更多數位廣告&amp;資料分析知識＆技能！</p><h4><a href="https://twinsyang.net/archives/20464">你知道Liker coin可以透過BitAsset換成台幣嗎？</a></h4><p>一杯星巴克註冊成為「讚賞公民」，你也可以獲得5 Liker coin回饋！<br>也可以免費註冊成為「一般Liker」就好，免費支持你眼前的創作者！</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fbutton.like.co%2Fin%2Fembed%2Frubyyang0615%2Fbutton%2F&amp;url=https%3A%2F%2Fbutton.like.co%2Frubyyang0615&amp;image=https%3A%2F%2Fstorage.googleapis.com%2Flikecoin-foundation.appspot.com%2Flikecoin_store_user_rubyyang0615_main%3FGoogleAccessId%3Dfirebase-adminsdk-eyzut%2540likecoin-foundation.iam.gserviceaccount.com%26Expires%3D2430432000%26Signature%3DncqektDHUi5YMS3w%252FLSWyjKvfiiPbwjZljpgtDSSWNAv8eFq7AGc9%252Fvz77WAny4zr4Y%252B8tzE5iI1gufm2aAurVL4nPaRWCopRcUg9UMfjkn4SSxJiyVda5%252FhxdqFvLWlwJjR0udSlVw3JFTdCULc0pQZ0HzcqXjDwZ85i1H68kTIWDRmrUYBgxFHtUSWSgT%252BDrafz74TA0thGh2FHN0RdvwwEyX%252FlfdDHu1qcx1Nvs3DnSfQ4vS5v36W0HbgKiD4UboCIQylesEz4pPgGebv7anJxyGqKsC9HcbgTVo124tGPHYB%252FOMHF2EbWPL5ZDGsx0YYN14dHdCPdL0aofMPSw%253D%253D&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=like" width="485" height="212" frameborder="0" scrolling="no"><a href="https://medium.com/media/4e7eeca274f761e0de209e996520330f/href">https://medium.com/media/4e7eeca274f761e0de209e996520330f/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1d4be6b66ec3" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E4%B9%BE%E8%B2%A8-%E5%93%81%E7%89%8C%E8%A1%8C%E9%8A%B7%E4%B9%9D%E5%A4%A7%E5%88%86%E6%9E%90%E7%B6%AD%E5%BA%A6-ibuzz-ceo%E8%AB%96%E5%A3%87-nccu-mba-1d4be6b66ec3">【乾貨】品牌行銷九大分析維度—iBuzz CEO論壇 ＠NCCU MBA</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[【文本分析入門｜概念篇】給我一段話，我告訴你重點在哪：對文本重點字詞加權的TF-IDF方法]]></title>
            <link>https://medium.com/datamixcontent-lab/%E6%96%87%E6%9C%AC%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80-%E6%A6%82%E5%BF%B5%E7%AF%87-%E7%B5%A6%E6%88%91%E4%B8%80%E6%AE%B5%E8%A9%B1-%E6%88%91%E5%91%8A%E8%A8%B4%E4%BD%A0%E9%87%8D%E9%BB%9E%E5%9C%A8%E5%93%AA-%E5%B0%8D%E6%96%87%E6%9C%AC%E9%87%8D%E9%BB%9E%E5%AD%97%E8%A9%9E%E5%8A%A0%E6%AC%8A%E7%9A%84tf-idf%E6%96%B9%E6%B3%95-f6a2790b4991?source=rss----b006fe95c676---4</link>
            <guid isPermaLink="false">https://medium.com/p/f6a2790b4991</guid>
            <category><![CDATA[data-analysis]]></category>
            <category><![CDATA[text-mining]]></category>
            <category><![CDATA[machine-learning]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[nlp]]></category>
            <dc:creator><![CDATA[JiunYi Yang (JY)]]></dc:creator>
            <pubDate>Sun, 24 Nov 2019 14:34:18 GMT</pubDate>
            <atom:updated>2021-09-14T15:25:42.461Z</atom:updated>
            <content:encoded><![CDATA[<h3>【資料分析概念大全｜認識文本分析】給我一段話，我告訴你重點在哪：對文本重點字詞加權的TF-IDF方法</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oWkSvCBs4attQ8hh8f9qWg.png" /></figure><p>適逢上週五<a href="http://www.dma.org.tw/newsPost/533"><strong>2019數位奇點獎</strong>，敝公司獲得<strong>【最佳數據科技創新獎】</strong>銅獎</a>；當中的案件我們使用到<strong>tfidf產生的文本向量做KMeans分群</strong>。正好想試試再讓文章簡單好懂一點，本周就單純只介紹這個文本分析很常用到的統計方法：TF-IDF。</p><p>一句話解釋TF-IDF——<strong>用來從一段文字/一個語料庫中，給越重要的字詞/文檔，越高的加權分數</strong>。<br>本篇文章共三段，第一段講述概念與公式，第二段帶一個簡單的script印出一句話的tfidf稀疏矩陣，最後第三段提及TF-IDF的限制和改進。</p><p><em>預計閱讀時間：5–8 mins。</em></p><h3>概念解釋</h3><p>你看，TF - IDF ，前面的<strong>TF</strong>是<strong>T</strong>erm <strong>F</strong>requency的縮寫，後面的<strong>IDF</strong>是<strong>I</strong>nverse <strong>D</strong>ocument <strong>F</strong>requency的縮寫，合在一起則說明了它如何計算出誰是相對比較重要的字詞——<strong>字詞的重要性隨著 在文本出現的頻率越高則越高；在不同文本檔案間出現的次數越高則反而降低</strong>。<br>所以聰明的你會猜得到，它由兩個公式組成：</p><h4>1. TF (Term Frequency) <strong>詞頻</strong></h4><p>我們先把拆解出來的每個詞在各檔案出現的次數，一一列出，組成矩陣。接著當我們要把這個矩陣中，『詞1』在『文件1』的TF值算出來時，我們是<strong>用『詞1在文件1出現的次數』除以『文件1中所有詞出現次數的總和(可說是總字數)』</strong>。<br>如此一來，我們才能在不同長度的文章間比較字詞的出現頻率。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/631/1*p33SpAy05KWRqxfp8JYx3w.png" /></figure><h4>2. IDF (Inverse Document Frequency) <strong>逆向檔案頻率</strong></h4><p>如果經過第1步的計算，此時我們有兩個詞頻一樣的字詞，還有什麼變數影響他們可能更重要 或 不重要？</p><p>如果有一個詞事實上很常出現在不同文章內，那即使該字詞的頻率很高，它是不是不足以代表這篇文章？ 拿藝人上電視節目舉例，如果藝人A和藝人B上X視節目的次數相同；但藝人A只上X視節目，藝人B還會出現在X立、X大的節目，對X視節目來說，最具代表性的還是藝人A，而不是有可能在X立、X大上過更多次節目的藝人B。</p><p>所以我們這裡再用IDF，計算該詞的「<strong>代表性</strong>」。<br><strong>由『文章數總和』除以『該字詞出現過的文章篇數』後，取log值*。</strong>實際應用中為了避免分母=0，因此通常分母會是dt+1。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/624/1*IetKUpVCuh2s3-FRfYPhlw.png" /></figure><p><em>＊注：</em><br>IDF之所以取log的原因，有過多篇論文討論。把「詞在所有文章出現的篇數」想成「要從這些文章中，隨機抽一篇能夠抽到包含該詞的文章的<strong>『機率』</strong>有多少」；也就是這個詞在這些文章中被找到的機率分布。</p><p>另一個原因是，如果不取log，比方說總數是100000篇文章，如果因為拼錯字導致此詞僅有1篇出現過，TF-IDF最後給這詞的加權會出現太大的值，使得線性加權方式反而表現得沒那麼好。</p><p>綜合兩個公式值相乘，便得到我們今天介紹的TF-IDF值：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/413/1*-fPC608WGEw_TSx4Y5gf-g.png" /></figure><h3>程式實作</h3><p>結束前，我們用scikit-learn 提供的CountVectorizer, TfidfTransformer來試著對多個句子產生tfidf值矩陣。（＊注意：要經過斷詞處理後再做tfidf）</p><p>另外值得一提的是，如果是英文文本實作tfidf，通常還會需要<strong>詞型還原 Stemming</strong>（譬如：teach / taught，理當視為同義，不可以讓tfidf算成兩種詞），因為有文法時態、單複數的問題。</p><p>1. 引入套件</p><pre>from sklearn.feature_extraction.text import TfidfTransformer<br>from sklearn.feature_extraction.text import CountVectorizer<br>import jieba<br>jieba.set_dictionary(&#39;../../zh-TW_dict/dict.txt.big.txt&#39;) # 使用官方的繁體詞典</pre><p>2. 載入停用字檔案<br>&gt; <a href="https://github.com/A-baoYang/product-selection-analysis/blob/main/stopwords_zhTW.txt">stopwords.txt</a></p><pre>with open(&#39;stopwords.txt&#39;) as f:<br>    stopword_list = [s for s in f.read().split(&#39;\n&#39;)]</pre><p>3. 處理文章資料</p><pre>df_article = pd.read_csv(&#39;your_file.csv&#39;)</pre><pre>jieba_results = []<br>for sent in df_article.sentences:<br>    w_string = str()<br>    ws = jieba.cut(sent, cut_all=False) # 精確模式<br>    for w in ws:<br>        if w not in stopword_list:<br>            w_string += w + &#39; &#39;<br>    jieba_results.append(w_string)</pre><pre>df_article[&#39;sent_jieba&#39;] = jieba_results</pre><p>4. 基本tfidf script</p><pre>vectorizer = CountVectorizer(stop_words = manual_stop_list)<br>transformer = TfidfTransformer()<br>X = vectorizer.fit_transform(df_article.sent_jieba)<br>tfidf = transformer.fit_transform(X)<br>weight = tfidf.toarray()</pre><p>5. 檢視結果</p><pre>print(weight.shape)<br>print(tfidf[0])<br>print(weight[0])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/654/1*Qh6T22J8EmDPr5uJ7Fah3w.png" /></figure><p>這邊我們先拿前5個句子來測試，所以你會看到weight.shape是(5, 39)，它是指有5列、39行的矩陣構成；一列就是一個句子，39行是指這5句裡所有出現過的不重複字詞共有39個。矩陣裡的數值就是這39個詞，在這5句中的tfidf值。</p><p>＊tfidf的output因為是個sparse matrix(稀疏矩陣，未來我們有機會講到)，tfidf.toarray() 可轉換成2-dimensional ndarray的形式。</p><p>tfidf[0]是指，第1句的tfidf稀疏矩陣，紀錄第幾列、第幾行的非零值是多少。weight[0]則完整印出39個詞在第一句中的tfidf值，0則代表這詞沒出現在第一句。</p><p>你可以想像，如果我們對每一句做完tfidf值，這樣的矩陣代表我所有的詞庫中，誰對哪篇文章有加權到；所以如果有兩篇文章的tfidf矩陣非零的位置一樣，則這兩篇加權到的字詞一致，表示這兩篇文章意思可能更相近。</p><h3>TF-IDF的限制及改進方向</h3><p>TF-IDF是個相對構成簡單的算法，有一些情境下它會誤判特徵詞的重要度：</p><ol><li><strong>語料庫中剛好都是同類文章，此時具代表性的字詞反而不被加權</strong>。<br>譬如：都是講行銷的文章一起放到語料庫被訓練，因為幾乎每一篇都提到『數位行銷』，最後結果出來，『數位行銷』的IDF值反而比『客戶』、『用戶』之類的詞更低。若使用TF-IDF方法，要注意語料庫的挑選。</li><li><strong>TF-IDF無法考慮到位置訊息。</strong>如果你的情況是 文章標題、文章第一句或文章結尾提到其實代表這個詞更重要，此時用TF-IDF就無法參考到詞在文章中的位置訊息。</li></ol><p>針對第一點，網路有文章提出了「TF-IWF」，以及「TF-DFIDFO」兩種改善方法。</p><h4>TF-IWF 詞語逆頻率加權</h4><p>TF的部分不變，差別在IWF值算法改成：</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/338/1*FjhacIHHcYPxkcpoKTy26Q.png" /></figure><p>分子：整個語料庫中所有字詞的總頻次(總字詞數)<br>分母：該字詞在 整個語料庫中 出現的總次數<br>（簡單說，就是從指參考一篇文章，改成參考整個語料庫(所有文章)）</p><p>｜改進優點：避免當語料庫中有高比例的同類別文章時，重要特徵詞的權重沒有被提升到。</p><h4><strong>TF-DFIDFO 類別頻率加權</strong></h4><p>DFI是指「同類別內的分布情況」、DFO則是指「類別間的分布情況」。</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/419/0*BxJVWWs1iTg4pMYZ" /><figcaption>網路上<a href="http://m.fx361.com/news/2015/0430/827110.html">只有一篇中國研究</a>講到TF-DFIDFO，照著研究意思先把公式編輯下來，未來有機會再深入理解</figcaption></figure><p>｜改進優點：增強對&quot;類別&quot;的區分力。</p><pre>資料來源：<br>- <a href="https://towardsdatascience.com/tf-idf-for-document-ranking-from-scratch-in-python-on-real-world-dataset-796d339a4089">TF-IDF for document ranking from scratch in Python on real world dataset</a><br>- <a href="https://www.zhihu.com/question/47277917">tf-idf 算法中idf为何使用对数？直接用比值或者其他函数不行吗</a><br>- <a href="https://coolshell.cn/articles/8422.html">TF-IDF模型的概率解释</a><br>- <a href="https://baojiebaojie.wordpress.com/2011/06/15/tf-idf-information/">TF-IDF之极简化信息论分析</a><br>- <a href="https://blog.csdn.net/qq_34333481/article/details/84256190">TF-IDF存在的問題及其改進</a><br>- <a href="https://kundongmo.github.io/nlp-basic-keyword-tfiwf/">特征加权之TFIWF</a><br>- <a href="http://m.fx361.com/news/2015/0430/827110.html">改进的TF-IDF中文本特征词加权算法研究</a></pre><p>好的，以上就是本周 Python 文本分析的連載。<br>前段是自己的理解+基本定義、後段限制和改進的部分，是網路資料的回溯歸納。<br>有問題歡迎留言詢問，看到我會盡力回答的。</p><p>2019.11.24</p><pre>- 如果你覺得稍有收穫，請不吝嗇幫我鼓掌，給我持續更新的動力！<br>5-10拍手：到此一遊<br>10-40拍手：<strong>對文章內容的肯定<br></strong>50拍手：你真的很期待再看到『<strong>同類別的</strong>』文章，我們會根據拍手數做主題的參考</pre><pre>- <strong>粉絲頁</strong>：<a href="https://www.facebook.com/MarketingAnalyticsTW/">行銷數據分析 Marketing Analytics</a>，歡迎大家 Follow 獲取數位廣告&amp;資料分析知識＆技能！未來會嘗試開放基礎～進階課程模組化細分給大家</pre><pre>- 當然，樓下的Liker Coin按鈕也是給他按到底喔：）</pre><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fbutton.like.co%2Fin%2Fembed%2Frubyyang0615%2Fbutton%2F&amp;url=https%3A%2F%2Fbutton.like.co%2Frubyyang0615&amp;image=https%3A%2F%2Fstorage.googleapis.com%2Flikecoin-foundation.appspot.com%2Flikecoin_store_user_rubyyang0615_main%3FGoogleAccessId%3Dfirebase-adminsdk-eyzut%2540likecoin-foundation.iam.gserviceaccount.com%26Expires%3D2430432000%26Signature%3DncqektDHUi5YMS3w%252FLSWyjKvfiiPbwjZljpgtDSSWNAv8eFq7AGc9%252Fvz77WAny4zr4Y%252B8tzE5iI1gufm2aAurVL4nPaRWCopRcUg9UMfjkn4SSxJiyVda5%252FhxdqFvLWlwJjR0udSlVw3JFTdCULc0pQZ0HzcqXjDwZ85i1H68kTIWDRmrUYBgxFHtUSWSgT%252BDrafz74TA0thGh2FHN0RdvwwEyX%252FlfdDHu1qcx1Nvs3DnSfQ4vS5v36W0HbgKiD4UboCIQylesEz4pPgGebv7anJxyGqKsC9HcbgTVo124tGPHYB%252FOMHF2EbWPL5ZDGsx0YYN14dHdCPdL0aofMPSw%253D%253D&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=like" width="485" height="212" frameborder="0" scrolling="no"><a href="https://medium.com/media/4e7eeca274f761e0de209e996520330f/href">https://medium.com/media/4e7eeca274f761e0de209e996520330f/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f6a2790b4991" width="1" height="1" alt=""><hr><p><a href="https://medium.com/datamixcontent-lab/%E6%96%87%E6%9C%AC%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80-%E6%A6%82%E5%BF%B5%E7%AF%87-%E7%B5%A6%E6%88%91%E4%B8%80%E6%AE%B5%E8%A9%B1-%E6%88%91%E5%91%8A%E8%A8%B4%E4%BD%A0%E9%87%8D%E9%BB%9E%E5%9C%A8%E5%93%AA-%E5%B0%8D%E6%96%87%E6%9C%AC%E9%87%8D%E9%BB%9E%E5%AD%97%E8%A9%9E%E5%8A%A0%E6%AC%8A%E7%9A%84tf-idf%E6%96%B9%E6%B3%95-f6a2790b4991">【文本分析入門｜概念篇】給我一段話，我告訴你重點在哪：對文本重點字詞加權的TF-IDF方法</a> was originally published in <a href="https://medium.com/datamixcontent-lab">資料探員 Data Agent</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>