Data preparation
- ทำ categorical data ให้อยู่ในform เดียวกัน เช่น ใช้พิมพ์เล็กให้หมด หรือ replace space with _
EDA
- check ก่อนว่า target varible เป็น long tail หรือเปล่า (มี outlier / ไม่กระจายตัวแบบ standard deviation)
- take log → ให้ rangeแคบลง (outlierเล็กลง)
- log1p → log + 1 (กันไม่ให้เป็น log ซึ่ง = inf)
- เช่น log1p0 = log(0 + 1) = log1
Validation framework
- split data into train validation test
Linear regression
- y = wx + b
- ซึ่งเรายุบให้เหลือแค่ wx ได้ (เพราะเราจะใช้ normal equationในการแก้ LR)
- wx + b = 1*b + w1x1 + w2x2 + …… (แทน b = w0 แทน)
- ยุบเหลือ → wx
- เราเลยเพิ่ม feature แรก เป็น 1 ตามจำนวน feature เพื่อ → 1 * b
ones = np.ones(X.shape[0])
[OUT] array([1., 1., 1., 1., 1., 1., 1., 1., 1.])
X = np.column_stack([ones, X])
[OUT]
[[1, x00, x01],
[1, x10, x11],
[1, x20, x21]]