สถิติสำหรับ Data Science 2026: ความน่าจะเป็น การทดสอบสมมติฐาน และคำถามสัมภาษณ์
เชี่ยวชาญสถิติสำหรับสัมภาษณ์ data science: การแจกแจงความน่าจะเป็น การทดสอบสมมติฐาน p-value และคำถามที่พบบ่อยปี 2026

สถิติเป็นรากฐานทางคณิตศาสตร์ของทุกบทบาท data science ผู้สัมภาษณ์ที่บริษัทอย่าง Google, Meta และ Netflix ทดสอบการใช้เหตุผลทางสถิติเพราะสิ่งนี้แยกแยะผู้สมัครที่สร้างโมเดลได้จากผู้ที่เข้าใจว่าทำไมโมเดลเหล่านั้นถึงทำงาน
คำถามสถิติประเมินความสามารถสามด้าน: การแปลงปัญหาทางธุรกิจเป็นกรอบสถิติ การเลือกการทดสอบที่เหมาะสมกับข้อมูล และการตีความผลลัพธ์โดยไม่สรุปเกินขอบเขต
การแจกแจงความน่าจะเป็นที่ Data Scientist ต้องเชี่ยวชาญ
การแจกแจงความน่าจะเป็นอธิบายว่าจุดข้อมูลกระจายตัวอย่างไรในค่าที่เป็นไปได้ ผู้สัมภาษณ์คาดหวังความชำนาญในการแจกแจงเหล่านี้เพราะเป็นพื้นฐานของการสุ่มตัวอย่าง การทดสอบ A/B และสมมติฐานของโมเดล
การแจกแจงปกติ (Gaussian) ปรากฏอยู่ทุกที่: ความคลาดเคลื่อนในการวัด ส่วนสูง คะแนนสอบ เส้นโค้งรูประฆังของมันมีศูนย์กลางที่ค่าเฉลี่ย โดย 68% ของข้อมูลอยู่ภายในหนึ่งส่วนเบี่ยงเบนมาตรฐาน 95% อยู่ภายในสองส่วนเบี่ยงเบนมาตรฐาน เมื่อขนาดตัวอย่างเกิน 30 ทฤษฎีบทขีดจำกัดกลางรับประกันว่าค่าเฉลี่ยตัวอย่างจะเป็นไปตามการแจกแจงปกติโดยไม่คำนึงถึงรูปร่างของประชากรเดิม
การแจกแจงทวินาม จำลองการทดลองสำเร็จ/ล้มเหลว Click-through rate, เหตุการณ์การแปลง และการตรวจสอบคุณภาพผ่าน/ไม่ผ่านตามรูปแบบทวินาม สำหรับการทดลอง n ครั้งที่มีความน่าจะเป็นของความสำเร็จ p ค่าคาดหวังคือ np และความแปรปรวนคือ np(1-p)
การแจกแจงปัวซอง นับเหตุการณ์ที่เกิดขึ้นน้อยในช่วงเวลาคงที่: การเข้าชมเว็บไซต์ต่อนาที ข้อบกพร่องต่อชุด การโทรต่อชั่วโมง พารามิเตอร์เดียว λ แสดงถึงทั้งค่าเฉลี่ยและความแปรปรวน เมื่อเหตุการณ์เกิดขึ้นอย่างอิสระด้วยอัตราเฉลี่ยคงที่ ปัวซองเหมาะสม
# distributions_demo.py
import numpy as np
from scipy import stats
# Normal: customer spend follows N(μ=50, σ=15)
normal_samples = stats.norm.rvs(loc=50, scale=15, size=1000)
prob_above_80 = 1 - stats.norm.cdf(80, loc=50, scale=15) # P(X > 80)
# Binomial: 100 users, 5% conversion rate
binom_samples = stats.binom.rvs(n=100, p=0.05, size=1000)
prob_at_least_10 = 1 - stats.binom.cdf(9, n=100, p=0.05) # P(X >= 10)
# Poisson: 3 support tickets per hour on average
poisson_samples = stats.poisson.rvs(mu=3, size=1000)
prob_zero_tickets = stats.poisson.pmf(0, mu=3) # P(X = 0)การแจกแจงสามแบบนี้จัดการกับสถานการณ์ในทางปฏิบัติส่วนใหญ่ ผู้สัมภาษณ์มักถามว่าการแจกแจงใดเหมาะกับบริบททางธุรกิจเฉพาะ ดังนั้นฝึกการจับคู่ปัญหาจริงกับโมเดลที่เหมาะสม
การทดสอบสมมติฐาน: กรอบการทำงานเบื้องหลัง A/B Test
การทดสอบสมมติฐานให้โครงสร้างที่เป็นทางการสำหรับการตัดสินใจจากข้อมูล กรอบการทำงานเริ่มต้นด้วยสมมติฐานว่าง (H₀) ที่แสดงถึงไม่มีผลหรือไม่มีความแตกต่าง และสมมติฐานทางเลือก (H₁) ที่แสดงถึงสิ่งที่การทดลองต้องการตรวจจับ
สมมติฐานว่างของ A/B test ทั่วไประบุว่า: "ฟีเจอร์ใหม่ไม่มีผลต่อ conversion rate" ทางเลือกอ้างว่ามีผล การทดสอบคำนวณว่าข้อมูลที่สังเกตได้จะมีโอกาสเกิดขึ้นมากน้อยเพียงใดหากสมมติฐานว่างเป็นจริง
P-value วัดปริมาณความน่าจะเป็นนี้ P-value 0.03 หมายความว่ามีโอกาส 3% ที่จะเห็นผลลัพธ์สุดขั้วเช่นนี้หากสมมติฐานว่างเป็นจริง เมื่อ p-value ต่ำกว่าระดับนัยสำคัญ (โดยทั่วไป α = 0.05) สมมติฐานว่างจะถูกปฏิเสธ
# ab_test_analysis.py
import numpy as np
from scipy import stats
# A/B test data: control vs treatment conversion rates
control_conversions = 120
control_visitors = 2000
treatment_conversions = 145
treatment_visitors = 2000
# Proportions
p_control = control_conversions / control_visitors # 0.060
p_treatment = treatment_conversions / treatment_visitors # 0.0725
# Pooled proportion under null hypothesis
p_pooled = (control_conversions + treatment_conversions) / (control_visitors + treatment_visitors)
# Standard error
se = np.sqrt(p_pooled * (1 - p_pooled) * (1/control_visitors + 1/treatment_visitors))
# Z-statistic
z_stat = (p_treatment - p_control) / se
# Two-tailed p-value
p_value = 2 * (1 - stats.norm.cdf(abs(z_stat)))
print(f"Z-statistic: {z_stat:.3f}") # Z-statistic: 1.681
print(f"P-value: {p_value:.4f}") # P-value: 0.0928ด้วย p-value 0.0928 การทดสอบนี้ไม่ปฏิเสธสมมติฐานว่างที่ α = 0.05 ความแตกต่างที่สังเกตได้อาจเป็นความแปรปรวนแบบสุ่ม ต้องการข้อมูลเพิ่มเติมหรือขนาดผลที่ใหญ่กว่าเพื่อให้ถึงนัยสำคัญทางสถิติ
ความผิดพลาดประเภท I และ II: การแลกเปลี่ยนที่ผู้สัมภาษณ์ทดสอบ
การทดสอบทางสถิติสร้างสมดุลระหว่างความผิดพลาดสองประเภท ความผิดพลาดประเภท I (false positive) เกิดขึ้นเมื่อปฏิเสธสมมติฐานว่างที่เป็นจริง ความผิดพลาดประเภท II (false negative) เกิดขึ้นเมื่อไม่ปฏิเสธสมมติฐานว่างที่เป็นเท็จ
ระดับนัยสำคัญ α ควบคุมความน่าจะเป็นของความผิดพลาดประเภท I โดยตรง การตั้ง α = 0.05 หมายถึงยอมรับโอกาส 5% ของ false positive การลด α เป็น 0.01 ลด false positive แต่เพิ่ม false negative
กำลังทางสถิติ (1 - β) วัดความน่าจะเป็นของการปฏิเสธสมมติฐานว่างที่เป็นเท็จอย่างถูกต้อง กำลังขึ้นอยู่กับขนาดผล ขนาดตัวอย่าง และระดับนัยสำคัญ มาตรฐานอุตสาหกรรมตั้งเป้า 80% กำลัง หมายความว่ามีโอกาส 20% ที่จะพลาดผลจริง
ผู้สมัครมักสับสนระหว่าง "ไม่มีความแตกต่างที่มีนัยสำคัญ" กับ "ไม่มีความแตกต่างเลย" การไม่ปฏิเสธสมมติฐานว่างไม่ได้พิสูจน์ว่าสมมติฐานว่างเป็นจริง การทดสอบอาจขาดกำลังในการตรวจจับผลขนาดเล็กแต่เป็นจริง
การคำนวณขนาดตัวอย่างสร้างสมดุลกับข้อกังวลเหล่านี้ สำหรับ A/B test ที่ตั้งเป้าเพิ่ม 2% ใน conversion (จาก 5% เป็น 7%) ด้วย 80% กำลังและ α = 0.05:
# sample_size_calculation.py
from statsmodels.stats.power import zt_ind_solve_power
# Baseline conversion: 5%, expected lift: 2 percentage points
baseline = 0.05
expected = 0.07
effect_size = (expected - baseline) / np.sqrt(baseline * (1 - baseline)) # Cohen's h
# Required sample size per group
n_per_group = zt_ind_solve_power(
effect_size=effect_size,
alpha=0.05,
power=0.80,
alternative='two-sided'
)
print(f"Sample size per group: {int(np.ceil(n_per_group))}") # ~1,570 per groupการทดสอบที่กำลังต่ำสิ้นเปลืองทรัพยากรโดยการทำการทดลองที่ไม่สามารถตรวจจับผลที่เป็นจริงได้
ช่วงความเชื่อมั่น: การวัดปริมาณความไม่แน่นอน
ช่วงความเชื่อมั่น 95% หมายความว่า: หากกระบวนการสุ่มตัวอย่างเดียวกันถูกทำซ้ำหลายครั้ง 95% ของช่วงที่สร้างขึ้นจะมีพารามิเตอร์จริง ช่วงความเชื่อมั่นสื่อสารความไม่แน่นอนได้ดีกว่าการประมาณจุดเพียงอย่างเดียว
สำหรับค่าเฉลี่ยที่มีความแปรปรวนประชากรที่ทราบ ช่วงใช้การแจกแจง z สำหรับตัวอย่างขนาดเล็กหรือความแปรปรวนที่ไม่ทราบ ใช้การแจกแจง t การแจกแจง t มีหางหนักกว่าปกติ ทำให้ช่วงกว้างขึ้นเพื่ออธิบายความไม่แน่นอนเพิ่มเติม
# confidence_intervals.py
import numpy as np
from scipy import stats
# Sample data: response times in milliseconds
response_times = np.array([245, 312, 278, 299, 256, 334, 287, 301, 265, 289])
n = len(response_times)
mean = np.mean(response_times) # 286.6
std_err = stats.sem(response_times) # Standard error of the mean
# 95% confidence interval using t-distribution (df = n-1)
t_critical = stats.t.ppf(0.975, df=n-1)
margin_of_error = t_critical * std_err
ci_lower = mean - margin_of_error
ci_upper = mean + margin_of_error
print(f"Mean: {mean:.1f}ms") # Mean: 286.6ms
print(f"95% CI: [{ci_lower:.1f}, {ci_upper:.1f}]ms") # 95% CI: [265.4, 307.8]msช่วงที่แคบกว่าบ่งชี้การประมาณที่แม่นยำกว่า ขนาดตัวอย่างขับเคลื่อนความแม่นยำ: การเพิ่ม n สี่เท่าลดขอบเขตความคลาดเคลื่อนลงครึ่งหนึ่ง
พร้อมที่จะพิชิตการสัมภาษณ์ Data Science & ML แล้วหรือยังครับ?
ฝึกฝนด้วยตัวจำลองแบบโต้ตอบ, flashcards และแบบทดสอบเทคนิคครับ
Bayesian vs Frequentist: คำถามสัมภาษณ์เกี่ยวกับปรัชญาสถิติ
ผู้สัมภาษณ์บางครั้งทดสอบความเข้าใจในกระบวนทัศน์ทางสถิติที่แข่งขันกัน สถิติ frequentist ถือว่าความน่าจะเป็นเป็นความถี่ระยะยาว: พารามิเตอร์คงที่ และข้อมูลแปรผันตลอดการทดลองซ้ำ P-value และช่วงความเชื่อมั่นมาจากประเพณีนี้
สถิติ Bayesian ถือว่าความน่าจะเป็นเป็นระดับความเชื่อ: ความรู้เบื้องต้นรวมกับข้อมูลเพื่อสร้างความเชื่อภายหลัง กรอบการทำงานนี้อนุญาตให้รวมความเชี่ยวชาญในสาขาและสร้างข้อความความน่าจะเป็นเกี่ยวกับพารามิเตอร์โดยตรง
A/B testing ใช้วิธี Bayesian มากขึ้นเพราะตอบคำถามที่ผู้มีส่วนได้ส่วนเสียถามจริง: "ความน่าจะเป็นที่ treatment B เหนือกว่า treatment A คือเท่าไร?" ไม่ใช่ "ข้อมูลนี้น่าประหลาดใจแค่ไหนถ้าไม่มีความแตกต่าง?"
# bayesian_ab_test.py
import numpy as np
from scipy import stats
# Prior: Beta(1, 1) = uniform prior for conversion rate
# Posterior: Beta(alpha + successes, beta + failures)
control_successes, control_failures = 120, 1880
treatment_successes, treatment_failures = 145, 1855
# Posterior distributions
posterior_control = stats.beta(1 + control_successes, 1 + control_failures)
posterior_treatment = stats.beta(1 + treatment_successes, 1 + treatment_failures)
# Monte Carlo estimation: P(treatment > control)
samples_control = posterior_control.rvs(100000)
samples_treatment = posterior_treatment.rvs(100000)
prob_treatment_better = np.mean(samples_treatment > samples_control)
print(f"P(treatment > control): {prob_treatment_better:.2%}") # ~95%ผลลัพธ์ Bayesian สื่อสารโดยตรง: "มีความน่าจะเป็น 95% ที่ conversion rate ของ treatment เกิน control rate" ผลลัพธ์ frequentist ต้องการการตีความที่ระมัดระวังกว่า
คำถามสัมภาษณ์ทั่วไปเกี่ยวกับการอนุมานทางสถิติ
คำถามเหล่านี้ปรากฏบ่อยในการสัมภาษณ์ data science ที่บริษัทเทคโนโลยี แต่ละคำถามทดสอบแนวคิดทางสถิติเฉพาะ
"อธิบายทฤษฎีบทขีดจำกัดกลางและทำไมมันสำคัญ"
CLT ระบุว่าค่าเฉลี่ยตัวอย่างจากประชากรใดๆ (ที่มีความแปรปรวนจำกัด) เข้าใกล้การแจกแจงปกติเมื่อขนาดตัวอย่างเพิ่มขึ้น สิ่งนี้สำคัญเพราะสมมติฐานความเป็นปกติในการทดสอบสมมติฐานใช้ได้สำหรับตัวอย่างขนาดใหญ่โดยไม่คำนึงถึงการแจกแจงพื้นฐาน ขนาดตัวอย่าง 30+ มักเพียงพอ
"P-hacking คืออะไรและจะป้องกันได้อย่างไร?"
P-hacking ทำให้อัตรา false positive เพิ่มขึ้นโดยการทดสอบสมมติฐานหลายอันจนกว่าจะพบนัยสำคัญ หรือโดยการหยุดเก็บข้อมูลเมื่อผลลัพธ์มีนัยสำคัญ กลยุทธ์ป้องกัน: ลงทะเบียนแผนการวิเคราะห์ล่วงหน้า ใช้การแก้ไขการเปรียบเทียบหลายครั้ง (Bonferroni, FDR) และกำหนดขนาดตัวอย่างก่อนเก็บข้อมูล
"เมื่อไรจะใช้ t-test เทียบกับ Mann-Whitney U test?"
T-test สมมติว่าข้อมูลมีการแจกแจงปกติ (หรือตัวอย่างขนาดใหญ่ผ่าน CLT) และเปรียบเทียบค่าเฉลี่ย Mann-Whitney U เป็นทางเลือกแบบไม่ใช้พารามิเตอร์ที่เปรียบเทียบการแจกแจงโดยไม่มีสมมติฐานความเป็นปกติ ใช้ Mann-Whitney สำหรับตัวอย่างขนาดเล็กที่มีข้อมูลไม่ปกติอย่างชัดเจนหรือเมื่อเปรียบเทียบการวัดแบบลำดับ
"จะจัดการกับการเปรียบเทียบหลายครั้งใน A/B testing อย่างไร?"
การทดสอบหลายตัวแปรทำให้ความผิดพลาดประเภท I เพิ่มขึ้น ด้วย 20 การเปรียบเทียบที่ α = 0.05 ความน่าจะเป็นของ false positive อย่างน้อยหนึ่งครั้งเกิน 60% การแก้ไข Bonferroni หาร α ด้วยจำนวนการทดสอบ ขั้นตอน Benjamini-Hochberg ควบคุมอัตราการค้นพบผิดในขณะที่รักษากำลังมากกว่า Bonferroni
Simpson's Paradox: หัวข้อโปรดของผู้สัมภาษณ์
Simpson's paradox เกิดขึ้นเมื่อแนวโน้มในข้อมูลรวมกลับทิศทางที่ระดับกลุ่มย่อย ผู้สัมภาษณ์ชอบหัวข้อนี้เพราะทดสอบการใช้เหตุผลเชิงสาเหตุ ไม่ใช่แค่กลไกทางสถิติ
ตัวอย่างคลาสสิก: โรงพยาบาล A มีอัตราการเสียชีวิตโดยรวมสูงกว่าโรงพยาบาล B แต่โรงพยาบาล A มีอัตราการเสียชีวิตต่ำกว่าสำหรับทั้งกรณีเบาและรุนแรง ความขัดแย้งเกิดขึ้นเพราะโรงพยาบาล A รักษากรณีรุนแรงมากกว่า ซึ่งมีอัตราการเสียชีวิตสูงกว่าโดยไม่คำนึงถึงคุณภาพโรงพยาบาล
# simpsons_paradox.py
import pandas as pd
# Hospital mortality data
data = {
'Hospital': ['A', 'A', 'B', 'B'],
'Severity': ['Mild', 'Severe', 'Mild', 'Severe'],
'Patients': [200, 800, 800, 200],
'Deaths': [10, 160, 48, 50]
}
df = pd.DataFrame(data)
df['Mortality'] = df['Deaths'] / df['Patients']
# Subgroup mortality
print(df[['Hospital', 'Severity', 'Mortality']])
# Hospital A: Mild 5%, Severe 20%
# Hospital B: Mild 6%, Severe 25%
# Aggregate mortality
agg = df.groupby('Hospital').agg({'Deaths': 'sum', 'Patients': 'sum'})
agg['Mortality'] = agg['Deaths'] / agg['Patients']
print(agg['Mortality'])
# Hospital A: 17%, Hospital B: 9.8%การแก้ไขต้องระบุตัวแปรกวน (ความรุนแรง) และวิเคราะห์กลุ่มย่อยแยกกัน การวิเคราะห์รวมทำให้เข้าใจผิดเมื่อสัดส่วนกลุ่มย่อยแตกต่างกัน
แนวคิดทางสถิติสำหรับ Feature Engineering
ความรู้ทางสถิติปรับปรุง feature engineering โดยตรง การเข้าใจการแจกแจงนำทางการแปลง การเข้าใจความสัมพันธ์นำทางการสร้างฟีเจอร์
Skewness วัดความไม่สมมาตรของการแจกแจง ข้อมูลที่เบ้ขวา (รายได้, ราคา) ได้ประโยชน์จากการแปลง log ที่ทำให้การแจกแจงเป็นปกติและปรับปรุงประสิทธิภาพของโมเดล ข้อมูลที่เบ้ซ้ายใช้การแปลงกำลังสองหรือเลขชี้กำลัง
ความสัมพันธ์ วัดปริมาณความสัมพันธ์เชิงเส้น ความสัมพันธ์ Pearson สมมติความเป็นปกติและความเป็นเส้นตรง ความสัมพันธ์ Spearman จัดการความสัมพันธ์ไม่เชิงเส้นแบบโมโนโทนิก ฟีเจอร์ที่มีความสัมพันธ์สูงทำให้เกิดปัญหา multicollinearity ในโมเดลเชิงเส้น ดังนั้นมักจะตัดออกหนึ่งตัว
Outlier ส่งผลต่อค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานอย่างไม่สมส่วน สถิติที่แข็งแกร่ง (มัธยฐาน, IQR) ทนต่ออิทธิพลของ outlier การตัดสินใจ: ลบ จำกัด หรือแปลง outlier ขึ้นอยู่กับว่าพวกมันแสดงถึงข้อผิดพลาดหรือค่าสุดขั้วที่แท้จริง
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้แนวคิดเหล่านี้กับโมเดล machine learning ดู คู่มือสัมภาษณ์ feature engineering และสำรวจ โมดูลฝึกฝนสถิติเชิงอนุมาน
เริ่มฝึกซ้อมเลย!
ทดสอบความรู้ของคุณด้วยตัวจำลองสัมภาษณ์และแบบทดสอบเทคนิคครับ
สิ่งที่ทำให้ผู้สมัครโดดเด่นในคำถามสถิติ
ความสามารถทางสถิติในการสัมภาษณ์ data science ต้องการมากกว่าคำจำกัดความจากตำรา ผู้สมัครที่แข็งแกร่งแสดงความสามารถเหล่านี้:
- เชื่อมโยงสถิติกับผลลัพธ์ทางธุรกิจ: วางกรอบผลลัพธ์ A/B test ในแง่ของผลกระทบต่อรายได้หรือการมีส่วนร่วมของผู้ใช้ ไม่ใช่แค่ p-value
- รู้สมมติฐาน: ทุกการทดสอบมีเงื่อนไข (ความเป็นอิสระ ความเป็นปกติ ความแปรปรวนเท่ากัน) และผู้สมัครควรระบุเมื่อเงื่อนไขเหล่านั้นอาจล้มเหลว
- วัดปริมาณความไม่แน่นอน: การประมาณจุดโดยไม่มีช่วงความเชื่อมั่นหรือช่วงที่น่าเชื่อถือทำให้ผู้มีส่วนได้ส่วนเสียคาดเดาเรื่องความน่าเชื่อถือ
- รับรู้ข้อจำกัดของความเป็นเหตุเป็นผล: ข้อมูลเชิงสังเกตแสดงความสัมพันธ์ และผู้สมัครควรอธิบายว่าการออกแบบการทดลองใดจะสร้างความเป็นเหตุเป็นผล
- เลือกการทดสอบที่ถูกต้อง: จับคู่ประเภทข้อมูล (ต่อเนื่อง vs หมวดหมู่) ขนาดตัวอย่าง และคำถามวิจัยกับวิธีการทางสถิติที่เหมาะสม
- สื่อสารผลลัพธ์อย่างชัดเจน: แปลข้อค้นพบทางสถิติเป็นคำแนะนำที่ดำเนินการได้ซึ่งผู้มีส่วนได้ส่วนเสียที่ไม่ใช่ด้านเทคนิคสามารถเข้าใจและดำเนินการได้
คุณหาบั๊กใน Data Science & ML เจอไหม
โค้ดจริงหนึ่งชิ้น บั๊กที่ซ่อนอยู่หนึ่งจุด วันละหนึ่งครั้ง ลองได้โดยไม่ต้องมีบัญชี

เขียนโดย
Anthony Fillion-Mailletผู้ก่อตั้ง SharpSkill
เป็นนักพัฒนาฟูลสแตกมากว่า 10 ปี ดูแล SharpSkill และรับผิดชอบทุกสิ่งที่เผยแพร่ที่นี่
อัปเดตเมื่อ 21 สิงหาคม 2569
แชร์
บทความที่เกี่ยวข้อง

Computer Vision ด้วย PyTorch ในปี 2026: CNN, Transfer Learning และคำถามสัมภาษณ์
Computer vision ด้วย PyTorch: สร้าง CNN ตั้งแต่เริ่มต้น, ประยุกต์ใช้ transfer learning กับโมเดล pretrained และเตรียมตัวสำหรับการสัมภาษณ์เทคนิค

LangChain สำหรับ Data Scientist ปี 2026: LLM, Agent และคำถามสัมภาษณ์
เชี่ยวชาญ LangChain 0.3 สำหรับ data science: LCEL chain, รูปแบบ RAG, ReAct agent, ระบบ memory และคำถามสัมภาษณ์สำหรับตำแหน่ง ML engineering

MLOps ในปี 2026: MLflow, Model Registry และคำถามสัมภาษณ์เชิงเทคนิค
คำถามสัมภาษณ์ MLOps ครอบคลุมวงจรชีวิต ML การติดตามการทดลองด้วย MLflow การเลื่อนระดับใน model registry รูปแบบการนำไปใช้งาน การเฝ้าติดตาม drift และ system design สำหรับปี 2026 พร้อมโค้ด Python และคำตอบ