Taking too long? Close loading screen.

Logistic Regression ด้วย Microsoft Excel

Mar 26, 2021

หนึ่งในโจทย์ด้านวิทยาศาสตร์ข้อมูลที่สำคัญคือการทำนายประเภทจากข้อมูลหรือที่เรารู้จักกันในชื่อของ Classification Model ตัวอย่างโจทย์หนึ่งขององค์กรทางภาครัฐ เช่น การจำแนกแนวโน้มการออมเงินเพิ่มของสมาชิกกองทุนบำเหน็จบำนาญข้าราชการ ซึ่งมีเป้าประสงค์เพื่อการจัดจำแนกสมาชิกคนหนึ่ง ๆ ว่ามีความเป็นไปได้ว่าจะออมเงินเพิ่ม หรือไม่ออมเงินเพิ่ม มากกว่ากัน โดยอาศัยข้อมูล เช่น ข้อมูลเชิงประชากร, ข้อมูลเชิงภูมิศาสตร์, ข้อมูลเชิงจิตนิสัย หรือข้อมูลเชิงพฤติกรรม เป็นต้น

ลักษณะสำคัญของโจทย์การจัดหมวดหมู่ (Classification) คือการพยายามจัดคน สิ่งของ หรือวัตถุใด ๆ ให้เข้ากับหมวดหมู่มาตรฐานที่รู้จักอยู่แล้ว

การจัดหมวดหมู่ที่เราอาจนึกถึงเป็นอันดับแรกคือการจัดของออกเป็นสองกลุ่ม เช่น พิจารณาจัดหมวดหมู่ที่เข้าเกณฑ์และไม่เข้าเกณฑ์ กลุ่มที่ใช่และกลุ่มที่ไม่ใช่ ในกลุ่มและนอกกลุ่ม เป็นต้น ลักษณะเช่นนี้เรียกว่าการจัดจำแนกแบบไบนารี (Binary Classification) ซึ่งหากการจำแนกประเภทดังกล่าวมีการกำหนดหลักเกณฑ์เอาไว้ชัดเจน การพิจารณาว่าของชิ้นหนึ่งจะเข้ากลุ่มใดสามารถทำได้ง่ายผ่านการพิจารณาว่าของชิ้นนั้นเข้าเกณฑ์หรือไม่ (Rule-based Classification) อย่างไรก็ดี หากการจัดเข้ากลุ่มใดกลุ่มหนึ่งไม่มีการกำหนดกฎเกณฑ์ที่ชัดเจน อาจจำเป็นต้องใช้เทคนิคของการเรียนรู้ของเครื่อง (Machine Learning) เข้ามาใช้ช่วยพิจารณาว่าของชิ้นนั้น มีแนวโน้มที่จะเข้ากลุ่มใดมากกว่ากัน ซึ่งเทคนิคดังกล่าวจำเป็นต้องอาศัยความแตกต่างกันของข้อมูลระหว่างสองกลุ่มที่กำลังพิจารณา

ตัวอย่างโจทย์ด้านการจำแนกแบบไบนารีคือการแยกระหว่างสุนัขกับแมว (ภาพจากบทความ Analytics Building Blocks: Binary Classification)

การพัฒนาโมเดลโดยใช้เทคนิคการเรียนรู้ของเครื่องนี้ คนที่มีความรู้ด้านการเขียนโปรแกรมภาษาคอมพิวเตอร์ เช่น Python, R, MATLAB ฯลฯ อาจพัฒนาโมเดลผ่านการเขียนโปรแกรมด้วยภาษาที่ตนถนัด อย่างไรก็ดี ในบทความนี้จะมานำเสนอการทำโมเดลโดยใช้เครื่องมือง่าย ๆ ที่หลายคนมีอยู่ติดเครื่องคอมพิวเตอร์อยู่แล้ว นั่นก็คือโปรแกรม Microsoft Excel นั่นเอง โดยที่ไม่จำเป็นต้องใช้ความรู้การเขียนโปรแกรมที่ซับซ้อนแต่อย่างใด

คณิตศาสตร์ของการวิเคราะห์การถดถอยโลจิสติก

เทคนิคพื้นฐานหนึ่งที่ใช้ในการจัดหมวดหมู่ได้แก่เทคนิคการวิเคราะห์การถดถอยโลจิสติก (Logistic Regression) ซึ่งเป็นการพยายามฟิตเส้นโค้งซิกมอยด์ (Sigmoid Curve) ให้เข้ากับข้อมูลจริงมากที่สุดเท่าที่ทำได้ในหลักการที่คล้ายกับการวิเคราะห์การถดถอยเชิงเส้น (Linear Regression) ซึ่งเป็นการพยายามฟิตสมการเส้นตรงเข้ากับข้อมูลจริง สิ่งที่แตกต่างคือข้อมูลที่ทำนายจากการทำ Logistic Regression นั้นเป็นการทำนายระหว่างค่า 1 (ในเกณฑ์) และ ค่า 0 (นอกเกณฑ์) ในขณะที่การทำนายจากการทำ Linear Regression นั้นค่าที่ได้จากการทำนายอาจเป็นค่าตัวเลขใด ๆ ก็ได้

เพื่อให้ผลจากการทำนายโดย Logistic Regression มีค่าเป็น 0 หรือ 1 เท่านั้น ตัวแปรที่ส่งผลต่อการทำนายจะถูกคำนวณให้กลายเป็นค่าความน่าจะเป็น (Probability) ว่าค่านั้น ๆ มีความเป็นไปได้ที่จะเป็น 1 เท่าใด โดยสมการดังกล่าวสามารถเขียนได้ในรูปของ

{P(1) = \frac{e^{f(x,\beta)}}{1+e^{f(x,\beta)}} }
สมการคำนวณค่าความน่าจะเป็นที่จะเป็น 1

เมื่อ x คือเซ็ตของตัวแปรที่ส่งผลต่อการทำนาย, \beta คือเซ็ตของพารามิเตอร์ของโมเดลทำนาย, f(x) เป็นฟังก์ชันเชิงเส้นในรูปของ f(x)=\beta_0+\beta_1 x_1 + \beta_2 x_2 + ... และ P(1) คือค่าความน่าจะเป็นที่ค่าตัวแปรนั้นจะถูกทำนายให้เป็น 1

ในขณะที่ผลจากการทำนายด้วย Linear Regression สามารถเขียนแทนได้ด้วยเส้นตรง (สำหรับกรณีทำนายผลจากหนึ่งตัวแปร) ผลรวมระยะห่างระหว่างค่าทำนายกับค่าของข้อมูลจริงบ่งชี้ความแม่นยำของการทำนายดังกล่าว เพื่อหาเส้นตรงที่เหมาะสม เราอาจสร้างเส้นตรงหลาย ๆ เส้นก่อนจะเฟ้นหาเส้นตรงที่ให้ผลรวมระยะห่างที่ต่ำที่สุด ซึ่งจะถือเป็นโมเดลที่ดีที่สุดที่ใช้อธิบายข้อมูลชุดนั้น ๆ

การฟิตเส้นตรงสำหรับการทำ Linear Regression นั้นวัดค่าความแม่นยำจากผลรวมของระยะห่างระหว่างข้อมูลจริงกับค่าที่ทำนายจากโมเดล

อย่างไรก็ดีเมื่อใช้หลักการดังกล่าวกับการทำนายด้วย Logistic Regression พบว่าค่าผลรวมที่ได้จากการเทียบระยะห่างระหว่างเส้นโค้งซิกมอยด์กับข้อมูลจริงสามารถหาจุดที่ต่ำที่สุดได้ยาก ในทางปฏิบัติเราจะคำนวณหาค่าผลคูณความน่าจะเป็น ซึ่งสะท้อนความศักยภาพของโมเดลในการฟิตเข้ากับตัวข้อมูล (Likelihood) แทนผลรวมระยะห่าง โมเดลเส้นโค้งซิกมอยด์ที่ให้ค่าความเป็นไปได้สูงสุด (Maximum Likelihood) จะถูกเลือกให้เป็นโมเดลที่ดีที่สุดที่ใช้อธิบายข้อมูลชุดนั้น ในทางปฏิบัติเรานิยมคำนวณค่าล็อกการิธึมของผลคูณความน่าจะเป็น (Log Likelihood) โดยสมการผลคูณความน่าจะเป็นจะถูกเปลี่ยนให้อยู่ในรูปของผลรวม ซึ่งสามารถคำนวณหาค่าสูงสุดผ่านการหาอนุพันธ์ (Differentiation) ได้ง่ายกว่าการหาอนุพันธ์ของผลคูณ ผลบวกดังกล่าวอยู่ในรูปของ

\mathrm{LL}=\log{\left(\mathrm{Likelihood}\right)}=\sum\limits_{i}\begin{cases}\log{\left(\frac{e^{\fleft(\mathbf{x}_i^\intercal \mathbf{\beta})}}{1+e^{\fleft(\mathbf{x}_i^\intercal \mathbf{\beta})}}\right)}, & y_i = 1 \\\log{\left(1-\frac{e^{\fleft(\mathbf{x}_i^\intercal \mathbf{\beta})}}{1+e^{\fleft(\mathbf{x}_i^\intercal \mathbf{\beta})}}\right)}, & y_i = 0\end{cases}
สมการคำนวณ Log Likelihood ของโมเดล

แทน โดยพจน์แรกว่าด้วยความเป็นไปได้ที่จุด i ใด ๆ ที่ทราบมาก่อน (labelled) ว่าเป็น 1 นั้น จะถูกโมเดลทำนายว่าเป็น 1 ในขณะที่พจน์ที่สองว่าด้วยความเป็นไปได้ที่จุด i ใดๆ ที่ทราบมาก่อนว่าเป็น 0 นั้นจะถูกโมเดลทำนายว่าเป็น 0 ด้วยเหตุนี้ผลรวมของสองพจน์จึงเป็นผลรวมความเป็นไปได้สำหรับกรณีที่โมเดลทายถูก (1 หรือ 0) ทั้งหมด โมเดลที่มีค่า \beta ที่สร้างความเป็นไปได้ที่สูงที่สุด (Maximum Likelihood) จึงถูกเลือกให้เป็นโมเดลที่เป็นตัวแทนของข้อมูลชุดนั้น

การฟิตเส้นโค้งซิกมอยด์ (Sigmoid Curve) เพื่อใช้ทำนายความน่าจะเป็นที่จะสอบผ่านเนื่องจากจำนวนชั่วโมงเรียน

เตรียมโปรแกรมและข้อมูลให้พร้อมสำหรับการทำ Logistic Regression

เพื่อจะให้โปรแกรม Microsoft Excel สามารถช่วยหาค่าเหมาะสมที่สุด (Optimization) ให้กับการคำนวณของเรานั้น ผู้ใช้จำเป็นต้องเปิดโหมด Solver ของโปรแกรมก่อน โดยไปที่แถบ File > Options > Add-ins จากนั้นเลื่อนไปที่ช่อง Manage เพื่อเลือก Excel Add-ins คลิก Go… ซึ่งจะเปิดหน้าต่าง Add-ins ขึ้นมา คลิกเลือก Solver Add-in กด OK แล้วรีสตาร์ตโปรแกรม หลังจากนั้นจะปรากฏคำสั่ง Solver ในหมวด Analyze ภายใต้แถบ Data

หลังจากแถบ File > Options ให้แถบเลือก Add-ins ก่อนจะคลิกเลือก Excel Add-ins ก่อนเลือก Solver Add-in เพื่อเปิดฟังก์ชัน Solver สำหรับใช้คำนวณหา Logistic Regression
หลังจากเปิดตัวเลือก Solver แล้ว จะปรากฏปุ่ม Solver ในหมวด Analyze ภายใต้แถบ Data

เมื่อเตรียมโปรแกรมเรียบร้อยแล้ว ขั้นตอนต่อไปอาจเป็นการเตรียมข้อมูล ในกรณีของ Tutorial นี้ผู้เขียนขอเลือกใช้ชุดข้อมูลผู้รอดชีวิตจากไททานิก โดยเลือกใช้ข้อมูล train.csv โดยเลือกเฉพาะตัวแปรที่เป็นตัวเลข (Numerical Data) โดยสรุปคอลัมน์ที่เลือกใช้ดังแสดงในตารางด้านล่าง

ชื่อตัวแปรความหมายคีย์
PassengerIdเลขประจำตัวผู้โดยสาร
Survivedรอดชีวิต0 = No, 1 = Yes
Pclassชั้นของตั๋ว1 = 1st, 2 = 2nd, 3 = 3rd
Ageอายุในหน่วยปี
SibSpจำนวนพี่น้อง/คู่สมรสที่ร่วมเดินทางบนเรือ
Parchจำนวนบิดามารดา/บุตรที่ร่วมเดินทางบนเรือ
Fareค่าโดยสาร
ตารางสรุปคอลัมน์ที่เลือกใช้สำหรับ Tutorial นี้

ตัวแปร PassengerId จะถูกใช้เป็น primary key สำหรับระบุตัวบุคคล ตัวแปร Survived จะเป็นตัวแปรที่เป็นเลเบลของข้อมูล ในขณะที่ตัวแปรอื่นจะถูกใช้เป็นตัวแปรอิสระ (Independent Variables) สำหรับการเทรนโมเดล ทั้งนี้ผู้เขียนได้ตัดแถวที่ไม่มีข้อมูลอายุของผู้โดยสารออกเพื่อให้ง่ายต่อการเทรน โดยสามารถทำบน Microsoft Excel ได้ผ่านการเลือกคำสั่ง Filter ภายใต้แถบ Data เพื่อเลือกเฉพาะข้อมูลที่เป็นค่าว่างในคอลัมน์ Age แล้วทำแถบดำเลือกทุกแถวที่ผ่านฟิลเตอร์เพื่อลบแถวเหล่านั้นออก เมื่อทำการเลือกคอลัมน์ข้อมูลและลบแถวที่มีข้อมูลไม่ครบแล้ว สามารถบันทึกไฟล์ดังกล่าวให้อยู่ในฟอร์แมต .xlsx เพื่อใช้เป็นข้อมูลที่จะนำเข้าเทรนโมเดลในขั้นตอนถัดไป

ผู้ใช้สามารถใช้คำสั่ง Filter ภายใต้แถบ Menu เพื่อเลือกเฉพาะข้อมูลแถวที่ต้องการ

เตรียม Excel Worksheet ให้พร้อมเทรนโมเดล

สำหรับ Tutorial นี้ เราจะเทรนโมเดลทำนายการรอดชีวิตของผู้โดยสารบนเรือไททานิก โดยใช้ตัวแปรอิสระ 5 ตัว ได้แก่ ชั้นของตั๋ว, อายุผู้โดยสาร, จำนวนพี่น้อง/คู่สมรสที่เดินทางร่วม, จำนวนบิดา/มารดา/บุตรที่เดินทางร่วม และค่าโดยสาร โดยใช้เทคนิค Logistic Regression

ตัวอย่างการจัดหน้า Excel Sheet ให้พร้อมสำหรับการคำนวณหาโมเดล Logistic Regression ข้อมูลดิบแสดงด้วยส่วนสีเหลือง ส่วนสีส้มแสดงคอลัมน์ที่จำเป็นในการคำนวณค่าสำหรับโมเดล ในขณะที่ค่าสัมประสิทธิ์ (พารามิเตอร์) ของโมเดลจะถูกแสดงในส่วนสีน้ำเงิน ซึ่งในภาพกำหนดค่าเริ่มต้นให้เป็น 0 สำหรับทุกสัมประสิทธิ์

เพื่อเตรียม excel sheet ให้พร้อมสำหรับการเทรนโมเดล เราจะเพิ่มแถวด้านบนของตารางข้อมูลเพื่อเก็บค่าของพารามิเตอร์ของโมเดล ได้แก่ค่าจุดตัดแกนตั้ง (beta_0) และค่าสัมประสิทธิ์ของแต่ละตัวแปรอิสระ โดยในค่าเริ่มต้นอาจตั้งให้เป็นค่า 0 ทั้งหมด และเพิ่มคอลัมน์ด้านขวาเพื่อคำนวณค่าที่จำเป็นสำหรับใช้คำนวณค่า likelihood ดังลิสต์ต่อไปนี้

ชื่อคอลัมน์ความหมายสูตรสำหรับ MS Excel (สำหรับข้อมูลของบุคคลในแถวที่ 6)
f(X)สมการเชิงเส้นสำหรับตัวแปรอิสระเพื่อใช้ในการคำนวณโมเดล=B2 + C2C6 + D2D6 + E2E6 + F2F6 + G2*G6
P(1)ค่าความน่าจะเป็นที่บุคคลนั้นจะถูกทำนายว่าเป็น 1 (รอดชีวิต)=EXP(I6)/(1+EXP(I6))
P(1 or 0)ปรับค่าความน่าจะเป็นให้ขึ้นกับเลเบลของบุคคลนั้น=J6^B6*(1-J6)^(1-B6)
LLค่าล็อกการิธึมของ likelihood=LOG(K6)
ตารางสรุปคอลัมน์ที่จำเป็นต้องใช้สำหรับการคำนวณ

ค่าในคอลัมน์ P(1) เป็นค่า probability ของผู้โดยสารที่ผู้โดยสารคนหนึ่ง ๆ จะรอดชีวิตที่คำนวณจากโมเดล โมเดลที่แม่นยำควรทำนายผู้โดยสารที่รอดชีวิตให้มีค่าเข้าใกล้ 1 ในขณะที่ผู้โดยสารที่ไม่รอดชีวิตควรจะมีค่าเข้าใกล้ 0

เพื่อปรับคะแนนรวมให้รวมถึงความถูกต้องของการทายผู้ไม่รอดชีวิต แทนที่จะใช้ P(1) เป็นคะแนนสำหรับในทุกผู้โดยสารทั้งที่รอดและไม่รอดชีวิต การทายผู้โดยสารที่ไม่รอดชีวิตจึงจำเป็นต้องปรับใช้ P(0) เป็นคะแนนวัดความแม่นยำแทน นำไปสู่การสร้างคอลัมน์ P(1 or 0)

ในทางทฤษฎีเราอาจคำนวณ likelihood ของโมเดลด้วยผลคูณของ P(1 or 0) ของแต่ละผู้โดยสาร โมเดลที่ดีจะให้ผลคูณที่สูงที่สุด อย่างไรก็ดีในทางปฏิบัติพบว่าผลคูณดังกล่าวมีค่าน้อยมากเข้าใกล้ 0 และมีแนวโน้มสูงที่จะเกิดค่าความคลาดเคลื่อนเชิงตัวเลข (Numerical Error) เมื่อทำการคำนวณ ในทางปฏิบัติเราจึงคำนวณหาค่าล็อกการิธึมของค่าดังกล่าวก่อนจะนำไปคำนวณ โดยโมเดลที่ดีจะให้ค่าผลรวม log(likelihood) ที่สูงที่สุด ซึ่งจำเป็นต้องคำนวณลงมาแสดงบนเซลล์ให้เรียบร้อยเพื่อเตรียมพร้อมก่อนเทรนโมเดลต่อไป

เทรนโมเดลด้วย solver

เมื่อเตรียม worksheet พร้อมแล้ว ขั้นตอนถัดไปก็คือการให้ solver ช่วยหาค่าสัมประสิทธิ์ที่เหมาะกับข้อมูลชุดดังกล่าว โดยสามารถทำได้โดยคลิกที่แถบ Data > Solver

  1. Set Objective: ใส่เซลล์ที่เก็บค่าของผลรวม log(likelihood)
  2. To: เลือก Max
  3. By Changing Variable Cells: ใส่ลิสต์ของเซลล์ที่เก็บค่าสัมประสิทธิ์ของตัวแปร (พารามิเตอร์ของโมเดล)
  4. Make Unconstrained Variables Non-Negative: ไม่เลือก
  5. Select a Solving Method: เลือก GRG Nonlinear
  6. คลิก Solve

หลังจากนั้นโปรแกรมจะคำนวณโมเดลที่เหมาะสมให้ โปรแกรมจะแสดงหน้าต่าง Solver Results ขึ้นมา โดยผู้ใช้อาจเลือก Keep Solver Solution เพื่อเก็บค่าสัมประสิทธิ์ที่คำนวณลงบน worksheet พร้อมทั้งอาจเลือกให้โปรแกรมสร้างรายงานแสดงผลของโมเดล ก่อนกด OK เพื่อปิดหน้าต่างดังกล่าว ค่าสัมประสิทธิ์ที่คำนวณได้จาก solver สามารถนำไปใช้คำนวณบนข้อมูลของผู้โดยสารอื่นเพื่อทำนายความน่าจะเป็นที่ผู้โดยสารคนนั้นจะรอดชีวิตต่อไป

วัดค่าความแม่นยำของโมเดล

เพื่อวัดความแม่นยำของโมเดลเบื้องต้นเราต้องนำโมเดลมาใช้ทำนายว่าผู้โดยสารคนหนึ่งจะรอดหรือไม่เพื่อพิจารณาว่าโมเดลมีการทำนายผิดหรือถูกมากน้อยอย่างไร อย่างไรก็ดีเนื่องจากค่าที่ได้จากโมเดล Logistic Regression ให้ค่าออกมาเป็นความน่าจะเป็นที่คน ๆ หนึ่งจะรอดชีวิต ในทางปฏิบัติจำเป็นต้องเลือกเกณฑ์เพื่อระบุว่าที่ค่าความน่าจะเป็นมากกว่าเท่าใดถือว่าเป็นการทำนายว่ารอด โดยอาจเลือกความน่าจะเป็นที่ 0.5 เป็นจุดแบ่งระหว่างการทำนายผู้รอด/ไม่รอดชีวิต

เพื่อคำนวณความแม่นยำของโมเดล ผู้เขียนเลือกเพิ่มสองคอลัมน์ด้านขวาเพื่อทำนายการรอดชีวิต และพิจารณาว่าการทำนายดังกล่าวแม่นยำหรือไม่สำหรับผู้โดยสารแต่ละคน

ชื่อคอลัมน์ความหมายสูตรสำหรับ MS Excel (สำหรับข้อมูลของบุคคลในแถวที่ 6 ของ excel sheet)
predictionผลทำนาย=IF(J6>=0.5,1,0)
accurateความสอดคล้องระหว่างค่าทำนายและค่าจริง=NOT(XOR(B6,M6 ))
ตารางสรุปคอลัมน์ที่ใช้สำหรับการคำนวณค่าความแม่นยำของโมเดล
ตัวอย่าง Excel Sheet ที่ได้หลังจากรัน Solver ส่วนสีน้ำเงินจะถูกแทนที่ด้วยค่าที่ได้จากการคำนวณ ส่วนสีเขียวเป็นการสร้างคอลัมน์เพิ่มเติมสำหรับใช้คำนวณหาความแม่นยำของตัวแปร

โดยรายละเอียดในคอลัมน์ accurate สามารถนำไปคำนวณหาค่า Accuracy ของโมเดลได้จากสมการ

\mathrm{Accuracy} = \frac{\mathrm{True  Prediction}}{\mathrm{Total  Cases}}
สมการคำนวณค่าความแม่นยำจากจำนวนการทำนายถูกต่อจำนวนการทายทั้งหมด

นอกจากนี้เรายังสามารถพล็อตข้อมูลเทียบกับโมเดล ค่าของข้อมูลสามารถพล็อตลงบนกราฟโดยให้แกนนอนแทนค่าของฟังก์ชันเชิงเส้นที่ได้จากพารามิเตอร์ของโมเดลและข้อมูลจริง (คอลัมน์ f(X)) และให้แกนตั้งแสดงค่าเลเบลจริงของข้อมูล (คอลัมน์ Survived) ดังแสดงให้เห็นในจุดสีส้มในภาพ โดยพล็อตคู่กับกราฟของสมการ y=\frac{e^x}{1+e^x} ซึ่งเป็นกราฟแสดงค่าที่โมเดลทำนาย

ตัวอย่างการพล็อตโมเดล (เส้นสีน้ำเงิน) เทียบกับข้อมูลจริง (จุดสีส้ม) โดยใช้ f(x) เพื่อแปลงค่าตัวแปรอิสระหลายตัวให้สามารถพล็อตได้บนแกนนอน และแกนตั้งแสดงค่าความน่าจะเป็นที่จะรอดชีวิต (P(1)) โมเดลที่พัฒนาขึ้นจะคำนวณค่า P(1) จากค่าตัวแปรอิสระจากบุคคลหนึ่งๆ ซึ่งอาจมีค่าอยู่ระหว่าง 0 ถึง 1

สำหรับกรณีนี้จะพบว่าโมเดลที่ได้มีค่าความแม่นยำ (Accuracy) ระดับปานกลางที่ 70% ประกอบกับเมื่อพิจารณาบนกราฟที่พล็อตเส้นโค้งซิกมอยด์คู่กับข้อมูลแล้วพบว่า ยังอาจมีค่า False Positive อยู่ค่อนข้างมาก เพื่อพัฒนาโมเดลเพิ่มเติม อาจจำเป็นต้องเพิ่มตัวแปรอิสระอื่น ๆ ที่ไม่ใช่ตัวแปรประเภทตัวเลขมาเทรนโมเดลเพิ่มเติมผ่านการ encode ให้สามารถคำนวณเสมือนเป็นตัวแปรประเภทตัวเลขได้ หรืออาจทำการวิศวกรรมฟีเจอร์ (Feature Engineering) เพิ่มเติม เพื่อพัฒนาโมเดลให้สามารถทำนายได้แม่นยำขึ้น


การสร้างโมเดลด้วย Microsoft Excel ช่วยให้สามารถตรวจสอบข้อผิดพลาดในการคำนวณ รวมทั้งช่วยให้เข้าใจคณิตศาสตร์เบื้องหลังโมเดล

สำหรับผู้ที่มีความรู้ด้านการเขียนโปรแกรมภาษาคอมพิวเตอร์พื้นฐานอาจมองว่าการพัฒนาโมเดลทางคณิตศาสตร์ผ่านการเขียนโปรแกรมภาษาคอมพิวเตอร์สามารถทำได้ง่ายผ่านการใช้ไลบรารี่สำเร็จรูป แต่การสร้างโมเดลด้วย Microsoft Excel ซึ่งมีการแสดงผลการคำนวณในทุกขั้นตอนอย่างละเอียดช่วยให้สามารถตรวจสอบข้อผิดพลาดในการคำนวณได้อย่างสะดวก รวมทั้งช่วยให้ผู้พัฒนาได้เรียนรู้และเข้าใจคณิตศาสตร์เบื้องหลังโมเดลนั้น ๆ ได้อย่างรอบคอบถี่ถ้วน และสามารถนำโมเดลที่พัฒนาขึ้นไปใช้อย่างมั่นใจ บทความนี้ได้แสดงให้เห็นแล้วว่าเราสามารถใช้โปรแกรม Microsoft Excel ซึ่งเป็นโปรแกรมพื้นฐานที่ทุกคนคุ้นชินกันดีมาใช้เพื่อพัฒนาโมเดลทางคณิตศาสตร์ที่อาศัยเทคนิคการเรียนรู้ของเครื่องได้โดยไม่จำเป็นต้องอาศัยความรู้การเขียนภาษาคอมพิวเตอร์แต่อย่างใด

เนื้อหาโดย พีรดล สามะศิริ
ปรับปรุงและแก้ไขโดย นนทวิทย์ ชีวเรืองโรจน์ และ ปพจน์ ธรรมเจริญพร

Peeradon Samasiri, PhD

Project Manager and Senior Data Scientist at Government Big Data Institute (GBDi)

Nontawit Cheewaruangroj, PhD

Project Manager and Senior Data Scientist at Government Big Data Institute (GBDi)

Papoj Thamjaroenporn

Editor-in-Chief at BigData.go.th and Senior Data Scientist at GBDi

Sign up to join Big Data Community Thailand

Make comments, write articles, and contribute to our community.