1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Khoa công nghệ thông tin toán Ứng dụng và thống kê cho công nghệ thông tin

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khoa Công Nghệ Thông Tin Toán Ứng Dụng Và Thống Kê Cho Công Nghệ Thông Tin
Tác giả Trần Lê Bảo Duy
Người hướng dẫn GV. Phan Thị Phương Uyên, GV. Vũ Quốc Hoàng, GV. Nguyễn Văn Quang Huy, GV. Nguyễn Ngọc Toàn
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại project
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 17
Dung lượng 292,12 KB

Nội dung

Dự đoán trên tập kiểm tra: Sử dụng mô hình đã được huấn luyện để dự đoán giá trị của biến mục tiêu y_test trên tập kiểm tra X_test và lưu vào 1 biến u_pred.. Yêu cầu 2b: Tìm ra đặc trưng

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN

TOÁN ỨNG DỤNG VÀ THỐNG KÊ CHO CÔNG NGHỆ THÔNG TIN

|GIÁO VIÊN HƯỚNG DẪN|

GV Phan Thị Phương Uyên

GV Vũ Quốc Hoàng

GV Nguyễn Văn Quang Huy

GV Nguyễn Ngọc Toàn

TRẦN LÊ BẢO DUY | 22127089 | 22CLC03

PROJECT 3: LINEAR REGRESSION

Trang 2

Mục lục

Tổng quan 3

Giới thiệu 3

Thông tin thành viên 3

Danh mục công việc 3

Thư viện sử dụng: 4

Mô tả các hàm 4

Yêu cầu 1: 4

Yêu cầu 2a: 5

Yêu cầu 2b: 5

Yêu cầu 2c: 7

Phân tích khám phá dữ liệu 9

Yêu cầu 1: 9

Yêu cầu 2a: 14

Yêu cầu 2b: 15

Yêu cầu 2c: 16

Các nguồn dữ liệu 17

Trang 3

Tổng quan

Giới thiệu

Trong đồ án cá nhân lần này, sinh viên được yêu cầu tìm hiểu các yếu tố ảnh hưởng đến thành tích học tập của sinh viên (Academic Student Performance Index) Các yếu tố ảnh hưởng có thể là số giờ học tập/nghiên cứu, hoạt động ngoại khóa, số giờ ngủ, số bài kiểm tra mẫu đã luyện tập Quy mô: Cá nhân

Ngôn ngữ: Python

Thông tin thành viên

Tên: Trần Lê Bảo Duy

Mã số Sinh Viên: 22127089

Email: tlbduy22@clc.fitus.edu.vn

Danh mục công việc

2a Huấn luyện 1 lần duy nhất cho 5 đặc trưng trên cho toàn

bộ tập huấn luyện (`train.csv`)

100%

Thể hiện công thức cho mô hình hồi quy (tính y(Student Performance) theo 5 đặc trưng

100%

Báo cáo 1 kết quả trên tập kiểm tra (test.csv) cho mô hình vừa huấn luyện được

100%

2b Thử nghiệm trên toàn bộ (5) đặc trưng đề bài cung cấp 100%

Sử dụng k-fold Cross Validation (tối thiểu k=5) để tìm ra đặc trưng tốt nhất

100%

Báo cáo 5 kết quả tương ứng cho 5 mô hình từ k-fold Cross Validation (lấy trung bình)

100%

2c Xây dựng m mô hình khác nhau (tối thiểu 3), đồng thời

khác mô hình ở 2a và 2b

100%

Tìm ra mô hình tốt nhất trong m mô hình mà sinh viên xây dựng/thiết kế

100%

Thể hiện công thức cho mô hình hồi quy tốt nhất mà sinh viên tìm được

100%

Bảng 1: Bảng danh mục các công việc

Trang 4

Thư viện sử dụng:

1 Pandas: Thư viện mạnh mẽ để xử lý và phân tích dữ liệu trong Python Nó cung cấp các cấu trúc

dữ liệu như DataFrame giúp làm việc với dữ liệu có cấu trúc hoặc dữ liệu dạng bảng dễ dàng [1] Trong đồ án này, thư viện Pandas chủ yếu được sử dụng để:

- Đọc dữ liệu từ các tệp mẫu để huấn luyện và kiểm tra mô hình

- Chuyển đổi kiểu dữ liệu cho phù hợp với mô hình- trong đây chuyển Extracurricular Activities từ Boolean về dạng số nguyên cho phù hợp

- Lọc và chọn các cột cụ thể từ DataFrame để tạo ra các ma trận đặc trưng

- Tạo bảng kể quả để dễ dàng phân tích các chỉ số tương ứng với từng đặc trưng

2 Scikit-learn: Thư viện phổ biến cho học máy trong Python Nó cung cấp các công cụ để xây dựng

và đánh giá các mô hình học máy, như Linear Regression (hồi quy tuyến tính), cùng với các công cụ khác như KFold (gập chéo K lần) và cross_val_score (điểm số với kiểm định chéo) [2]

3 Numpy: Thư viện đã được sử dụng ở cả trong đồ án 1 và 2 Numpy cung cấp khả năng làm việc với mảng đa chiều (ndarray) và các hàm toán học [3]

4 Seaborn: Thư viện trực quan hóa dữ liệu Có khả năng vẽ biểu đồ thống kê dựa trên Matplotlib Seaborn dễ sử dụng và phù hợp khi cần tạo các biểu đồ thống kê phức tạp, phù hợp với số lượng thuộc tính nhiều như trong đồ án này [4]

5 Matplotlib: Thư viện cơ bản để vẽ biểu đồ trong Python Nó cung cấp các công cụ để tạo các loại biểu đồ khác nhau, từ biểu đồ đơn giản đến phức tạp [5]

6 PolynomialFeatures (Scikit-learn): Thuộc sklearn.preprocessing Công cụ để tạo ra các đặc trưng đa thức từ dữ liệu gốc, tạo ra ma trận tính năng mới bao gồm tất cả các tổ hợp đa thức của các tính năng có bậc nhỏ hơn hoặc bằng bậc đã chỉ định [6]

7 Mean Absolute Error (MAE): Một trong các chỉ số để đánh giá độ chính xác của mô hình học máy bằng cách tính trung bình của độ lệch tuyệt đối giữa giá trị dự đoán và giá trị thực tế [7]

Mô tả các hàm

Yêu cầu 1:

1 Kiểm tra kích thước dữ liệu: In số lượng mẫu và đặc trưng của tập huấn luyện và kiểm tra.

2 Thông tin tổng quan: info() hiển thị cấu trúc dữ liệu, bao gồm số lượng cột, kiểu dữ liệu, và giá

trị không null

3 Kiểm tra giá trị thiếu: isnull().sum() đếm số lượng giá trị thiếu trong mỗi cột.

Trang 5

4 Biểu đồ hộp (Box plot): Phát hiện giá trị ngoại lai trong các đặc trưng của tập huấn luyện.

5 Biểu đồ thanh (Bar plot): Hiển thị ảnh hưởng của hoạt động ngoại khóa đến chỉ số hiệu suất.

6 Biểu đồ phân tán (Scatter plot): Thể hiện mối quan hệ giữa số giờ học và chỉ số hiệu suất.

6 Biểu đồ nhiệt (Heatmap): Hiển thị mối tương quan giữa các đặc trưng trong tập huấn luyện.

Yêu cầu 2a:

1 Khởi tạo mô hình hồi quy tuyến tính: tạo đối tượng hồi quy tuyến tính bằng hàm

LinearRegression() từ thư viện scikit-learn

2 Huấn luyện mô hình trên tập huấn luyện: huấn luyện mô hình bằng hàm fit(): thực hiện tính

toán tối ưu hóa các tham số θ0 và θ1, phương thức này trả về một model

(Intercept): Đây là giá trị chặn của mô hình hồi quy tuyến tính, hay còn gọi θ0

(Coefficient): Đây là hệ số của các đặc trưng (features) trong mô hình, hay còn gọi là θ.

Sau khi tìm được Intercept và Coeficient từ đối tượng, ta dựng được công thức hồi quy tuyến tính: Y= θ0+ θ1x1+ θ2x2+ θ3x3+ θ4x4+ θ5x5

3 Dự đoán trên tập kiểm tra:

Sử dụng mô hình đã được huấn luyện để dự đoán giá trị của biến mục tiêu (y_test) trên tập kiểm tra (X_test) và lưu vào 1 biến u_pred

4 Tính toán Mean Absolute Error (MAE):

Hàm mean_absolute_error được sử dụng để tính MAE, là trung bình của giá trị tuyệt đối của sai số giữa giá trị thực (y_test) và giá trị dự đoán (y_pred) MAE cung cấp một cách đo lường tổng quát về

độ chính xác của mô hình, thể hiện bằng đơn vị giống như biến mục tiêu

Yêu cầu 2b:

Tìm ra đặc trưng tốt nhất cho mô hình hồi quy tuyến tính đơn giản nhằm dự đoán "Performance Index" của sinh viên dựa trên các yếu tố khác nhau như số giờ học, điểm trước đó, hoạt động ngoại khóa, số giờ ngủ, và số lượng đề mẫu đã luyện tập:

1 Đọc dữ liệu từ các tệp CSV:

Sử dụng `pd.read_csv()` để đọc dữ liệu huấn luyện từ tệp `train.csv` và dữ liệu kiểm tra từ tệp

`test.csv`

2 Chuẩn bị dữ liệu:

Đảm bảo rằng đặc trưng "Extracurricular Activities" là kiểu số nguyên Nếu không phải là số nguyên, ta chuyển đổi cột này thành kiểu số bằng cách sử dụng astype(int)

Trang 6

Xác định các tập dữ liệu huấn luyện X_train, y_train và kiểm tra X_test, y_test Các đặc trưng được chọn là các cột trong bảng dữ liệu, và biến mục tiêu là "Performance Index"

3 Thiết lập danh sách các đặc trưng và biến results để lưu trữ kết quả:

Danh sách các đặc trưng features được xác định trước để dễ dàng lặp qua và thử nghiệm

4 Sử dụng KFold với shuffle=True:

Tạo đối tượng KFold để chia dữ liệu thành 5 phần (n_splits=5) và xáo trộn dữ liệu trước khi trộn (shuffle=True)

5 Thử nghiệm từng đặc trưng:

Với mỗi đặc trưng trong danh sách, một mô hình hồi quy tuyến tính LinearRegression được huấn luyện trên đặc trưng đó

Đoạn code sử dụng cross_val_score với phương pháp KFold để tính điểm MAE (Mean Absolute Error) thông qua cross-validation và sau đó lưu trữ giá trị MAE trung bình cho mỗi đặc trưng vào biến results

6 Tạo bảng kết quả:

Kết quả được lưu trữ trong DataFrame result_df, với cột "Feature" là tên của đặc trưng và cột

"MAE" là giá trị MAE trung bình đã được làm tròn

7 Chọn đặc trưng tốt nhất:

Đặc trưng có MAE nhỏ nhất được chọn là đặc trưng tốt nhất best_feature Đặc trưng này được in ra màn hình

8 Huấn luyện mô hình với đặc trưng tốt nhất và dự đoán trên tập kiểm tra:

Mô hình hồi quy tuyến tính được huấn luyện với đặc trưng tốt nhất, sau đó sử dụng mô hình này để

dự đoán giá trị "Performance Index" trên tập kiểm tra y_pred

MAE trên tập kiểm tra được tính và in ra

9 Công thức hồi quy tuyến tính với đặc trưng tốt nhất:

Hệ số chặn θ0 và hệ số góc θcủa mô hình được tính và in ra, cùng với công thức hồi quy tuyến tính tổng quát

10 Huấn luyện lại mô hình với đặc trưng tốt nhất:

Tạo một mô hình hồi quy tuyến tính mới best_model

Huấn luyện mô hình này trên toàn bộ tập huấn luyện X_train chỉ với đặc trưng tốt nhất best_feature, tức là cột có tên của đặc trưng tốt nhất

Trang 7

11 Dự đoán trên tập kiểm tra:

Sử dụng mô hình vừa được huấn luyện để dự đoán giá trị "Performance Index" cho các mẫu trong tập kiểm tra X_test Kết quả dự đoán được lưu trong y_pred

12 Tính toán MAE trên tập kiểm tra:

Tính toán độ lỗi trung bình tuyệt đối (MAE) giữa giá trị thực y_test và giá trị dự đoán y_pred trên tập kiểm tra Kết quả MAE này cho biết mức độ sai số của mô hình khi dự đoán trên dữ liệu kiểm tra

13 Công thức hồi quy tuyến tính với đặc trưng tốt nhất:

Lấy hệ số chặn θ0 và hệ số góc θcủa mô hình

In ra công thức hồi quy tuyến tính dưới dạng y = θ0+ θ * best_feature, trong đó best_feature là tên của đặc trưng tốt nhất

Yêu cầu 2c:

Thiết kế ba mô hình hồi quy tuyến tính khác nhau để dự đoán "Performance Index" của sinh viên:

1 Giải thích mô hình:

Mô hình 1: Sử dụng hai đặc trưng "Hours Studied" và "Previous Scores" đã được chuẩn hóa.

Chuẩn hóa giúp đưa các đặc trưng về cùng một thang đo để mô hình không bị lệch bởi các giá trị có đơn vị khác nhau

Mô hình 2: Sử dụng bình phương của đặc trưng "Hours Studied" Điều này có thể giúp mô hình

nắm bắt được mối quan hệ phi tuyến tính giữa số giờ học và "Performance Index"

Mô hình 3: Sử dụng sản phẩm giữa hai đặc trưng "Previous Scores" và "Sample Question Papers

Practiced" Sản phẩm này có thể cho thấy sự tương tác giữa việc học và luyện tập đề mẫu

Tìm ra mô hình tốt nhất dựa trên MAE (Mean Absolute Error) thông qua k-fold Cross Validation (k=5) Đây là phần tiếp theo trong quá trình thiết kế và đánh giá các mô hình đã được trình bày trước đó:

2 Sử dụng k-fold Cross Validation để đánh giá các mô hình:

Đối với mỗi mô hình trong danh sách models, đoạn code sử dụng hàm cross_val_score để tính toán MAE thông qua cross-validation với 5 lần gập (k=5)

Điểm số MAE được tính bằng cách sử dụng tham số scoring='neg_mean_absolute_error' trong hàm cross_val_score, sau đó lấy giá trị trung bình của tất cả các lần gập

MAE của từng mô hình được lưu trữ trong dictionary `results` với mô tả của mô hình làm khóa

Trang 8

3 Báo cáo kết quả:

Đoạn code in ra kết quả MAE cho từng mô hình, giúp dễ dàng so sánh hiệu suất của chúng

4 Chọn mô hình có MAE thấp nhất:

Sử dụng hàm min để tìm mô hình có MAE nhỏ nhất, tức là mô hình dự đoán chính xác nhất theo tiêu chí MAE

Mô hình tốt nhất được in ra màn hình với mô tả của nó

5 Lấy mô tả và mô hình tốt nhất:

Dựa trên kết quả từ phần trước, mô hình tốt nhất (best_model_desc) đã được xác định

Đoạn code sử dụng list comprehension để tìm và gán mô tả, mô hình, và tập dữ liệu tương ứng với

mô hình tốt nhất từ danh sách models Kết quả được gán vào các biến my_best_model_desc, my_best_model, và X_train_best_feature

6 Huấn luyện lại mô hình tốt nhất:

Sau khi đã xác định được mô hình tốt nhất và tập dữ liệu đặc trưng tương ứng, đoạn code tiếp tục huấn luyện lại mô hình này trên toàn bộ tập huấn luyện (X_train_best_feature, y_train)

Điều này đảm bảo rằng mô hình được huấn luyện trên toàn bộ dữ liệu trước khi được sử dụng để dự đoán hoặc kiểm tra

Chuẩn bị đặc trưng tương ứng trên tập kiểm tra:

Dựa trên mô hình tốt nhất (best_model_desc), đoạn code kiểm tra xem mô hình sử dụng đặc trưng nào và chuẩn bị dữ liệu tương ứng trên tập kiểm tra (X_test_best_feature):

o Mô hình 1: Nếu mô hình tốt nhất là "Mô hình 1" (sử dụng 2 đặc trưng đã chuẩn

hóa), dữ liệu kiểm tra cũng cần được chuẩn hóa bằng bộ chuẩn hóa scaler

o Mô hình 2: Nếu mô hình tốt nhất là "Mô hình 2" (sử dụng bình phương của đặc

trưng "Hours Studied"), dữ liệu kiểm tra cần được tính bình phương

o Mô hình 3: Nếu mô hình tốt nhất là "Mô hình 3" (sử dụng sản phẩm giữa "Previous

Scores" và "Sample Question Papers Practiced"), dữ liệu kiểm tra cần được tính toán sản phẩm của hai đặc trưng này

Dự đoán trên tập kiểm tra:

Sau khi đã chuẩn bị xong đặc trưng tương ứng, đoạn code sử dụng mô hình tốt nhất (my_best_model) để dự đoán giá trị mục tiêu (y_pred_test) trên tập kiểm tra (X_test_best_feature)

Tính toán MAE trên tập kiểm tra:

Trang 9

MAE được tính toán giữa giá trị thực (y_test) và giá trị dự đoán (y_pred_test), để đánh giá độ chính xác của mô hình tốt nhất trên tập kiểm tra

Kết quả MAE được in ra để hiển thị hiệu suất của mô hình

Phân tích khám phá dữ liệu

Yêu cầu 1:

Hình 1: Biểu đồ hộp

Trang 10

Phân Tích biểu đồ hộp:

Hours Studied, Extracurricular Activities, Sleep Hours, Sample Question Papers Practiced:

o Các đặc trưng này có giá trị nhỏ hơn rất nhiều so với Previous Scores Điều này làm

cho các hộp của chúng trông nhỏ và gần sát nhau ở phía dưới biểu đồ

o Các hộp đều có khoảng cách hẹp, cho thấy sự phân bố của dữ liệu trong những đặc trưng này tương đối tập trung, không có nhiều biến động

o Không có giá trị ngoại lai (outliers) trong các đặc trưng này

Previous Scores:

o Đây là đặc trưng có giá trị lớn hơn nhiều so với các đặc trưng khác, với các giá trị chủ yếu nằm trong khoảng từ 40 đến 100

o Hộp của Previous Scores chiếm phần lớn diện tích trên biểu đồ, cho thấy sự biến

động lớn trong giá trị của đặc trưng này

o Không có giá trị ngoại lai (outliers) nào xuất hiện

Kết Luận:

Previous Scores có độ biến động lớn hơn so với các đặc trưng khác và chiếm ưu thế trên

biểu đồ

 Các đặc trưng khác có giá trị nhỏ và phân bố tương đối tập trung, không có ngoại lai rõ rệt

Trang 11

Hình 2: biểu đồ cột.

Nhận Xét biểu đồ cột:

1 Phân bố dữ liệu:

o Dữ liệu được phân bố thành 2 cột ứng với việc tham gia và không tham gia hoạt động ngoại khóa

o Trục dọc thể hiện Performance Index của từng cột

2 Xu hướng:

o Chỉ số thành tích (Performance Index) trung bình giữa hai nhóm có tham gia và

không tham gia hoạt động ngoại khóa gần như tương đương nhau

o Sự khác biệt về chỉ số thành tích giữa hai nhóm là rất nhỏ, cho thấy rằng việc tham gia hoạt động ngoại khóa có thể không có tác động đáng kể đến chỉ số thành tích của học sinh.Có thể có các yếu tố khác (chẳng hạn như các hoạt động ngoại khóa, giấc ngủ, hoặc các yếu tố cá nhân khác) ảnh hưởng đến chỉ số hiệu suất ngoài số giờ học

Kết Luận:

Trang 12

Hoạt động ngoại khóa (Extracurricular Activities) không có ảnh hưởng rõ rệt đến Chỉ số thành tích (Performance Index) của học sinh Điều này có thể ám chỉ rằng yếu tố này không phải là một

biến quan trọng trong việc dự đoán thành tích học tập của học sinh

Hình 3: Biểu đồ phân tán

Nhận Xét biểu đồ phân tán:

3 Phân bố dữ liệu:

o Dữ liệu được phân bố thành các cột dọc tương ứng với các giá trị khác nhau của

Hours Studied.

o Mỗi cột dọc biểu diễn chỉ số hiệu suất của các học sinh có cùng số giờ học, nhưng hiệu suất lại trải rộng từ thấp đến cao (20 đến 100)

4 Xu hướng:

o Biểu đồ cho thấy rằng số giờ học không có mối quan hệ tuyến tính rõ ràng với chỉ số hiệu suất Các giá trị chỉ số hiệu suất gần như phân bố đều trong các cột, cho thấy rằng dù học sinh có học bao nhiêu giờ, thì hiệu suất của họ vẫn có thể dao động lớn

o Có thể có các yếu tố khác (chẳng hạn như các hoạt động ngoại khóa, giấc ngủ, hoặc các yếu tố cá nhân khác) ảnh hưởng đến chỉ số hiệu suất ngoài số giờ học

Ngày đăng: 04/12/2024, 16:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w