| 揚聲器 |
文字稿 |
| 基拉·阿爾霍恩 |
好的,歡迎收聽我的演講「透過文字探索器了解客戶需求」。我非常高興… |
| |
本次JMP Discovery Summit高峰會以線上形式舉行。我叫Kira Alhorn,是WL Gore and Associates公司的統計學家。 |
| |
在正式開始演講之前,我想先簡單介紹一下我們公司。 WL Gore and Associates 是一家全球材料科學公司,我們生產… |
| |
針對截然不同的產業,我們提供截然不同的解決方案,從航空航太到醫療產品,以及您可能比較熟悉的領域。 |
| |
這是我們自有的Gore-tex品牌。所以今天我們就重點介紹這個品牌,Gore-tex品牌生產耐用的防水透氣布料層壓材料。 |
| |
這些層壓板會出售給我們的客戶或品牌合作夥伴,他們會用這些層壓板生產產品。更具體地說,我們今天將重點放在鞋類產品上。 |
| |
這是關於我演講的簡要概述。我將從背景和動機開始。那麼,我們要研究什麼呢?我們要研究鞋子的描述,以及我們為什麼對它感興趣。 |
| |
之後,剩餘的講解將在 JMP 中進行。我將使用 JMP 15 專業版,並向您示範如何使用文字瀏覽器。 |
| |
用於分析我們的鞋款描述。如何從這些文字或鞋款描述中找到主題,以便利用這些主題找到常見的鞋款描述或鞋款描述中的常見主題,並將其與我們擁有的不同鞋款類別進行比較。 |
| |
最後,這只是一個非常簡短的介紹,我們使用一些預測模型來驗證我們的發現,並更深入地了解不同的鞋子描述是如何對鞋子進行分類的。 |
| |
所以,想像一下你自己的衣櫃,以及衣櫃裡所有的鞋子。 |
| |
你們每個人的鞋櫃裡都會有不少鞋子,問題是,你們為什麼會有這麼多鞋子? |
| |
鞋子要符合你的風格,你可能還需要不同顏色等等,但這不是你擁有不同鞋子的唯一原因。 |
| |
另一個原因是你需要不同的鞋子。試想一下,你有一雙跑鞋,幾雙休閒鞋,可能還有登山鞋。 |
| |
之所以有這些鞋子,是因為每雙鞋都有不同的或略有不同的特點,使得這雙鞋能夠用於特定的最終用途,而你也需要這些特點才能用於該最終用途。 |
| |
所以我們想知道,如果我們查看品牌合作夥伴提供的鞋款描述,我們能否找到不同鞋款的獨特之處?您將在這裡看到一系列鞋款。 |
| |
不同鞋類類別對應著我們現在所說的鞋子的不同最終用途。 |
| |
現在的問題是,如果客戶想要生產一款新的健行鞋,例如,我們應該在我們銷售的用於健行鞋的層壓板中提供什麼樣的功能配置? |
| |
那麼,這些鞋子的描述能否提供我們可以提供給顧客的原型產品呢? |
| |
當然,這裡另一個有趣的方面是,其他鞋子是如何進行差異化的?健行鞋和日常鞋有什麼差別?為什麼我們需要這些差異? |
| |
而這正是我們開始分析數據時的初衷。 |
| |
所以,接下來我想去JMP。 |
| |
在 JMP 中,我首先想向大家展示我們收集的資料是什麼樣子。 |
| |
因此,我們只需造訪品牌合作夥伴的網頁,並從這些網頁上收集鞋子的描述即可。 |
| |
對於每種鞋類,我們都有一定數量的鞋款描述,你會看到,我們只是簡單地將整個描述複製到了我們的數據表中。 |
| |
所以,這段話可能很長,也可能很短,但我們所做的只是簡單的複製。 |
| |
但另一方面,你可以想像,有了那個文字框,我們能做的事情並不多。 |
| |
或者至少看起來我們做不到,因為 JMP 提供了強大的功能。那麼,我們該怎麼做呢?我們想從長篇文本中提取訊息,並將其拆分成更易於理解的小塊。 |
| |
以及那些易於消化的部分 |
| |
可以使用文字瀏覽器來提取。所以我想打開文字瀏覽器,把鞋子的描述填入這裡的文字列。 |
| |
這裡有很多選項。這些選項會被輸入到演算法中,演算法會產生我們的鞋子描述,或是在文字分析語言中,我們稱這些描述為文件。 |
| |
正如我之前提到的,這樣做是將文件拆分成更小的信息塊,也就是更容易理解的小塊。 |
| |
你會看到一些易於理解的小塊訊息,也就是最小的訊息單位——術語,以及經常一起出現的短語,這些短語如果把它們組合起來可能會有意義。 |
| |
所以您可以在這裡看到最常用的術語 |
| |
在所有文件中,也就是在所有鞋子的描述中,都出現了「舒適」這個詞。 |
| |
所以,我們首先做的就是把這裡所有的片語都過一遍,看看有沒有哪個片語是合理的? |
| |
第一個例子已經很清楚了。你看,這裡 Gore 和 tex 這兩個詞是分開出現的,但當然,更合理的分析對像是 Gore-tex 這個詞,而不是 Gore 和 tex。 |
| |
所以你可以把所有有意義的短語加到術語清單中。例如,我們新增的短語是 Gore-tex,現在你會看到,這裡顯示的是 Gore-tex 這個術語,而不是之前的 Gore 這個字。 |
| |
這就是我們資料處理的第一步。第二步是檢查術語清單是否有重複項或 |
| |
如果存在任何不合理的字詞。 JMP 的處理能力已經非常出色,因為它已經排除了許多不合理的詞語,例如 and、a 等。 |
| |
或者,有些字根本無法提供任何資訊。然而,總是會有一些詞條沒有意義,例如字母 S。 |
| |
你會如何處理字母 S?它能告訴你關於鞋子的什麼訊息?所以我們必須逐一檢查所有術語,如果某個術語沒有意義,我們就稱之為停用詞,並將其添加到停用詞列表中,以將其從分析中排除。 |
| |
那是其中一件事。我提到的另一件事是,我們需要檢查是否有重複項,例如,您可以在這裡看到“Gore-tex”這個詞。 |
| |
還有GTX這個術語。 GTX只是Gore-tex的縮寫,所以我們不應該分開分析這兩個術語,而應該將它們結合起來分析。 |
| |
所以,您可以使用重新編碼功能,它與列的重新編碼功能基本上相同,這是用於合併這些列的強大工具。 |
| |
??? 數據。所以你看,這裡是 Recode 函數,我把它們兩個都放在一起了。 |
| |
現在您可以看到,現在只有一個單字(Gore-tex),而且這實際上是我們資料中最常見的單字。 |
| |
所以。 |
| |
我們最初收集了4000個詞條,經過篩選後最終只剩下100個。所以你看,我們現在只剩下100個詞條,有了它們,我們就可以進行大量的分析。這些分析對我們了解鞋子描述的含義非常有幫助。 |
| |
所以你可以使用該清單來查看最常用的術語,但 JMP 也提供了一個非常簡單的視覺化工具。 |
| |
點擊紅色三角形,即可加入詞雲。詞雲會根據詞語的大小,顯示其在所有文件(包括所有鞋類描述)中的出現頻率。例如,Gore-tex、舒適和輕便是我們收集的鞋類描述中最常用的單字。 |
| |
但你可能記得,這不是我們真正想問的,對吧?所以我們想問的是,針對不同終端使用者的鞋子有哪些特色? |
| |
為此,我們可以輕鬆地在此處添加本地數據過濾器,並使用鞋子的最終用途作為過濾器。例如,我可能想知道所有關於冬季街頭鞋的描述中出現頻率最高的單字是什麼。 |
| |
難怪在街頭冬季鞋的描述中,「冬季」和「保暖」這兩個詞經常出現。 |
| |
另一方面,以越野跑鞋為例,你會發現這裡的重點有所不同。越野跑鞋不需要保暖,但需要透氣、輕盈且合腳。 |
| |
所以這些詞雲對於我們初步了解最初的問題非常有用,也就是描述不同鞋類特徵配置的是什麼。 |
| |
但我們並沒有就此止步。我們還想更進一步。 |
| |
更進一步,如果您已經準備好了所有數據,能否透過建模找到這種鞋子配置的原型? JMP 中提供了不同的建模選項,我們決定採用奇異值分解 (SVD)。 |
| |
SVD 正在對我們的文檔詞項矩陣進行主成分分析。 |
| |
那這意味著什麼呢?文件詞項矩陣包含了每個文件的詞項,因此,對於每雙鞋的描述, |
| |
統計每個術語出現的頻率。例如,對於第一條鞋子描述,它會統計“Gore-tex”這個詞出現的頻率,“舒適”這個詞出現的頻率,等等。你可以想像,這是一個非常龐大的矩陣。 |
| |
現在的想法是透過主成分分析來降低文件詞項矩陣的維度,從而更好地掌握數據。 |
| |
而且,能夠更好地將數據視覺化。 |
| |
基於尺寸的縮小,我們現在可以進行一些建模。那麼,我們感興趣的是哪一種建模呢?我們感興趣的是,什麼樣的建模能夠描述一雙鞋在特定最終用途下的特徵。 |
| |
為了得出這個結論,我們分析了鞋子描述中是否存在任何主題?如果存在主題,這些主題是否與某些最終用途相對應? |
| |
理想情況下,我們的數據中會包含九個主題,這九個主題恰好代表一個鞋類類別。這樣,每款鞋都會有一個原型鞋型或特徵配置。 |
| |
那麼,我們來看看如果我搜尋九個主題會發生什麼。我會點擊這裡進入主題分析,然後輸入數字9,因為我對九種不同的鞋類感興趣。 |
| |
這樣我就得到了一個主題列表,以及這些主題中頻繁出現的術語。例如,主題一就包括“鞋子”。 |
| |
它們的鞋子描述裡都出現了「超貼合」、「紡織布料」、「保暖」等等字眼。所以我的第一個感覺是,這些應該是日常鞋或是冬季休閒鞋。 |
| |
例如,第二個主題包含鞋子的描述,其中包括小屋、健行、多日等術語,所以這似乎是健行鞋。 |
| |
當然,身為統計學家,我不能只憑直覺判斷。我真正想知道的是,哪些鞋子類別屬於哪個主題。為此,我正在對鞋子類別進行簡單的分佈分析,並且我會在這裡添加本地數據篩選器,以便僅顯示特定類別。 |
| |
類別 |
| |
那些是… |
| |
只顯示已選取的鞋子。 |
| |
那是什麼意思?我該如何使用它? JMP 在這裡提供了主題得分圖,這些主題得分圖 |
| |
每個主題下,每條鞋子描述計1分。 |
| |
因此,鞋子描述的分數越高,這雙鞋就越能代表該特定主題。 |
| |
所以我的做法是,我只需選擇所有在第一個指標上得分高的鞋子,然後我會在裡面查看。 |
| |
這裡的直方圖顯示,這些是日常穿著的鞋子和冬季街頭鞋。所以基本上我的直覺是對的。那些紡織布料的、超合腳的鞋子,就是日常穿著的鞋子和冬季街頭鞋。 |
| |
第二個主題,我們預計是健行鞋。您會在這張直方圖中看到,這些都是健行鞋。 |
| |
現在你可以對所有主題都這樣做,我已經把這些內容記入了日誌。 |
| |
你會發現這樣做會遇到一些困難。例如,如果給每個主題一個或多個鞋類類別,就會出現兩個問題。 |
| |
第一個問題(如圖)是,某些鞋類,例如登山鞋,並非由一個主題來表示,而是由幾個主題來表示。 |
| |
你也會發現這些主題之間有重疊,例如,「crampon」(冰爪)這個字就出現在這兩個主題中。 |
| |
這意味著,我們這裡似乎有太多話題了。 |
| |
所以,理想情況下,每個鞋類類別都應該有一個主題,如果我們發現有些主題重疊,對應多個類別,那麼九個主題似乎就太多了。 |
| |
但這當然還有另一個問題,所以如果登山鞋對應多個主題,那麼必然存在一些不太容易識別的主題。 |
| |
例如,請看第五個主題。這裡展示的是最具代表性的鞋款。你會看到一個龐大的系列。 |
| |
有越野跑鞋、公路跑鞋、休閒跑鞋等等。這些類別之間大多存在重疊,界限並不明。那麼,試想一下,越野跑鞋和公路跑鞋究竟有什麼差別呢? |
| |
或者,接下來,越野跑和健行有什麼區別? |
| |
這些鞋子之間存在一些重疊之處,如果有這些重疊之處,你就無法清楚地確定該鞋類中某一特定特徵的配置。 |
| |
所以這也是非常有價值的學習內容。當然,這也包括管理你擁有的不同層壓板組合。你想知道,我是否需要為特定的最終用途準備特定的層壓板,還是它與我已有的其他層壓板大同小異? |
| |
所以我們最終的做法是,我們希望最終的主題集合中沒有任何一個主題對應多個類別,而這是我們手動完成的。因此,我們分析了不同數量的主題,最終確定了五個。 |
| |
你會發現,這五個主題對應著一定數量的類別,但我們也會發現,並非所有的鞋類類別都能用它們來表示。 |
| |
所以我們總結了兩點經驗。第一點是,我們已經有一些鞋子描述的原型了。 |
| |
鞋類分類。另一方面,所有未在此提及的鞋類分類可能差異不大,或者可能不具備這種單一的配置。 |
| |
在鞋子的描述中。 |
| |
這只是文字瀏覽器提供的眾多選項之一。它還有其他選項,但我們重點關注了這一個,而且效果相當不錯。 |
| |
至此,我想離開文字探索器,並簡要介紹您還可以使用主題文檔術語矩陣做些什麼。 |
| |
所以,這裡我使用的是和之前一樣的資料集,但我已經匯出了文件詞項矩陣。因此,您可以看到很多新列,分別顯示了每個詞項對應的資訊。 |
| |
該術語在特定鞋款描述中出現的頻率。 |
| |
我們嘗試了不同的版本,例如用文檔詞項矩陣表示詞頻;用一個矩陣只表示詞項是否被包含;等等。最後我們採用了現在這個版本。 |
| |
利用 JMP Pro 的功能,我們創建了一個驗證列,將資料集拆分為訓練資料、驗證資料和測試資料。訓練資料和驗證資料用於訓練我們的預測模型,測試資料用於測試模型。 |
| |
那麼,當我們談到預測建模時,我們的目標是什麼?我們之前所做的是一種無監督技術,因為 |
| |
我們之前只是搜尋了一些主題,然後與鞋子的類別進行了比較。現在我們想更主動一些,所以我們有了鞋子的描述,能否直接預測出鞋子的類別呢? |
| |
我們嘗試了 JMP 15 Pro 提供的各種預測建模技術,最後選擇了自助森林模型。在這裡,我只想向您展示結果的大致樣子以及我們可以利用這些結果做什麼。 |
| |
因此,您將在測試資料集的混淆矩陣中看到結果,類別是什麼,具體的鞋子描述是什麼,以及我使用 bootstrap forest 預測的結果是什麼? |
| |
有趣的是,你會發現結果和之前幾乎一樣。因此,某些類別可以與其他類別明顯區分開來。 |
| |
有些鞋款已經具備獨特的功能配置,有些則沒有。例如,看看公路跑鞋就知道了。 |
| |
我們在第一次分析中已經發現,這些鞋款並沒有明確的定義。而且我們在這裡也會看到,我預測很多鞋子雖然被列為公路跑鞋,但實際上卻是其他類型的鞋子。 |
| |
這意味著這證實了我們先前的發現。我們看到,使用無監督方法能夠很好地描述的鞋類類別,在這裡也同樣能夠很好地描述;而那些區分度不高的類別,在這裡也依然區分度不高。 |
| |
所以這很有意思,而且現在你可以利用這個分析做很多其他的事情。例如,你可以: |
| |
分析一下,當我想區分某些鞋款時,最重要的問題是什麼?也就是說,在區分鞋類類別時,哪些術語的貢獻最大? |
| |
或者,您還可以使用 ROC 曲線進一步探索哪些鞋類類別可以進行非常明顯的區分,哪些類別不能。 |
| |
最後,您也可以使用此模型進行預測。因此,您可以在此輸入某些特徵配置或鞋子描述。 |
| |
然後預測該描述屬於特定鞋類類別的機率。例如,在本例中,我們會預測這雙鞋可能是公路跑鞋。 |
| |
由於時間有限,我無法詳述細節,但想簡單總結一下。那麼,我們的主要發現是什麼?主要發現是: |
| |
文字瀏覽器是一個非常強大的工具,它非常直觀易用,你可以用它快速從非結構化文字資料中提取資訊。 |
| |
它們之間的差異在哪裡,又有哪些相同之處?這些鞋子需要具備哪些特質?但不知何故,研究結果證實了我們的預期。 |
| |
而這項確認,我們可以使用無監督技術或有監督技術來實現,因此,我們將主題分析與這裡的 SVD 和預測模型以及 bootstrap 森林進行了比較,其他方法可能也能取得類似的效果。 |
| |
最後,我要感謝提出這個問題的團隊(此處原文缺失資訊)。他們收集並清理了所有數據,並就此展開了精彩的討論。 |
| |
不同技巧的意義或荒謬。如果沒有它們,你現在就不會聽到那場演講。此外, |
| |
我要感謝我以前在多特蒙德工業大學的同事 Jonas,他曾就文本分析方面向我提供諮詢。 |
| |
最後,感謝您的關注,我很樂意回答任何問題,無論是透過電子郵件還是在 JMP 用戶社群。請隨時給我留言。 |