Accuracy explode các model khi sử dụng features selection

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 47 - 51)

Bảng 3.2: Độ chính xác của các mô hình khi training với dữ liệu lựa chọn thuộc tính. STT Tên thuật toán Độ chính xác

1 LR - Hồi quy tuyến tính 0.850450(0.149300)

2 KNN - K láng giềng 0.825225(0.140217)

3 Tree - Cây quyết định 0.720721(0.115372)

4 NB -Navie Bayes 0.176577(0.070386) 5 SVM -Máy véc tơ hỗ trợ 0.852252(0.150491) 6 RF - Rừng ngẫu nhiên 0.854054(0.150253) 7 AD - AdBooting 0.675676(0.150318) 8 GD -GDBooting 0.839640(0.142491) 9 BG - GradientBoosting 0.821622(0.144414)

3.3. Lựa chọn và tối ưu hóa tham số mô hình

Theo như việc thăm dò data với các thuật toán ta thấy có ba thuật toán ổn định và độ chính xác tốt nhất là Logistic regression, random forest và Gradient Boosting. Tập trung vào ba thuật toán chính này để tìm cách tối ưu chúng sao cho model đạt được độ chính xác tốt nhất có thể. Logistic Regression: Trong mô hình của thuật toán này có một số tham số chúng ta cần phải tối ưu bao gồm penalty, C, solver [4]. Trong đó ý nghĩa của mỗi tham số như sau: Penalty: ‘l1’, ‘l2’, ‘elasticnet’, ‘none’, default=’l2’ Được sử dụng để xác định các tiêu chuẩn được sử dụng trong tối ưu loss. Các solver ‘newton-cg’, ‘sag’ and ‘lbfgs’ chỉ hỗ trợ phương thức l2. ‘elasticnet’ is chỉ được hỗ trợ ‘saga’ solver. Nếu bằng

toán. C: float number, default=1.0 Tham số regularization nghịch đảo - Một biến điều khiển duy trì sửa đổi cường độ của regularization bằng cách đặt ở vị trí nghịch đảo với bộ điều chỉnh Lambda. solver‘newton- cg’, ‘lbfgs’, ‘liblinear’, ‘sag’, ‘saga’, default=’lbfgs’ Thuật toán sử dụng trong bài toán tối ưu hóa. Đối với các dữ liệu nhỉ, ‘liblinear’ là lựa chọn tốt nhất, còn ‘sag’ và ‘saga’ sử dụng nhanh trên các dữ liệu. Đối với các vấn đề muti class, chỉ ‘newton-cg’, ‘sag’, ‘saga’ and ‘lbfgs’ xử lý được.

Bộ param cho thuật toán Logistic Regression là [4] ’C’: 10, ’penalty’: ’l2’, ’solver’: ’newton-cg’. Và độ chính xác đạt được là 71%.

Random Forest: Các param quan trọng của thuật toán Random forest bao gồm [4]: n−estimatorsint, default=100 Số lượng cây trong rừng.

maxdepthint, default=None Độ sâu tối đa của cây. Nếu None, thì các nút được mở rộng cho đến khi tất cả các lá hoặc cho đến khi tất cả các chứa ít hơn dataset. max−f eatures“auto”, “sqrt”, “log2”, int or float, default=”auto” Số lượng các feature cần xem xét khi tìm kiếm sự phân chia tốt nhất: Nếu int number, sau đó xem xét số lượng feature tại mỗi lần phân chia. Nếu float, thì max − f eatures là một phân số và các feature làm tròn (max−f eatures * n−f eatures) được xem xét ở mỗi lần phân chia. Nếu “auto”, thì, nếumax−f eatures= sqrt(n−f eatures). Nếu là “sqrt”, thì max−f eatures = sqrt(n−f eatures) (giống như của auto auto). Nếu log2, thì max −f eatures = log2(n−f eatures). Nếu None, thì max−f eatures = n−f eatures.

Bộ param cho thuật toán RandomForest Classifier [4] ’max−depth’: 4, ’max−f eatures’: ’sqrt’, ’n−estimators’: 100. Và độ chính xác đạt được là 79%.

Gradient Boosting: Bộ param quan trọng của Gradient Boosting bao gồm [4]: n−estimatorsint, default=100 Số lượng các lần thúc đẩy để

thực hiện. Tăng cường độ dốc khá mạnh để giải quyết vấn đề over-fitting nên một số lớn thường mang lại hiệu suất tốt hơn.learning−ratef loat, default=0.1 Tỷ lệ học tập thu hẹp sự đóng góp của mỗi cây bằng cách

learning−rate. Có sự đánh đổi giữa learning−ratevàn−estimators. subsamplefloat, default=1.0 Tỷ lệ sample được sử dụng để fit với từng từng nhóm. Nếu nhỏ hơn 1.0, điều này dẫn đến Stochastic Gradient Boosting. subsample tương tác với tham số n−estimators. Chọn mẫu phụ nhỏ hơn1.0 dẫn đến giảm phương sai và tăng bias.

Bộ param cho thuật toán GradientBoosting Classifier ’learning - rate’: 0.1, ’max - depth’: 4, ’n - estimators’: 10, ’subsample’: 1.0. Và độ chính xác đạt được là 77%.

1. Best score: 0.841492 using LogisticRegression ’C’: 1.0, ’penalty’: ’l2’, ’solver’: ’newton − cg’ Score LogisticRegression Data Test= 0.8641304347826086.

2. Best score: 0.838270 using KNeighborsClassifier ’metric’: ’euclidean’, ’n−neighbors’: 19, ’weights’: ’uniform’ Score KNeighborsClassifier Data Test= 0.8804347826086957.

3. Best score: 0.838270 using SVM ’C’: 50, ’gamma’: ’auto’, ’kernel’: ’poly’ Score SVM Data Test= 0.8804347826086957

4. Best score: 0.839892 using DecisionTreeClassifier ’criterion’: ’gini’, ’maxdepth’: 2, ’maxfeatures’: ’log2’, ’min−samples−leaf’: 10,

’min−samples−split’: 2 Score DecisionTreeClassifier Test=0.8804347826086957. 5. Best score: 0.840432 using RandomForestClassifier ’max −depth’:

4, ’max −f eatures’: ’sqrt’, ’n− estimators’: 10 Score Random- ForestClassifier Data Test= 0.8804347826086957.

3.4. Kết quả và đánh giá

Việc thực hiện dự đoán được em xây dựng thành web demo cho thuận tiện. Sau khi lựa chọn thuật toán, người dùng chọn tập test hoặc dữ liệu cần dự đoán để upload lên. Rồi chọn sử dụng tất cả feature hay sử dụng lựa chọn feature ảnh hưởng nhất. Khi chạy, hệ thống sẽ đưa ra điểm trung bình môn học của dữ liệu cần dự đoán và xếp loại tương ứng.

Hình ảnh 3.3 và 3.4 là kết quả dự đoán của các bạn: Trần Thế Anh, Vũ Tuấn Anh và Nguyễn Minh Lâm với việc sử dụng all feature và feature selection tương ứng. Kết quả với tất cả các dữ liệu test cũng được hiển thị theo 10 dòng 1, ở đây e chỉ đưa ra một số bạn vì màn hình không hiển thị hết. Khi cần có thể kéo các thanh cuộn để biết. Rõ ràng ta thấy khi sử dụng feature selection, kết quả chính xác hơn.

Hình 3.3: Kết quả dự đoán điểm của một số học sinh khi sử dụng all feature

Từ một tập dữ liệu data thu thập được một cách khách quan có thể dễ dàng xác định được các feature đặc biệt ảnh hưởng đến thành tích học tập của học sinh sau một chuỗi các bước thiết kế feature, thu thập thông tin chuẩn hóa dữ liệu xây dựng model. Cuối cùng xây dựng model dự đoán được năng lực học tập của học sinh. Từ đó ta có thể ứng dụng

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 47 - 51)

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

(62 trang)