:::

Apache Solr:簡單建立全文搜尋引擎 / Apache Solr: Build a Fulltext Search Engine by Yourself

Apache Solr:簡單建立全文搜尋引擎 / Apache Solr: Build a Fulltext Search Engine by Yourself

image

這是我在2015年政大圖檔所網路資訊檢索研究課程中所講的「Apache Solr全文搜尋引擎」。這份投影片教大家如何從無到有建立搜尋引擎。跟單純的關聯式資料庫(RMDB)不同,全文搜尋引擎是以XML檔案設定文件的欄位,並可提供指定欄位、層面等簡單的搜尋查詢條件,還可以進一步全文搜尋引擎特有的斷詞器、停用字、同義字、大小寫、詞幹切截等過濾器與檢索權重排序的設定。這份投影片附帶一份完整的Apache Solr環境,主要是為了Windows環境佈置。其中有個步驟需要將匯入資料的試算表檔案轉換成適合Solr的格式,我發展了一個試算表轉換成Solr XML格式小工具,以便我們匯入資料到Solr中。

(more...)

如何分析偏好排序問卷? / How to Analyze Ranking Scale Results?

布丁布丁吃布丁

如何分析偏好排序問卷? / How to Analyze Ranking Scale Results?

image

(圖片來源:ROPER)

對圖書館、系統開發與任何提供服務的相關研究來說,研究者會很想知道使用者到底注重或期待的是什麼功能。舉例來說,系統預計開發的六個功能中,請使用者由最期待到最不期待的順序依序排序;圖書館提供的七項服務中,請讀者由最重要到最不重要的順序依序排序。蒐集完這個資料之後,接下來要怎麼分析好呢?大部分的工具僅止於敘述統計,例如平均數計算次數分配表。但其實應該進一步使用Friedman檢定與事後多重比較Bonferroni校正,或是列聯表分析,它們都能在排除隨機性之後找出更令人信服的結果順序。這篇以冰淇淋口味偏好兩種不同調查結果為例,說明排序問卷在SPSS中的分析方法。

(more...)

多組資料的平均數是否有差異?SPSS的單因子變異數分析 / One-way ANOVA in SPSS

布丁布丁吃布丁

多組資料的平均數是否有差異?SPSS的單因子變異數分析 / One-way ANOVA in SPSS

image

如果要比較兩組資料的平均數有沒有差異,可以使用獨立樣本t檢定。但如果是三組以上的資料,那就得要用單因子變異數分析(one-way ANOVA)。雖然該方法名稱中為「變異數」,但實質上比較的卻是平均數,這點很容易讓人混淆。網路上有許多SPSS單因子變異數的教學,但是卻很少搭配事後多重比較一起操作的例子。所以我參考邱皓政老師的「統計原理與分析技術:SPSS中文視窗版操作實務詳析」,在這裡將變異數分析的操作方法整理一下,也連帶介紹如何在SPSS中匯入CSV格式的資料,供大家參考。

(more...)

自動決定最佳化分群數量:X-means / Determin the Optimal Number of Clusters: X-means

自動決定最佳化分群數量:X-means / Determin the Optimal Number of Clusters: X-means

image

能夠自動決定分群數量的演算法,除了層疊K平均分群法之外,Weka裡面還有另一個分群法也能做到類似的目的,那就是X-means。X-means為每個分群結果計算貝氏資訊準則BIC Score,以此決定是否要將資料分成更多群。跟層疊K平均分群法一樣,它可以讓使用者選定分群數量的可能範圍。然而實際使用幾次後,我發現X-means的分群數量偏少,而且原理也不如層疊K平均分群法使用的Calinski-Harabasz指標(CH指標)容易解釋。因此比起X-means,我個人還是比較推薦使用層疊K平均分群法。本投影片的內容參考了X-means原論文[x-means] 1.x-means简介

(more...)

自動決定最佳化分群數量:層疊K平均分群法 / Determin the Optimal Number of Clusters: Cascade K-means

自動決定最佳化分群數量:層疊K平均分群法 / Determin the Optimal Number of Clusters: Cascade K-means

image

在資料探勘課程常教的K平均法雖然好用,但它最大的問題在於,到底該如何決定分群數量K呢?幸好我們還有其他的分群演算法可以選擇。Weka中另一個分群演算法層疊K平均分群法(Cascade K-means)採用建立大量不同分群數量的做法,評估每一次分群結果的Calinski-Harabasz指標(CH指標),找出組內距離最短、組間距離最長的最佳分群數量。我在資料聚類:分群分群與分類的整合應用:無監督分類器都有使用層疊K平均分群法來自動決定分群數量,這篇就讓我們在Weka中使用層疊K平均分群法來進行分群,並使用Weka分群結果分析器來試著解釋分群結果吧。

(more...)

行為分析之對數線性模式 / Log-Linear Sequential Analysis

行為分析之對數線性模式 / Log-Linear Sequential Analysis

image

這是繼行為分析之時間序列分析之後,對於分析超過二序列之上更長序列的分析方法對數線性模式(Log-linear model)的介紹。一開始是基於Bakeman與Quera在書中介紹的對數線性模式序列分析(log-linear sequential analysis),為了分析方便,我後面介紹的是使用SPSS實作的對數線性模式分析。但是我對於這個分析方法抱有高度疑惑,各書本對於對數線性模式分析方法不盡相同,而報表解讀也有許多漏洞。這一份對數線性模式分析的方法僅供記錄,並不建議真的這樣使用。

(more...)

時間序列分析與預測 / Time Series Analysis and Prediction

布丁布丁吃布丁

時間序列分析與預測 / Time Series Analysis and Prediction

image

這是伴隨在行為分析之時間序列分析的報告中,延伸細談時間序列分析的部分。投影片的內容是參考了林惠玲、陳正倉老師所著的「應用統計學」以及其他時間序列分析的相關書籍綜合而成。大部分時間序列分析的介紹仍是環繞著ARIMA技術的模型,後來我用Weka實作的多變項時間序列預測則採用了機器學習的另類做法。

(more...)

行為分析之時間序列分析 / Time Sequential Behavior Analysis

行為分析之時間序列分析 / Time Sequential Behavior Analysis

image

這是閱讀Bakeman兩本書中行為序列分析與時間相關的兩個章節「9. Analyzing time sequences」跟「11. Time-window and log-linear sequential analysis」的簡報內容。Bakeman將事件編碼的類別資料轉換成比率數字的連續變項,再結合了時間序列分析(Time-series analysis)技術進行處理。在另外一本書則是介紹高階列聯表分析技術線性對數模型(Log-Linear Analysis),可以分析超越雙事件到N事件的序列檢定。

(more...)

揭露文字資料的量化數值!文字探勘分析器 / A Text Analyzer for Text Mining

布丁布丁吃布丁

揭露文字資料的量化數值!文字探勘分析器 / A Text Analyzer for Text Mining

image

這是我為了文字探勘所做的小工具。一般來說文字資料是一種非結構的質性資料,但其實還是可以透過一些簡單的計算來得知它的量化數值,這樣就能讓不同的文字資料之間的比較有了客觀的基準。這個文字探勘分析器提供了基本的敘述統計指標計算功能,包括文字長度、不同字詞的數量、文字變化程度的熵(entropy)跟辛普森指數(Simposon's Index),還有以句子、對話句為單位的分析,最後還能將N字詞的頻率分析結果繪製成文字雲

(more...)

行為順序預測:動態貝氏網路 / Behavior Prediction: Dynamic Bayesian Network

行為順序預測:動態貝氏網路 / Behavior Prediction: Dynamic Bayesian Network

image

這是巨量資料探勘與統計應用課程行為順序檢定:滯後序列分析分類與預測:貝氏網路的進階應用。滯後序列分析只能分析前後兩個行為之間的轉變,如果我們想要預測更多步之後的行為,那我們就需要藉助貝氏網路的預測和推理能力。我們可以決定要為幾步內的行為進行建模,如果是兩步之間的模型,稱之為「二時段貝氏網路」(Two-Timeslice Bayesian Network,2TBN)。而這篇文章將以「四時段貝氏網路」來為幼兒平行遊戲事件序列資料,建立能夠預測和解釋幼兒行為的貝氏網路模型。

(more...)

巨量資料探勘與統計應用課程目錄 / Applications of Big Data and Statistics: Table of Contents

巨量資料探勘與統計應用課程目錄 / Applications of Big Data and Statistics: Table of Contents

image

這是巨量資料探勘與統計應用課程的投影片「巨量資料探勘與統計應用課程目錄」,也包含了整個課程一開始的導論。本課程的主要核心技術是「資料分析」,而資料分析則含括了「資料探勘」與「統計」這兩種領域,並且適用於處理龐大的「巨量資料」,因此本課程就命名為「巨量資料探勘與統計應用」。為了整理到本blog,我將本系列課程調整為11個單元,由淺入深分成「課程導論與資料處理」、「資料敘述級」、「資料檢定級」、「資料預測級」四大階段,每個單元內都包含該單元要處理的問題與適用資料類型、核心技術。由於當初是以大學生為教學對象,因此本系列課程主要著重在訓練同學擁有實作的即戰力,每個單元都是以二到四個實作學習單組成,輔以少量的公式解說。

這份投影片是巨量資料探勘與統計應用課程的整體介紹,文章也會列出每一個單元的連結。最後我會談談我對這門課程的看法。

(more...)

超簡單!文本機器分類入門 / Text Classification with Weka

超簡單!文本機器分類入門 / Text Classification with Weka

image

這篇「超簡單!文本機器分類入門」是我在2017年3月於政大圖檔所資料探勘課程中的演講內容,之後演化成後來我在巨量資料探勘與統計應用課程中「非結構化資料分析:文本分類」單元的內容。如果想要看比較完整的文本分類介紹,請看「非結構化資料分析:文本分類」這篇。不過想要看獨立的文本分類課程的話,那也可以從這篇開始看起喔。

(more...)

非結構化資料分析:文本分類 / Unstructured Text Analytics: Text Classification

非結構化資料分析:文本分類 / Unstructured Text Analytics: Text Classification

image

這是巨量資料探勘與統計應用課程的投影片「非結構化資料分析:文本分類」。本單元是屬於系列課程中的「資料預測級」中最後一個單元。處理資料類型是為非結構化的資料進行分類,也就是使用類別資料。這邊使用了Jieba斷詞來作文本語義分析,然後使用樸素貝氏多項式文本分類器(NaiveBayesMultinomialText)來為文本進行分類,最後還用特徵篩選(Select attributes)找出關鍵字。到底圖書館員分類編目的核心技能會不會被這篇所講的自動化文本分類機器所取代呢?看完這個單元你就可以知道結果了。本單元使用了二個我自製的工具來搭配Weka實作文本分類,單元內包含了四份實作學習單跟一份測驗,供同學邊看邊練習。這個單元包含了四個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

貝氏網路的結果預測與原因推理:基於專家知識建構的網路結構 / Prediction and Inference with Bayesian Networks Model: Based on Expert Knowledge

貝氏網路的結果預測與原因推理:基於專家知識建構的網路結構 / Prediction and Inference with Bayesian Networks Model: Based on Expert Knowledge

image

前面我將貝氏網路的分類與預測投影片放到blog上,這一篇則是用圖文解說的方式來說明如何在Weka中使用貝氏網路。貝氏網路是一種機器學習預測的方法,其做法大概跟之前所介紹的用Weka分類模型來預測未知案例差不多。貝氏網路分類器本身的正確率通常不高,但是它能夠結合專家知識或領域知識(domain/prior knowledge)來建立預測模型,使得預測結果比較符合人類的思維。另一方面,貝氏網路也可以根據任何已知結果來推理發生的原因,讓我們更容易解釋最後結果。跟類神經網路、支持向量機難以解釋的黑箱演算法相比,貝氏網路這種白箱(white-box)演算法雖然正確率較差,但卻更容易用在任何研究中,協助我們推測研究結果、解釋造成原因。

(more...)

分群與分類的整合應用:無監督分類器 / Building an Unsupervised Classification: Integrating Cluster and Classification in Weka

布丁布丁吃布丁

分群與分類的整合應用:無監督分類器 / Building an Unsupervised Classification: Integrating Cluster and Classification in Weka

image

最近有讀者問到要怎麼在建立的分群結果之後,對後面新增的資料再依照前面的規則新增分群標籤。這就讓我想起來資料探勘課本裡面常常提到的一個機器學習議題:無監督式的監督學習 (Unsupervised Supervised Learning),或是成為不需訓練目標的分類法 (Classification wihtout labels),這篇就叫它作無監督分類器(Unsupervised Classification)。這個做法大多都是將分群結果作為分類的目標標籤,再以此建立分類模型。這種做法聽起來難度挺高的,不過實際在Weka中,我們只要動點巧思,不用寫任何程式,就可以實作這個高級分類技巧。這篇就來介紹一下如何實作無需監督的分類器吧。

(more...)

參加國際會議經驗分享 / How to Participate in a Conference?

布丁布丁吃布丁

參加國際會議經驗分享 / How to Participate in a Conference?

image

我在上週受邀去ASIS&T臺北分會所舉辦的「行動裝置資料與使用者研究工作坊」的「學生參與國際活動之經驗分享」分享參與國際會議的經驗。現在學術圈大多鼓勵學者參加Call for Papers類型,以全文(full paper)發表並口頭報告(oral),因此我的重點也放在如何參與這種國際研討會上。我就參與IMLF 2014IFLA WLIC 2015兩場的經驗,將整個流程歸納成 1. 投稿、2. 行程安排、3. 參與會議、4. 結案報告 的四大階段,而投影片內更加著重說明投稿時選擇研討會、投稿計劃書、摘要與全文、準備投影片和講稿的做法。在上週工作坊中因時間不夠,沒有機會跟大家好好說明,我還是在這裡放上投影片,希望可以嘉惠有意參與國際研討會的莘莘學子。

(more...)

分類與預測:貝氏網路 / Classification and Prediction: BayesNet

分類與預測:貝氏網路 / Classification and Prediction: BayesNet

image

這是巨量資料探勘與統計應用課程的投影片「分類與預測:貝氏網路」。本單元是屬於系列課程中「資料預測級」的第一個單元,處理資料類型是從「類別」來預測「類別」類型的資料。貝式網路(BayesNet)是一種能夠表示變項間因果關係的機率模型,原理簡單、計算速度快,不僅可以用來預測結果,還能推理可能的原因。貝式網路是早期專家決策支持系統最常使用的模型,例如可以用來協助醫生找尋病因。本單元先用簡單「吸菸可能造成生病」的例子來說明貝式網路的運作方式,再來使用Weka來建立貝式網路結構、準備訓練集跟測試集、顯示貝式網路模型以及預測結果。本單元使用了四個我自製的工具來搭配Weka實作貝式網路預測,單元內包含了三個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

資料預測級導論: 分類的處理流程 / Introduction to Data Prediction: Procedure of Classification

資料預測級導論: 分類的處理流程 / Introduction to Data Prediction: Procedure of Classification

image

這是巨量資料探勘與統計應用課程的投影片「資料預測級導論: 分類的處理流程」。本單元是屬於系列課程中的「資料預測級」的導論,這份投影片是為了銜接前面的「資料檢定級」與後面的概念,資料預測級的概念上比較接近現在「巨量資料(大數據)」或「人工智慧」的範疇,都是為了獲得一個「答案」,特別適用於「類別」類型的答案,這種做法稱之為「分類」。分類的步驟大致上分成 1. 準備資料、2. 建立模型、3. 評估模型、4. 預測未知、5. 修正模型。介紹最後還附上了一個以貝式網路建立的模型,可以讓同學先體驗用有沒有吸菸預測是否可能生病的機率。

(more...)

行為順序檢定:滯後序列分析 / Behavior Analysis: Lag Sequential Analysis

行為順序檢定:滯後序列分析 / Behavior Analysis: Lag Sequential Analysis

image

這是巨量資料探勘與統計應用課程的投影片「行為順序檢定:序列分析」。本單元是屬於系列課程中的「資料檢定級」的最後一個單元,處理資料類型也是在行為的「類別」類型資料,使用的分析技術就是以前我常常提到的滯後序列探勘(lag sequential analysis)。滯後序列分析是延伸前一單元列聯表的檢定方式,但是不像卡方統計量是用於檢定整體列聯表,它使用Allison與Liker(1982)的調整後殘差計算方式來做細格檢定。雖然資料類型都以列聯表呈現,不過計算方法可是差很多的喔。跟以前我介紹滯後序列分析的內容相比,這次不僅採用比較嚴謹的Allison與Liker的計算方法,還加入了相關係數Yule'Q的計算,並直接用jsPlumb畫出了事件轉移圖。本單元使用我所開發的滯後序列分析計算器來作計算,包含兩個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

類別變項的相關檢定:卡方獨立性檢定 / Correlations with Categorical Variables: Chi-Square Test of Independence

類別變項的相關檢定:卡方獨立性檢定 / Correlations with Categorical Variables: Chi-Square Test of Independence

image

這是巨量資料探勘與統計應用課程的投影片「類別變項的相關檢定:卡方獨立性檢定」。本單元是屬於系列課程中的「資料檢定級」中的第三個單元,處理資料類型是「類別」類型的資料,可以檢測出兩兩類別資料之間的關係。本單元要講的分析技術是推論統計的卡方獨立性檢定(Chi-Square Test of Independence),相當適合質性研究所蒐集的類別資料或行為分析。本單元的分析工具是我額外開發的「卡方獨立性檢定計算器」,在投影片裡面還談到了隱含在卡方檢定之後的陷阱:辛普森詭論(Simpson's paradox)。這個單元包含了四個實作學習單,供同學邊看邊練習。

(more...)

連續變項的相關檢定:皮爾森積差相關分析 / Bivariate Correlation Analysis: Pearson Correlation Coefficient

連續變項的相關檢定:皮爾森積差相關分析 / Bivariate Correlation Analysis: Pearson Correlation Coefficient

image

這是巨量資料探勘與統計應用課程的投影片「連續變項的相關檢定:皮爾森積差相關分析」。本單元是屬於系列課程中的「資料檢定級」的第二個單元,處理資料類型是分析兩兩「連續」資料之間的關係。本單元將會教同學推論統計另外一個很常見的分析技術:皮爾森積差相關分析,它可以用來檢測兩個連續變項之間的相關程度與相關的方向。本單元使用我撰寫的皮爾森積差相關分析計算器,並不需要同學用手算。這個單元包含了二個實作學習單跟一份測驗,供同學邊看邊練習。

(more...)

連續變項的差異檢定:獨立樣本t檢定 / Testing Differences Between Means: Independent t-test

連續變項的差異檢定:獨立樣本t檢定 / Testing Differences Between Means: Independent t-test

image

這是巨量資料探勘與統計應用課程的投影片「連續變項的差異檢定:獨立樣本t檢定」。本單元是屬於系列課程中的「資料檢定級」的第一個單元,處理資料類型是從「類別」分類的「連續」資料。本單元主要教的是推論統計最常見的分析技術:獨立樣本t檢定,可以用來檢測兩組不同樣本的平均值是否有顯著差異。t檢定是由健力士的統計學家William Sealy Gosset博士發表的經典分析方法。在喝健力士啤酒的時候,可別忘了統計的t檢定喔。本單元使用了R-Web跟我撰寫的獨立樣本t檢定計算器,並不需要同學用手算。這個單元包含了二個實作學習單,供同學邊看邊練習。

(more...)