Gom cụm các học sinh theo trung bình các môn

Một phần của tài liệu (LUẬN văn THẠC sĩ) sử dụng một số thuật toán học máy để dự đoán thành tích học tập của học sinh (Trang 33 - 35)

cũng là thông tin hết sức quan trọng để dự đoán. Bên cạnh đó vẫn có trên dưới 100 bạn học sinh để trống trường này.

Một điểm nữa, để xem xét điểm TBCM của các em được phân bố như thế nào, thực hiện tách label thành 4 lớp (hình 2.8). Và chúng ta nhận thấy rằng hầu hết điểm TBCM của dữ liệu khảo sát nằm ở nhóm 3 với điểm từ 7 đến 8.5. Nhìn trên biểu đồ 2.8 có đến hơn 400 em tập trung ở nhóm này. Thực tế thì đây không phải là một dữ liệu tốt cho việc xây dựng mô hình dự đoán vì dữ liệu quá tập trung vào một nhóm đầu ra.

y = np.where(df[’TBCM’] < 4, 0, np.where(df[’TBCM’] < 5.5, 1, np.where(df[’TBCM’] < 7, 2, np.where(df[’TBCM’] < 8.5, 3, 4))))

del df[’TBCM’] X = df

2.3.2. Lựa chọn đặc trưng, chuẩn hóa dữ liệu

Một số kỹ thuật chuẩn hóa dữ liệu là

2.3.2.1. Chuẩn hoá theo phân phối chuẩn

Một phương pháp thường được sử dụng là đưa mỗi đặc trưng về dạng một phân phối chuẩn có kỳ vọng là 0 và phương sai là 1. Công thức

chuẩn hóa là

x0i = xi−x¯i

σi

với x¯i, σi lần lượt là kỳ vọng và độ lệch chuẩn của đặc trưng đó xét trên toàn bộ dữ liệu huấn luyện. [2].

2.3.2.2. Chuẩn hoá về cùng norm

Một lựa chọn khác cũng được sử dụng rộng rãi là biến vector dữ liệu thành vector có độ dài Euclid bằng một. Việc này có thể được thực hiện bằng cách chia mỗi vector đặc trưng cho `2 norm của nó [2].

x0 = x

kxk2

Sau khi chuẩn hóa và xử lý dữ liệu thô ở từng feature như trên, chúng ta có một bản dữ liệu mới. Em thực hiện thay đổi tên các cột theo cách gọi tắt tiếng anh cho ngắn gọn và dễ hiểu.

Bản thân các biến trong một số cột là các giá trị không phải là số mà các biến phân loại chúng ta cần mã hóa nó thành các vector để đưa vào model cho phù hợp. Có rất nhiều phương pháp để hỗ trợ giải quyết vấn đề này như đánh label, sử dụng kĩ thuật Label Encoding, One-Hot Encoding, Embedding. Điều này được hỗ trợ bởi python rất dễ dàng. Sau khi đưa các giá trị thành các vector bước tiếp theo cần làm là scaler tất cả các feature data về cùng một không gian dữ liệu để đảm bảo phản ánh sự tương quan cao nhất giữa các feature.

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) X_scaled = X_std * (max - min) + min

2.3.2.3. Lựa chọn đặc trưng

Dùng thuật toán Lasso [1] để đánh giá trọng số tức độ quan trọng của từng feature ảnh hưởng tới đầu ra. Ta được kết quả như sau (hình 2.9).

ls_coef = linear_model.Lasso(alpha=0.005).fit(df, y).coef_ plt.figure(figsize=(20,10))

sb.lineplot(X.columns, ls_coef) plt.xticks(rotation=90)

plt.show()

Một phần của tài liệu (LUẬN văn THẠC sĩ) sử dụng một số thuật toán học máy để dự đoán thành tích học tập của học sinh (Trang 33 - 35)

Tải bản đầy đủ (PDF)

(62 trang)