會通資訊|ArgoERP 提供全方位數位化轉型方案|立即諮詢相關資訊!

TOP

Jan. 2 2024

AI機器學習建立模型方法

作者:Tom

今年,被稱為AI教父的Nvidia執行長黃仁勳旋風式訪台兩次,每回都成了媒體焦點,也捲起一陣AI熱潮。生成式AI如日中天,您可能用過ChatGPT,但是您知道ChatGPT引擎怎麼產生?這裡,我們用一些簡單例子,介紹AI模型的生成的方法。


網路上熱門的AI習題,【鐵達尼號生存預測】,這個練習提供以下資料如下。資料集共有1332筆,12個欄位。其中891筆有答案,441為了比賽目的先不提供答案。參賽者整理現有資料,建立模型,再用模型預測這441筆資料結果後提交報告,準確度高者贏得競賽。




因為資料提供了乘客是否存活的資料,我們採用機器學習裡的監督式學習方法來建立模型,
➤流程如下:
1.取得資料
2.處理資料
3.拆分資料
4.選擇演算法
5.訓練模型
6.驗證模型


一般用python語言做AI,因為python有豐富的AI物件支援,所需的程式碼最簡潔。這裡用一段python程式碼來解釋上面的流程會更清楚。

# 1. 讀取鳶尾花資料集
iris = datasets.load_iris()
# 2. 切分訓練/測試資料
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=5)
# 3. 選擇演算法建立模型 (這裡使用隨機森林)
clf = RandomForestClassifier(n_estimators=20, max_depth=4)
# 4. 用訓練資料訓練模型
clf.fit(x_train, y_train)
# 5. 用測試資料預測結果
y_pred = clf.predict(x_test)
# 6. 計算模型準確度
acc = metrics.accuracy_score(y_test, y_pred)



若省略載入物件,python程式只有6行,就產生一個AI模型。使用者輸入花萼或花瓣資料,即可預測鳶尾花品種。若不改變程式的參數設定,這個AI模型的準確度高達97%。

➤簡單描述程式流程:
Line1:取得鳶尾花資料集iris
Line2:拆分資料,把資料分成訓練與測試兩組,資料與結果分開。test_size=0.2表示測試資料佔總筆數1/5。random_state=5表示將訓練資料分5群(統計方法)

Line3:建立模型,選用隨機森林演算法。
Line4:訓練模型,把訓練資料與答案(x_train, y_train)丟入模型進行訓練。
Line5:驗證模型,把測試資料(x_test)丟入已訓練完的模型,得到預測結果(y_pred)
Line6:模型準確度,比對預測結果(y_pred)與測試資料答案(y_test),計算準確度acc。

到這裡,您已經學會機器學習了。但是,上面的流程怎麼少了處理資料這塊呢?沒錯,資料處理是AI問題最重要的一環,其比重佔整個工作60%以上。


鳶尾花測試集因為資料完整,欄位少,變因不大。即使資料量不多,仍可由簡單設定得到高準確度的AI模型。再回到【鐵達尼號生存預測】問題,因為欄位較多,資料型態不同,資料凌亂,可能有空值,或是不一致的資料型態,若不進行資料整理,建立的模型可能準確性會很低。而當模型準確性未達預期,這時就要重複步驟2~6,不斷調整資料結構與內容,調整演算法參數(或改變演算法)並重新訓練與驗證。我們再一次列出步驟,並進一步補充說明。

1.取得資料,AI訓練需要大量資料,以提高準確性。
2.處理資料
✔ 欄位選擇:船票號會影響存活率嗎?姓名會影響存活率嗎?不確定,那就先留著吧,或許有意外的結果。
✔ 空值處理:空值要補什麼?平均值、中位數、最大最小值、0、-1 或其它?了解欄位特性很重要,才知道補什麼資料最有幫助。
✔ 解碼方式:性別欄位,要用male=1/female=0(Label Encoding),或是拆成兩個欄位(男/女)(One-hot Encoding)再給1或0?電腦主要處理數字,解碼方式影響運算的速度。
✔ 發揮想像力:再問一次,姓名會會影響存活率嗎?姓名的字串長短有影響嗎?稱謂(Miss/Mr./Mrs.)有影響嗎?不確定,那就拆出來跑跑看。AI工具擅長處理整個資料集,網路上另一個AI問題,【Boston房價預測】有200多個欄位,數萬筆資料。善用現代化工具會大大幫助您處理問題。
3.拆分資料(如前述)
4.選擇演算法
AI主要處理兩大類問題,迴歸(預測結果)與分類。處理不同問題要選用不同演算法,所以認識演算法可以減少試誤的時間,事半功倍。常聽到的演算法如:線性迴歸、邏輯斯迴歸、樹狀森林、決策樹…,每個演算法都有適用的時機,並有對應的參數可調整,學習AI正是學習演算法的使用。
5.訓練模型(如前述)
6.驗證模型(如前述)


機器學習只是AI眾多方法的一種,對於影像資料辨識,更多人使用深度學習的類神經網路方法。下回有機會再介紹,謝謝。

(02)2521-2589#110
winnie@argotek.com.tw

 

成功!
感謝您訂閱會通電子報
OK
成功!
您已取消訂閱會通電子報
OK