:::

Weka的BayesNet分類器操作說明 / A Tutorial on BayesNet Classifier with WEKA

布丁布丁吃布丁

Weka的BayesNet分類器操作說明 / A Tutorial on BayesNet Classifier with WEKA

Title-Bird-Header

這是資料探勘工具Weka中以BayesNet來做分類的操作教學。BayesNet實作了以條件機率為原理的貝氏分類法,其特色在於可以繪製出條件機率的樹狀圖形。

This is a tutorial on BayesNet Classifier by using data mining tool: WEKA. BayesNet is based on Bayes Network learning algorithms and provides network structure with conditional probability distributions.


Weka下載與安裝 / Weka Download And Install

Weka是紐西蘭懷卡托大學機器學習實驗室(Machine Learning Group at the University of Waikato)發展的資料探勘工具,並以GUN授權發佈,是資料探勘領域中重要的自由軟體。Weka實作了許多發表於學術論文上的重要演算法。不僅適合作為學生學習資料探勘的好工具,也是進行演算法改良研究的平臺。

2013年該實驗室推出了5週的線上教學課程MOOC「Data Mining with Weka」,有志學習資料探勘的同學可以試著進來上課看看。

安裝Weka的時候,要特別注意的是記得安裝Java Run Environment (JRE),不然Weka無法開啟喔。

由於我之前就對於貝氏分類法感到很有興趣,雖然他在分類器中的成效一直不是很突出,但是可擴增性與簡易實作的理論等特色,讓我覺得貝氏分類法應該還有很多可以應用的潛力。這次剛好找到了李明昌老師的教學投影片,我也就來練習操作看看BayesNet這個貝氏分類法的分類器,並在此跟大家分享。

STEP 1. 開啟Explorer / Open “Explorer”

2014-10-28_144712

開啟Weka的時候,先選擇使用Explorer吧。

STEP 2. 開啟檔案 / Open file

2014-10-28_144728 - Copy

進入Explorer之後,我們這次要用的檔案是範例檔案中的iris.arff。檔案位置在[Weka]\data\iris.arff。

2014-10-28_144817

image

STEP 3. 開啟分類器 / Open ”Classify”

image

開啟檔案之後,接下來會回到Explorer上。接下來我們要開啟Classify分類器。

2014-10-28_144919

在分類器上按下Choose選擇。

2014-10-28_144950

選擇分類法中的 weka/classifiers/bayes/BayesNet

這樣子就可以準備來開始跑囉。

STEP 4. 預設的BayesNet探勘結果 / BayesNet Mining Result with Default Options

image

測試方式用預設的交互驗證(Cross-validation) 10層,然後分類的目標是 (Nom) play,按下「Start」。

最後結果看可以看到其中一行:

Correctly Classified Instances 139 92.6667%

這意思是,預設的BayesNet分類法下來,正確率只有92%左右。

image

我們在結果集上按下右鍵,選擇「Visualize graph」。

image

接著會跳出BayesNet建置的樹,每個節點都是造成不同種類的條件機率。其中我們在「sepallength」上面按下左鍵。

image

左邊直欄class底下有Iris-setosa / Irisversicolor / Iris-virginica,第一欄則是'(-inf-5.55]'、'(5.55-6.15]'、'(6.15-inf)'。意思是說:

  • 如果是品種setosa的話:花萼長度小於5.5的機率為0.922;長度介於5.55-6.15的機率為0.068;長度大於6.15的機率為0.01。
  • 如果是品種versicolor的話:花萼長度小於5.5的機率為0.223;長度介於5.55-6.15的機率為0.456;長度大於6.15的機率為0.32。
  • 如果是品種virginic的話:花萼長度小於5.5的機率為0.029;長度介於5.55-6.15的機率為0.204;長度大於6.15的機率為0.767。

因此這就是貝氏分類法其中一個條件下的模型。

除了基本參數之外,我們可以還調整BayesNet的參數設定讓正確率再提高一些。


BayesNet的參數設定 / BayesNet’s Properties

2014-10-28_152519

在BayesNet那一條欄位上按下右鍵,選擇「Show properties」。

2014-10-28_165428

接下來我們來看看關於BayesNet的介紹:

貝氏網路學習法(Bayes Network learning)使用了各種搜尋演算法與品質測量法。

Weka的文件並不完全,底下的設定光看名字也看不懂。細節都是要靠More裡面的介紹。讓我們按下More繼續看看。

介紹 / Information
  • 名稱:weka.classifiers.bayes.BayesNet
  • 概要:貝氏網路學習法使用了各種搜尋演算法與品質測量法。基於貝氏網路分類器。提供了資料結構(網路結構、條件機率分佈等等)以及使用貝氏網路學習演算法常見的工具,例如K2或B。更多細節請看http://www.cs.waikato.ac.nz/~remco/weka.pdf (可是找不到資料啦)。
能力 / Capabilities
  • 資料類型 (Class):名義資料(Nominal Class)、二元資料(是否)、遺失值的資料(Missing class values)。
  • 屬性(Attributes):二元屬性、數值屬性、空的名義屬性、遺失值(Missing values)、名義屬性、單一元素屬性(Unary attribute,什麼意思呢?)。
  • 其他說明:最小的案例編號為0。
參數 / Options
  • BIFFile:可設定一個以BIF XML格式建立的檔案名稱。可用於比較從BIF檔案中的貝氏網路結果、以及使用貝氏網路學習法學習結果的差別。統計計算為o.a.,遺失值(the number of missing)以及額外弧度(extra arcs,我真的看不懂這是什麼)
  • debug:設定true,分類器會顯示額外的資訊,以供偵錯。
  • estimator (評價器):選擇評價器演算法來找尋貝氏網路條件機率表,預設值是SimpleEstimator。
  • searchAlgorithm (搜尋演算法):選擇搜尋網路架構的方法,預設值是K2。
  • useADTree (使用AD樹):使用AD樹一般而言可以降低學習時間。然而,由於AD樹佔用大量記憶體
    ,這可能會造成記憶體不足的問題。關閉這個選項可能會讓結構學習演算法變慢,但消耗記憶體較少。預設會使用AD樹。必須要注意的是,這裡的AD樹是指一種資料架構,用於增加計數的速度,不要跟同名分類器搞混了。

五個參數中的三個參數還算好理解,其中estimator (評價器)跟searchAlgorithm (搜尋演算法)就有很多選擇。讓我們一一來看一下有那些評價器跟搜尋演算法吧。

參數:評價器 / Option: estimator

可選用的評價器共有4種。首先我們先看一下預設使用的SimpleEstimator,然後再看看其他評價器。但是除了SimpleEstimator可以應用於多層條件機率的評價之外,其他評價器限制都很大。因此最後我還是用SimpleEstimator。

簡易評價器 / SimpleEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.SimpleEstimator
  • 概述:SimpleEstimator是用於評估貝氏網路中學到的條件機率表格。評估機率是直接來自於資料本身。

參數只有一個:

  • alpha:Alpha是用來評估機率表格,可以用於解釋每個數值的起始值。預設值是0.5。
貝氏網路評價器 / BayesNetEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.BayesNetEstimator
  • 概述:BayesNetEstimator是一種用於評估貝氏網路中學到的條件機率表格的基本用法。

參數只有alpha一個,解釋同SimpleEstimator。

BMA評價器 / BMAEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.BMAEstimator
  • 概述:BMAEstimator是用貝氏模型平均法(Bayes Model Averaging, BMA)來評估貝氏網路中學到的條件機率表格。

參數除了alpha之外,還有一個useK2Prioir,但是More裡面沒有說明。

多項式BMA評價器 / MultiNomialBMAEstimator
  • 名稱:weka.classifiers.bayes.net.estimate.MultiNomialBMAEstimator
  • 概述:多項式的BMA Estimator。

參數除了alpha之外,還有一個useK2Prioir,但是More裡面沒有說明。

參數:搜尋演算法 / Option: searchAlgorithm

搜尋演算法很多,Weka提供了ci、fixed、global跟local這四種。預設使用的是local當中K2。我試著用不同的搜尋演算法來計算看看,赫然發現GeneticSearch的正確率挺高的。所以以下我介紹GeneticSearch這個搜尋演算法。

基因搜尋演算法 / GeneticSearch
  • 名稱:weka.classifiers.bayes.net.search.local.GeneticSearch
  • 概要:這個貝氏網路學習演算法使用了基因搜尋演算法來找尋良好的貝氏網路結構。基因搜尋是基於蒐集貝氏網路結構的族群(population),再以突變(mutate)與交配(get offspring)來運作。最後結果會產生貝氏網路結構。

基因演算法是傳說中只要有無限時間,就可以計算出最佳解法的超強演算法。這也是資料探勘必定會教的經典演算法。在此我就不介紹這麼多了,想要細節請看GA基因演算法介紹。

參數可多著了,共有9個:

  • descendantPopulationSize:設定每一代產生子孫族群(the population of descendants)的數量。
  • markovBlanketClassifier:預設為false,當設定為true的時候,每次學到一個網路結構時,馬可夫毯校正(Markov Blanket correction)就會用於網路結構上。這可以確保網路中的所有節點都屬於分類器節點的馬可夫毯的一部分。(抱歉,我知道馬可夫鏈的模型,但還真不知道這是如何運作的)
  • populationSize:設定每一代的網路結構族群的數量。
  • runs:設定基因演算法要運作的回數。
  • scoreType:分數類型決定如何測量網路結構的品質。可用的選項包括預設的Bayes、BDeu、Minimum Description Length (MDL)、Akaike Information Criterion (AIC)以及Entropy。
  • seed:亂數產生世代的初始值。設定seed可以允許實驗的可複製性(Setting the seed allows replicability of experiments. 我不會翻譯)。
  • useCrossOver:決定是否可以交配(cross-voer)。交配是網路結構以位元呈現後,再隨機挑選k個位元、保留其他位元來組合。交配或突變至少必須要使用其中一項。
  • useMutation:決定是否要使用突變(mutation)。突變將反轉網路結構的一個位元資料。突變或交配至少必須要使用其中一項。
  • useTournamentSelection:決定選擇族群的方法。當設為true的時候將會使用競賽選擇(tournament selection),亦即選擇其中最高的數值以及隨機兩個來進行。當設為false時只會選擇成效最好的網路結構。

STEP 6. 使用基因搜尋的探勘結果 / Mining Result with GeneticSearch

image

我換了基因搜尋演算法再來跑跑看,正確率提升至94%,比預設的K2還要高1.3%。

2014-10-28_221618

基因搜尋演算法是使用上面介紹的weka.classifiers.bayes.net.search.local.GeneticSearch。

image

其他參數都沒有調整。事實上我嘗試用了幾種不同的組合,但是結果都一樣。基因演算法的突變跟交配是隨機的,因此理論上每次跑的結果應該都不太一樣。不過我跑了幾次結果都差不多,可能是因為runs=10已經夠多的關係吧。

image

讓我們來看看結果模型。跟K2跑出來的結果差別非常大。我們在意的是class的機率,點左鍵來看看:

image

結果如上。以第一列為例子來解釋,如果花辦長度(petallength)小於2.45、花瓣寬度(petalwidth)小於0.8,屬於品種setosa的機率為0.981、versicolor的機率為0.01、virginica的機率為0.01。其他列的解釋則可以依此類推。

與其他分類器的比較 / Compare with Other Classifiers

不過我也跑了一下其他演算法。

image

J48的決策樹正確率為96%。以上是建樹結果。

lazy.IBk正確率為95.333%。

SVM的funcitions.MultilayerPerception則是97.333%。

大多數演算法都能夠輕鬆勝過BayesNet啊。

(more...)

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

布丁布丁吃布丁

誰把 /var/log/secure 清空了?是logrotate! / Who clean /var/log/secure? Is logrotate

ways-hackers-hack-your-website-e1371080108770

/var/log/secure是Linux中記錄登錄資訊的重要記錄檔,當懷疑有駭客登入伺服器時,我們可以檢查secure來看看有沒有異常登錄的資訊。但是如果啟用logrotate的話,secure會定期被清空。

In Linux, logrotate will clean /var/log/secure regularly. It may not hacker's trick.


我被駭客了嗎? / Have Server been hacked?

昨天因為被網路組警告伺服器有釣魚資訊,所以我就檢查了一下伺服器的權限問題。

一般來說,伺服器的登入資訊都會寫在 /var/log/secure 中 (詳細可以看鳥哥)。因為我懷疑可能伺服器帳號可能已經被猜透了,讓外部駭客直接登入了這臺伺服器,因此我急忙查看 /var/log/secure 檔案。可是讓我很驚訝的是:

2014-10-23_102847

secure跟其他secure.1到secure.4的檔案大小居然是0! 只有secure記錄這我這幾次登入的資訊,都是我本人的電腦無誤。

 

我接下來很緊張地查看root以及常用帳號的history,看一下之前該帳號的操作指令是否有異常。但是那裡面的動作也都是我個人的操作,沒有問題。

網路上也有人在問這個問題,到底是為什麼 /var/log/secure 被清空了呢?

logrotate的工作 / logrotate’s Job

當我找到cron排程工作的時候,我才發現問題在哪裡。

2014-10-23_104231

查看cron.daily的時候,赫然發現有個不太熟悉的logrotate套件。根據鳥哥的說明,logrotate是一種定期打包、清空登錄檔的工具。

image

我查了一下 /etc/logrotare.conf,發現logrotate的確也如設定檔地運作。因此 /var/log/secure 被清空,這可能是由logrotate做的事情。

雖然無法保證這不是駭客的入侵,但至少又更瞭解了Linux的系統運作。

(more...)

與病一起生活 / Live with Illness

布丁布丁吃布丁

2 Comments

與病一起生活 / Live with Illness

2014-10-21_194417

(圖片來源:麵包超人1227集(2))

最近我對於自己身上的疾病有了些不同的想法,就用這一篇跟大家聊聊。


生病的人生

我是一個平凡的人,雖然沒有四肢殘缺,但也不能說是健康完美。就像是每位平凡人一樣,我自己的身體也是有些毛病。對我來說,最令我困擾的,大概就是鼻子的毛病了。

我的鼻子很容易過敏——就跟大多數住在濕熱氣候的臺灣人一樣都會有的疾病。雖然說這不是什麼立即致死、無藥可醫的絕症,但也足夠讓我用一生去為它傷透腦筋。

過敏的症狀是會讓鼻子覺得很癢,而且不是外面癢,是鼻腔深處大概接近喉頭的地方在癢。這些地方基本上是無法靠手指抓得到,而且擤也只有一定程度的止癢。

因為鼻腔過敏癢個不停,接下來鼻子就會分泌透明的鼻涕來排除異物。很遺憾的是,這招只是徒勞無功,不管鼻涕怎麼擤,依然無法防止鼻子持續過敏。接著就是因為擤太多造成鼻腔摩擦出血,也就是流鼻血;或是鼻腔內部遭受細菌感染,鼻涕從透明轉黃轉綠,然後接下來因為鼻腔塞太多東西而造成鼻塞,鼻塞導致呼吸不流暢,缺乏足夠呼吸而氧氣不足人就會頭暈、難以集中注意力。加上鼻腔細菌感染的發炎擴散到喉嚨,也就是所謂的鼻涕倒流,這導致喉嚨開始發炎,然後演變成發燒。

這樣子的流程從鼻子開始癢到發燒,大概只需要一天的時間。
因為已經不知道體驗過多少回了,每次都用身體確確實實地記下這整個流程,讓我印象十分深刻。

 

許多人都把鼻子過敏視為是一種病。所謂的病,就是有辦法可以「治好」,讓我可以回到「正常人」的生活。因此以前大多時候,家人為了治好我鼻子過敏這個病,實在是傷透了腦筋。

治病

直到最近以前,家人都還在努力想辦法治好「鼻子過敏」這個病。

很小的時候,由於我鼻子過敏的症狀最明顯的就是鼻水直流,這看起來很像是感冒,所以我媽就會一直帶我去看醫生、吃感冒藥,然後在悶熱不通風的房子中給我加了厚重的衣服。結果鼻子過敏加上悶熱頭暈,到最後還真的變成感冒。

既然對症下藥只是治標不治本,那就得要靠吃中藥、營養品來養生、補身體,讓虛弱的身體變得強壯,鼻子應該就可以不藥而癒。可是吃到最後整個人都胖得像是氣球一樣,鼻子還是照樣過敏。

吃中藥、西藥、鍼灸什麼的,治的都是感冒,而不是鼻子過敏。後來才知道有三伏貼這一招,但是也沒機會去試過。

因為鼻子過敏這個症狀,居然在我到台北去唸書、住進學校宿舍之後,竟然不藥而癒了。

壁癌

雖然我在台北念書期間鼻子很健康,可是回到家之後,馬上又舊病復發。

重複好幾次之後,我們家才知道,造成我鼻子過敏、甚至是家人氣喘的兇手,是因為家裡的壁癌

我們家距離921地震的震央不遠,雖然房子在大地震下沒有太大的損傷,但是牆壁內的水管則是早已殘破不堪。

破裂的水管會導致水流往牆壁滲透,而累積在牆壁磚頭細縫間的水會造成房子的陰濕環境,進而在牆壁內部滋長黴菌。黴菌在累積到一定數量之後,會從牆壁內部向外冒出,於是牆壁會看起來到處都有凸起。更嚴重一點,黴菌會直接穿過牆壁的塗漆或壁貼,在牆壁上冒出頭來,這就是明顯且嚴重的壁癌。而與外界空氣接觸的黴菌會隨風飄散在室內,這就是造成家裡眾多呼吸道疾病的主要元兇之一。

DSC_0423

家人發現家裡有壁癌這個問題時,我仍在台北唸書。在媽媽極力的要求下,家裡開始了大幅度的整修。這個整修並不是外觀上的裝潢,而是為了揪出壁癌兇手的源頭。多虧爸爸強大的水電技能,他停止了牆壁裡面水管的水流,改以外接水管接水。牆壁與地板也全部打掉,把發霉以久的水泥與磚頭統統丟掉,然後再重上水泥與貼磁磚。最後還發現地下的排水溝居然有側漏,導致整個房子的地底就是一個大水窪,難怪一樓總是如此的濕冷。家人花了好大的力氣來重新建造排水溝的管線,總算是解決了這個難題。

這些工程雖然有聘一位師父,但是大多時候都是我爸在處理,而不肖孩兒如我也只能在抽空回家時幫他點忙,做些像是拿電鑽打掉牆壁或是搬搬水泥的事情。這些繁重且看起來永無止盡的事情還曾經造成家裡多次的爭執,好在現在總算是修整完成,重貼的磁磚與覆蓋在水溝上重做的地板也看起來相當賞心悅目,隔了好久總算是又回到了那個熟悉的家。

可惜的是,即使是如此,我的鼻子過敏仍然沒有康復。

難以根治的壁癌

這番辛苦的整修之後,家裡的確沒有以前那樣的濕冷。然而壁癌之所以會被稱之為壁癌,就是因為它難以根治。

即使水管外接了,牆壁不知為何還是會冒出壁癌。但是現在也沒有心力再打掉檢查。

對我來說這種感覺非常強烈。一踏入家門、呼吸家裡的空氣,鼻腔內部馬上就癢了起來。然後再待一陣子,癢的感覺就會逐漸深入鼻腔,完全無法阻止,癢到最後我常常會有種巴不得拿刀子把鼻子割掉的想法。接著在家裡睡一個晚上,已經可以預期明早過敏的淒慘程度了。

CIMG0829

(圖片來源:台灣製 N95防塵口罩  E520C)

之前曾經會在家裡戴口罩,來試圖阻止過敏源的入侵,可是袋普通口罩效果不大,戴個N95則是造成呼吸困難。

空氣濾清器兼除濕機在多年之前早就是家裡固定運作的家電,但成效依然有限。

由於回到家就會造成鼻子嚴重過敏,我大學時候甚至因此不太想回家,寧願待在台北的宿舍。

雖然家人花了很多心力把房子整個裝修,但依舊無法根治我鼻子過敏的問題,我一直覺得很對不起他們,也不知道該怎麼去面對這個令人絕望的鼻子過敏問題。

但是最近因為幾件事情,讓我重新思考對於鼻子過敏這個老毛病的觀點。

與疾病相處

我在當兵時與一位上士班長一起在辦公室工作。這位班長由於身體有些問題,無法執行太過勞動的勤務,所以大部分的時候都是在辦公室處理文書業務。

有一次我跟他聊到身體殘疾的問題時,他只是笑笑地說,雖然很令他困擾,但他的應對策略只有一個:

 

「跟疾病一起相處。」

 

那時候我不太懂,疾病不是敵人嗎?我們不是應該努力對抗疾病,讓自己成為一個健康的正常人嗎?為什麼要放棄掙扎,讓疾病持續對自己帶來困擾呢?於是我開始仔細觀察了班長的日常生活。

 

我所在的單位的主要任務大多都是勞力活,因此不能視為一個有效勞動力的班長,想必是無法獲得很高的評價。舉例來說,當時要求軍人必須進行的體能要求,班長就只能申請病故,體能成績一直是在底線。

儘管如此,班長仍然在辦公室中找到了他的一片天。在處理行政事務上,班長很有他的一套方法,讓許多業務都能夠默默地順利運作。雖然對一般在前線的士兵來說並不會發覺其中的差異,不過對同在一個辦公室工作的我來說,的確是有很多值得我學習的地方。

這就是班長所謂的「與疾病一起生活」嗎?

 

後來我開始觀察身邊的人,赫然發現,大家都是與疾病一起生活。儘管大家看起來都跟正常人沒甚麼兩樣,但是總是會有一兩個故疾在身上。有人眼睛不太好,不太能久看;有人胃不太好,一旦吃多肯定會消化不良;有人膝蓋受過傷,長短腳的症狀讓他常常走路跌倒。但是即使如此,大家還是能夠找尋其他方法,把身體故疾帶來的困擾降到最低。

bk0005182

(圖片來源:乙武洋匡 - 五體不滿足)

以往我以為「接受自己身上的不完美」這句話是給身體四肢有殘疾的人的話,但是現在想想,其實這種態度可以適用於我們任何人——因為這世上沒有完美的人,大家都是努力與疾病和平相處。

我在想,面對疾病這件事情,也許不是只有「對抗」這種方式。

疾病不是敵人?

很久以前在輕小說狼與辛香料上看到一個發人深省的橋段。

17 - 3 - Copy

為了進入教堂躲雨時不被人發現女主角隱藏在斗篷底下的狼耳朵,男主角以「她不想讓人看見自己臉上的灼傷。」為理由跟守衛解釋。

事後女主角笑著稱讚男主角的機靈,如果是她的話絕對想不到這個理由。

17 - 4 - Copy

她摸著尾巴,驕傲地說: 「如果臉上有灼傷,那也是咱的證明。

對她來說,灼傷並不是什麼令人羞恥的事情,反而是證明自己的一種手段。這個觀點讓我開始思考,所謂的疾病,真的是我們的敵人嗎?

 

然後我看了一部備受爭議的漫畫:醫界風雲(Say Hello to Black Jack)。其中一篇在講癌症的問題。

17 - 2 - Copy

第四外科的主任一開始就提出一個反面思維:「癌症,根本不是一種病。」跟以往的醫學故事相比,這是一個相當罕見的觀點。

故事一開始也就跟大部分醫學故事一樣,相信癌症可以對抗,必須要鼓起勇氣、以意志力進行療程。在外科當道的醫學故事中,外科的確可以治好很多外傷,可惜在對於治療癌症來說,這是完全不一樣的戰場。

醫界風雲對於一開始信心滿滿地接受癌症療程卻造成的嚴重副作用、醫生與病人對於無藥可醫的癌症所帶來的絕望與無力有著相當深刻的描述。但是令我意外的是,實習醫生主角在經歷了這一連串的悲慘過程之後,卻發現了癌症的另一個意義:

17 - 1 - Copy

「癌症是一種讓人面對死亡……在死亡之前,還有時間跟活下來的人告別的一種病……」

我非常驚訝。即使是所有人都厭惡的癌症,竟然也有它存在的意義。

這讓我不禁開始重新思考起,疾病,真的是我們的敵人嗎?

這不是科幻小說,人類並沒有能力完全地戰勝疾病。我們活著的是現實,我們能做的事情,除了對抗疾病之外,也許還有其他的選擇。

與疾病共處

由於待在家裡會讓自己鼻子過敏,因此以前我不太喜歡回家,寧願在外面亂晃,也不想待在家裡。

然而,我內心卻一直覺得,待在家裡跟家人一起生活,是一項重要且有意義的事情。特別是在外住宿多年之後,更是會覺得家人的確是我們應該珍惜的寶物。而從上面的描述也可以看到,我對於我家人一直是抱著欽佩的態度,我很喜歡我的家人。

即使如此,我的身體(特別是鼻子)可無法長時間待在家裡,面對這種心有餘力不足的情況,在我正式打算與鼻子過敏這個疾病共同相處之後,我有了不同的想法。

 

快過敏的時候,離開家裡就好了。

 

1411658392-1074147931_n

(圖片來源:365-255【食記】難得一見的OK便利商店霜淇淋)

因此,後來在家裡讓我覺得過敏症狀開始嚴重時,我會選擇稍微出去外面的便利商店坐坐,而不是戴口罩加吃藥。而睡覺時一整晚都待在家裡所累積的過敏原,也可以藉由一早出去外面公園做做運動,就可以舒緩不少過敏的症狀。

我可以因為過敏而暫時離開家裡,但我仍會回來與家人一同生活。

這就是我與疾病一同相處的方法。

後話: 行動部落格

21 - 1

附帶一提,這整篇跟之前的「作為博士班學長」都是用Evernote、以手機和平板在移動中,這次更是分了快十次左右來撰寫。

這種文章跟其他學術或技術性文章不同,不需要時常引用或參考其他資源,因此很適合利用零碎時間來撰寫。以往這種日記我都得花上三四個小時來寫,但是又有種匆促完成的遺憾。

以後的日記或感想我可能會更偏好使用Evernote來進行mobile blog,也許這會比待在電腦前面寫還要有效率的多吧。

(more...)

百年來的臺灣圖書館事業 / The Librarianship in Taiwan over the Past lOO Years

百年來的臺灣圖書館事業 / The Librarianship in Taiwan over the Past lOO Years

image

這是一份圖書資訊學研究趨勢的課堂筆記。臺灣圖資界大師王振鵠老師在本文中介紹了從日治時期至2006年左右的臺灣圖書館發展歷史。由於臺灣圖資界一向往英美西方看齊,這份文章剛好可以彌補一下學生對於本國發展歷程的知識。

This is a reading note of a course “圖書資訊學研究趨勢”. This article was written by the most important professor of Library and Information Science in Taiwan, Prof. 王, 振鵠. He described librarianship development in Taiwan from 1901. It’s a very good reading material for our LIS students to know the history of Taiwan librarianship.


書目資料 / Bibliography

王振鵠(2007)。百年來的臺灣圖書館事業。圖書與資訊學刊,63
上網日期:2014年9月18日,檢自:http://www.airitilibrary.com/Publication/alDetailedMesh?docid=10232125-200711-x-63-1-9-a

關鍵字 / Keywords

  • 臺灣圖書館歷史 Library history in Taiwan:本文將臺灣近代圖書館事業發展切割成日據時期(1895-1945)與光復時期(1945-2007)
  • 臺灣圖書館事業 Librarianship in Taiwan:本文歸納的圖書館事業發展包含九大面向,各別是(1) 圖書館法制、(2) 國家圖書館、(3) 專業學會組織、(4) 美援僑教計劃、(5) 圖書資訊學教育、 (6) 國家文化建置計劃、(7) 自動化與數位化、(8) 館際合作制度、(9) 圖書資訊學研究

摘要 / Abstract

  • 臺灣近代圖書館事業的發展,自 1901 年「私立臺灣文庫」創立起,已有 106 年的歷史,本研究將臺灣圖書館事業的發展過程分為日據時期和光復時期兩階段,陳述各階段主要發展歷史。
  • 其重要成就可歸納為:圖書館法制基礎的奠定、國家圖書館功能的展現、專業組織的成立、美援計劃的協助、圖書資訊學教育的興起、文化建設計畫的達成,以及自動化與合作化的發展等項,均屬圖書館界長期以來對社會的具體貢獻。

筆記下載 / Note Download

image


筆記全文 / Note Fulltext

請問臺灣圖書館事業光復前發跡的概況?
私立圖書館

臺灣圖書館的創設起始於 1901 年日籍人士坂內正六等及臺灣協會在臺北淡水館內創辦的「私立臺灣文庫」,但是在1907年因經費短缺而休館,由日後成立的臺灣總督府圖書館接管。

繼臺灣文庫之後,日籍人士石坂莊作於 1909年在基隆創立了「私立石坂文庫」。1924年移贈財團法人基隆公益社,該設社接手後於翌年1925年設立「基隆文庫」。1932年基隆市政府接管後更名為「基隆圖書館」。

「私立臺灣文庫」與「私立石板文庫」的興建係臺灣近代圖書館之發端,亦促使公立圖書館的產生。

公立圖書館

臺灣第一所公立圖書館是1914年臺灣總督府創立的「臺灣總督府圖書館」,是當時臺灣最具規模的圖書館。1923年,臺灣總督府頒佈「公私立圖書館規則」,規範圖書館之設置得收圖書閱覽費,鼓勵各地圖書館相繼成立。

1927年由圖書館從業人員組成的「臺灣圖書館協會」成立,並於1931年制訂每年元月11日後的一週作為全臺圖書館週、1933年決定每年4月2日為圖書館紀念日。

至1943年臺灣光復前夕,共設有公共圖書館93所,主要典藏日文書刊。而大專及高等學校均設有圖書館,以臺北帝國大學附屬圖書館藏書最豐富。臺北帝大光復後更名為國立臺灣大學,至今仍典藏了許多臺灣重要的研究資源。

請問臺灣圖書館事業於光復後的發展概況?

1945年臺灣光復後,圖書館事業的發展過程可以分成三階段。

重建階段(1945~1952)

  1. 光復初始設置臺灣省政長官公署接管政務,1947年臺灣省政府,由教育廳主管圖書館業務。公共圖書館除了隸屬改制之外,也面臨中文館藏添置、重建受戰火波及的圖書館;
  2. 1949年中央政府遷臺,帶來了國立中央圖書館、故宮博物院、中央研究院等重要資源;
  3. 到了1951年,政府頒行各項圖書館規程,逐步建立圖書館體制。

成長階段(1953~1976)

  1. 國立中央圖書館在臺北復館;
  2. 中國圖書館學會成立;
  3. 師大跟臺大先後創辦圖書館組、系、培育專業人才;
  4. 美援資助各大學增建圖書館並購置圖書設備。

茁壯階段(1977~)

  1. 政府積極推行文化建設政策、設立各縣市文化中心及鄉鎮圖書館;
  2. 圖書館自動化及網路建設有成;
  3. 「圖書館法」頒佈施行。
請問中華民國圖書館學會對臺灣圖書館事業的貢獻為何?

中華民國圖書館學會成立於1953年,以研究圖書資訊學術、促進圖書館事業的合作發展為目的。學會首要的貢獻是研訂各類圖書館標準,最為關切的目標則為「圖書館法」的制訂,最終於2001年頒佈;圖書館學會另一工作為圖書館工作人員研習會的舉辦。在學術方面也定期出版會報及通訊二刊,並與出版機構合作編印專著和叢書多種,包括《中國編目規則》與《中國機讀編目格式》,以及呼籲政府與民眾重視的《圖書館事業發展白皮書》。

請問臺灣光復後的推動圖書館館際合作制度有那些組織?

臺灣圖書館界自1970年代起即自動自發的成立了不同類型的合作組織,採會員制推動各項活動。

最先成立的合作組織是1972年的「中華民國科技圖書館及資料單位館際合作組織」,而後是1981年的「中華人文、社會科學圖書館及資料單位合作組織」。在兩岸合作方面則有1996年成立的「中華民國資訊館際合作協會」。

在電子資源整合上則以1998年成立的「全國學術它電子資訊資源共享聯盟」(CONCERT)為主;兩岸學術交流則是以1990年成立的「中華圖書資訊教育學會」最具成效成效。

臺灣圖書資訊學的研究領域有那些?

根據1946年至1999年的53年間統計,臺灣的圖書資訊學研究大致上可分為三類:

  1. 圖書館學:著重於圖書館事業、館藏發展、圖書館技術與服務、圖書館行政管理、推廣與輔導、特殊資料處理、圖書館教育,以及各類圖書館問題等。
  2. 資訊科學:有關電子科技之應用和電子圖書館。數量佔半數文獻。
  3. 文獻學:傳統目錄學、版本學為核心,兼及古籍刊刻、考訂、庋藏與流通等。研究數量較少。此外,檔案學理論與實務研究也逐漸受到重視。
(more...)

iSchools現況:學術研究與研究所教育的分析 / The state of iSchools: An analysis of academic research and graduate education

布丁布丁吃布丁

iSchools現況:學術研究與研究所教育的分析 / The state of iSchools: An analysis of academic research and graduate education

image 

這是一份圖書資訊學研究趨勢的課堂論文閱讀筆記。本研究調查了iSchool的發展現況,釐清了iSchool與傳統圖書館學校的不同之處。

This is a reading note of a course “圖書資訊學研究趨勢”. This article describes the current state of iSchools and reveals the different between iSchools and traditional Library and Information Science schools.

(more...)

同儕評閱的過程:接受、修改以及直接拒絕 / The Peer Review Process: Acceptances, Revisions, and Outright Rejections

同儕評閱的過程:接受、修改以及直接拒絕 / The Peer Review Process: Acceptances, Revisions, and Outright Rejections

image

這是圖書資訊學研究趨勢的課堂論文閱讀。這是Library Quarterly期刊主編Richardson所撰寫的同儕評閱過程,讓投稿者能夠瞭解期刊選擇文章的標準以及文章篩選過程。

This is a reading note of course “圖書資訊學研究趨勢”. The author of this article is the editor of Library Quarterly journal. This article describes the manuscript review process to make novice researchers understand how to submit their article successfully.


書目資料 / Bibliography

Richardson, J. V. (2002). The Peer Review Process: Acceptances, Revisions, and Outright Rejections. Library Quarterly, 72(1)

筆記下載 / Note Download

image


筆記全文 / Note Fulltext

請問同儕評閱的由來。

同儕評閱(peer review或refereeing),由一群專家鑑定學術著作是否達到出版標準。同儕評審的歷史可以回溯至 1665 年,最早出現在 Royal Society’s Philosophical Transactions of the Royal Society。在當時投稿文章由該學會會員,例如牛頓(Isaac Newton)達爾文(Charles Darwin)法拉利(Michael Faraday)赫雪爾 (William Gerschel) 等審查。從此之後,該評閱機制被科學研究社群廣為採用。

請問何謂雙盲匿名評閱 (double-blind refereeing)?

期刊The Library Quarterly的主編Steve Harter在1993說明該期刊使用的雙盲匿名評閱制度(double-blind refereeing):

  • 評閱者(referee)不知道作者的名字;
  • 作者也不知道評閱者的名字

這也是一般同儕評閱(peer review)使用的方法。

請問一般評閱論文的準則有那些?

根據The Library Quarterly期刊的評閱者報告(Referee’s Report)的建議,評閱者評閱論文的主要有9點,然後請評閱者補充其他他們認為重要的標準:

  1. 該研究是否為重大問題、主題或是討論議題?
    (Does the study address a significant problem, topic, or issue?)
  2. 該研究是否寫出針對問題的創新見解或是原創的研究方法?
    (Does the work offer fresh insights or original treatment of the problem?)
  3. 作者是否能夠有條理地整理相關文獻?
    (Does the author demonstrate a command of the relevant literature?)
  4. 該研究採用的研究方法是否適合於該研究探討的問題?
    (Are the research methods appropriate to the problem?)
  5. 研究方法、研究論點或資料分析上是否有任何缺陷?
    (Are there flaws in the methods, arguments, or data analyses?)
  6. 研究結果是否會對既有的知識或是專業共識帶來再確認、拓展、修改或是挑戰等影響?
    (Do the findings confirm, expand, revise, or challenge conventional knowledge or professional consensus?)
  7. 研究結論是否是經由研究結果的分析來證實?
    (Are the conclusions justified by the results of the analyses?)
  8. 該研究是否具有良好架構並且下筆流利?
    (Is the paper well organized and clearly written?)
  9. 該研究是否令人感興趣?
    (Is the paper interesting to read?)

Library Quarterly的評閱者報告單附圖如下:

image

請問主編處理投稿稿件的方式有那些?

The Library Quarterly的主編Richardson在2002年的編者語錄中,將投稿的稿件(manuscript)以三種方式來處理:接受(Accept)、修改並重新投稿(Revise and Resubmit)與拒絕(Rejected)。

「接受」(Accept)稿件的處理

儘管主編擁有接受稿件的權力,但主編仍會參考評閱者的意見。而接受稿件又可以細分為「完全接受」(accepted outright)、「微小修改後接受」(accepted with minor editing)、「大幅修改後接受」(accepted with more major revisions)。通常決定「接受」該稿件所需要的時間大約是3個月內。

「修改並重新投稿」(Revise and Resubmit)稿件的處理

大部分的稿件都被歸類在此類,而通常主編會在4個月內決定如此處理。這種稿件通常是主題與期刊相符,但是在研究方法或研究結果上撰寫的方式有問題。因此主編會允許評閱者以較長的時間回覆,以建議作者如何修復這些問題,而主編也許要較長的時間提供作者建議。

「拒絕」(Rejected)稿件的處理

當稿件的內容主題或是呈現方式需要大幅度修改時,主編會建議作者投稿到其他的期刊。這類型的稿件大概佔了1/4。決定「拒絕」該稿件所需要的時間最快,大概是在2個月左右。拒絕的稿件並不會進行同儕評閱,通常這些稿件的問題在於:

  1. 頁數過短 (例如10頁以內);
  2. 缺乏文獻佐證 (亦即缺乏文獻引用);
  3. 未遵循期刊的作者寫作指引與寫作風格 (特別是它看起來很像其他期刊的格式)。

被拒絕的稿件作者通常是沒看過該期刊的外國作者。

(more...)

OpenVZ虛擬應用範本:Koha / OpenVZ Virtual Application Template: Koha 3.16

OpenVZ虛擬應用範本:Koha / OpenVZ Virtual Application Template: Koha 3.16

2014-10-14_233823

我在Turnkey Linux的LAMP虛擬應用範本上安裝了圖書館自動化系統Koha 3.16,並打包成OpenVZ虛擬應用範本的格式分享給大家使用,讓大家更容易架設Koha。

I have packaged Koha 3.16 to an OpenVZ virtual application template which is based on Turnkey Linux LAMP. In this article, I share this template and show how to start it.


Koha: 圖書館自動化系統 / Koha: A Library System

Koha是一個開放原始碼的圖書館自動化系統,可供大家免費下載、架設與使用。Koha是使用Perl (CGI),運作在Apache上,資料庫使用MySQL。這些組合都是開放原始碼授權。

Koha本身具備了兩大界面,一個是供讀者查詢館藏用的OPAC,另一個是供館員管理用的Intra內部網頁。兩者會架設在同一台伺服器上,用不同的連接埠來區隔開來。

雖然Koha可以免費取得,但是作為一個複雜的圖書館自動化系統,通常需要經過訓練才能順利使用Koha。因此有許多公司提供Koha服務來收費,例如Koha使用訓練。

下載Koha虛擬應用範本 / Download

這是一個OpenVZ的虛擬應用範本檔案 (或稱之為虛擬應用樣板,請看我之前的介紹),檔案名字是「koha_3.16.04.000_20141014.tar.gz」,雖然看起來很像是tar.gz的壓縮檔案,但這檔案本身就是一個虛擬應用範本,不需要解壓縮即可使用。

安裝Koha虛擬機器 / Install

image

關於安裝的方法,請參考我之前寫的Proxmox VE 3安裝與建立OpenVZ虛擬機器,或是從架設OpenVZ虛擬機器這一串教學開始看起。

2014-10-15_105043

架設完成之後大致上長這樣子。

登入界面 / Login

初始化安裝的時候,我預設的密碼都是password,Linux使用的帳號是root、Koha使用的帳號是koha_library。

OPAC界面 / OPAC Interface

1780796_10202992796488596_3434819395203767946_n

一般讀者使用。

  • 網址:http://your-koha-server-ip:8081/
Intra 內部管理界面 / Intra Administration

1962728_10202992800288691_66897959114382669_n

  • 網址: http://your-koha-server-ip:8080/
  • 登入帳號:koha_library
  • 登入密碼:password
修改主要密碼 / Change Master Password

為了大家方便使用,除了Linux中root帳號使用的密碼會在建立OpenVZ時指定之外,Koha中預設的安裝密碼都是password。若要正式使用,請修改預設的密碼。

修改方法請參考How to change master password of Koha ?。做法如下:

  1. 以root身份登入Koha伺服器的命令列
  2. 進入MySQL管理界面,更改koha_library的密碼:
    mysql -u root -h localhost -p  
    [請輸入預設MySQL的root帳號的密碼 password]
    use mysql;
    SET PASSWORD FOR 'koha_library'@'localhost' = PASSWORD('新密碼');
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密碼');
    flush privileges;
    quit;
  3. 然後修改koha-conf.xml的密碼:
    nano /etc/koha/sites/library/koha-conf.xml
  4. 密碼的位置在最下面,請找到「<pass>password</pass>」,然後吧password替換成你要的新密碼即可。nano編輯器的操作方式請參考鳥哥的教學
    2014-10-15_110450 

開始使用Koha / How to Start Use Koha

我雖然把Koha架設起來了,可是老實說我也沒有仔細研究過怎麼使用。以下我整理一些Koha的使用教學,提供需要的使用者進一步閱讀。

不過在開始之前,有幾件工作需要進行:

  • 中文化:可以看一下Koha Translation Project的漢語(臺灣),研究一下如何安裝
  • 機讀格式:預設安裝時Koha提供了MARC21UNIMARC兩種格式,但沒有臺灣特製的CMARC。我安裝時使用的是MARC21。如果需要CMARC要另外想辦法。

有問題可以請教臺灣的Koha啟蒙大師:天主教輔仁大學圖書資訊學系毛慶禎教授


結語:更多的虛擬應用範本 / Conclusion: To Create More Virtual Application Template

之前有個想法,由於我覺得OpenVZ這種輕量級的虛擬化技術,運作Koha這種網頁管理系統真的是非常適合,因此讓我開始想要將許多系統打包成OpenVZ的形式來運作,所以就出現了這次的Koha虛擬應用範本。

其實這個是為了最近的圖書館領導人才菁英碩士學分班準備的內容。我想在大家面前展示一下,只要簡單的幾個操作就能夠架設一個Koha系統,這種感覺應該讓平常總是在跟幾十萬的圖書館自動化系統奮鬥的圖書館從業人員感到印象深刻吧。(雖然Koha原本的安裝方式也不能說很難就是了)

我的目的只是展示而已,所以做完後就沒有打算進一步深入研究了。有人需要就拿去用吧,有什麼感想或建議歡迎於下面留言發表。

(more...)

Proxmox VE增加第二顆硬碟 / Add Another Hard Disk in Proxmox VE

布丁布丁吃布丁

Proxmox VE增加第二顆硬碟 / Add Another Hard Disk in Proxmox VE

image

Proxmox VE預設安裝時只會使用一顆硬碟,不過我們也可以手動把其他顆硬碟加入到Proxmox VE中,加大可使用的空間。

This article show you how to add another hard disk as Proxmox VE's storage.


操作環境 / Proxmox VE Environment

本文章是以Proxmox VE 3.2為例子。

不過這個Proxmox VE實際上是架設在VirtualBox之中,方便我練習。

2014-10-14_170247 - Copy

我先安裝了一台Proxmox VE。關於安裝方法,請參考我之前寫的安裝教學。然後我再為這台Proxmox VE加上了一顆80GB的SATA硬碟,以擴充這台Proxmox VE的可用空間。

注意硬碟的類型,此例中用的是SATA,這會影響接下來要加入硬碟時所需要指定的裝置路徑。

準備好了話,我們就要來開始安裝第二顆硬碟囉。


安裝第二顆硬碟 / Install Anothor Hard Disk

STEP 1. 進入Shell / Enter Proxmox VE’s Shell

2014-10-15_002034

以下操作我們都得用指令列,以root的身份來進行。一般教學會用SSH或在本機端操作,還好Proxmox VE還提供了方便的功能,可以讓我們用Shell直接以root身份進入伺服器指令列端操作。

2014-10-15_002204 - Copy

Shell是透過Java Applet來使用,因此通常它會先問一些安全性問題。這時候直接按下Continue即可。

image

進來指令列端了,開始進行接下來的操作吧。

STEP 2. 確認磁碟路徑 / Finding Hard Disc’s Device Path

這一步是Linux基本操作,操作指令細節可以查看鳥哥的Linux磁碟與檔案系統管理,以下我僅列出主要操作步驟。

首先,我們要先確定要新增加的硬碟的路徑。簡單地方法可以用ls指令來確認,這是SATA硬碟的確認方法:

root@proxmox:~# ls /dev/sd*

如果安裝的硬碟是IDE (PATA)類型,那路徑一般是以/dev/hd*開頭,查詢方式為:

root@proxmox:~# ls /dev/hd*

2014-10-15_004309

上圖是查詢結果。你可以注意到只有/dev/sdb後面沒有接數字。這表示這顆磁碟尚未被分割,也就是我們剛剛加入的新硬碟。

STEP 3. 磁碟分割 / Create Hard Disk Partition

接下來我們要用fdisk來把該硬碟分割成可以用的磁區。/dev/sdb請替換成你硬碟的路徑。

root@proxmox:~# fdisk /dev/sdb

然後會進入fdisk操作界面,以下我只列出需要輸入的操作,大多動作都是使用預設值,直接按下enter跳過即可:
Command (m for help): n
Select (default p): (直接按下enter)
Partition number (1-4, default 1): (直接按下enter)
First sector (2048-167772159, default 2048): (直接按下enter)
Last sector, +sectors or +size{K,M,G} (2048-167772159, default 167772159): (直接按下enter)
Command (m for help): w

2014-10-14_195250

上面訊息中sector會隨著你的硬碟大小而改變,直接採用預設值按下enter就可以不用理會囉。

分割完成之後的路徑就是 /dev/sdb1。

STEP 4. 硬碟格式化 / Format Partition

Proxmox VE使用的硬碟格式是ext3,在此我們也使用mkfs來把硬碟分割格式化為ext3格式。以下路徑請使用剛剛分割完磁碟之後的磁碟分割路徑:

root@proxmox:~# mkfs -t ext3 /dev/sdb1

2014-10-14_195628

格式化需要花點時間,中間沒有任何要操作的動作,請耐心等待回到指令列即可。

沒有什麼特別要確認的訊息,這樣就格式化完了。

STEP 5. 掛載磁碟 / Mount Hard Disk

Linux的硬碟要掛載之後才能使用,首先我們先建立掛載路徑的目錄。在此我直接用磁碟分割的編號 sdb1 來做為路徑名稱:

root@proxmox-01:~# mkdir -p /mnt/sdb1

然後把開機掛載訊息寫入/etc/fstab:

root@proxmox-01:~# echo /dev/sdb1 /mnt/sdb1 ext3 defaults 1 2 >> /etc/fstab

(此處有變更過,原本的做法會導致無法在開機時自動啟用虛擬機器,參考了鳥哥的fstab說明之後更正)

接著用reboot指令重開機:

root@proxmox-01:~# reboot

用df指令確認是否有掛載上去:

root@proxmox-01:~# df /mnt/sdb1

2014-10-15_010812

有看到/mnt/sdb1就表示成功了。

STEP 6. 建立Proxmox VE的Storage / Create Storage in Proxmox VE

接下來我們回到Proxmox VE的網頁管理界面操作。

 2014-10-15_011033

先到「Datacenter」,進入「Storage」,然後「Add」增加「Directory」磁碟目錄。

2014-10-15_011210

填入以下資訊,磁碟編號跟路徑則是要參考上面設定的結果:

  • ID: sdb1
  • Directory: /mnt/sdb1
  • Content: Images, ISO, Templates, Backups, Containers (全部選擇)
  • Nodes: proxmox-01 (只選擇你安裝硬碟的Proxmox VE節點)

按下Add。

2014-10-15_011450

proxmox-01節點下就會多出一個新的Storage「sdb1」,未來在建立虛擬機器、備份、下載虛擬應用範本時,就可以使用這顆新加入的硬碟囉。

 

雖然這方法很簡單,但寫著寫著赫然發現步驟挺複雜的。難得有機會整理一下供大家參考也好啦。

(more...)