Professional Documents
Culture Documents
Bai2 Nhom3
Bai2 Nhom3
Bước 1: Phân chia dữ liệu thành tập huấn luyện và tập kiểm tra
Đầu tiên, chúng ta cần tải dữ liệu từ tệp CSV cho cả rượu đỏ và rượu trắng. Sau đó, chúng ta
sẽ thực hiện phân chia dữ liệu thành tập huấn luyện và tập kiểm tra.
Sau đó, chúng ta sẽ thực hiện phân chia dữ liệu thành tập huấn luyện và tập kiểm tra.
Code python:
import pandas as pd
from sklearn.model_selection import train_test_split
# Phân chia dữ liệu thành tập huấn luyện và tập kiểm tra cho rượu đỏ
red_train_data, red_test_data = train_test_split(red_wine_data, test_size=0.1,
random_state=42)
# Phân chia dữ liệu thành tập huấn luyện và tập kiểm tra cho rượu trắng
white_train_data, white_test_data = train_test_split(white_wine_data, test_size=0.1,
random_state=42)
# Số lượng cụm k
k=7
# Huấn luyện và đánh giá mô hình k-means cho rượu đỏ
red_accuracy, red_confusion = train_kmeans(red_train_data, red_test_data, k)
# In ra kết quả
print("Red Wine - K-Means Accuracy:", red_accuracy)
print("Red Wine - Confusion Matrix:\n", red_confusion)
print("\nWhite Wine - K-Means Accuracy:", white_accuracy)
print("White Wine - Confusion Matrix:\n", white_confusion)
Trong đoạn mã trên:
Chúng ta định nghĩa hàm train_kmeans để huấn luyện mô hình k-means và đánh giá hiệu suất
của nó.
Sau đó, chúng ta thực hiện huấn luyện và đánh giá mô hình k-means cho cả dữ liệu rượu đỏ và
rượu trắng.
Kết quả được in ra bao gồm độ chính xác và ma trận nhầm lẫn của mô hình trên cả hai loại
rượu.
Bước 3: Tạo mô hình hồi quy và đánh giá hiệu suất
Trong bước này, chúng ta sẽ huấn luyện một mô hình hồi quy tuyến tính trên tập huấn luyện và
đánh giá hiệu suất của nó trên tập kiểm tra. Chúng ta sẽ lặp lại quy trình này và tính toán các
chỉ số đánh giá giống như đã làm trong Bước 2.
Hãy tiếp tục với việc thực hiện mô hình hồi quy tuyến tính và đánh giá hiệu suất của nó trên tập
kiểm tra.
Trước tiên, chúng ta cần import các thư viện cần thiết và định nghĩa hàm để huấn luyện và
đánh giá mô hình hồi quy tuyến tính. Sau đó, chúng ta sẽ thực hiện lặp lại quy trình này và tính
toán các chỉ số đánh giá.
from sklearn.linear_model import LinearRegression
# Huấn luyện và đánh giá mô hình hồi quy tuyến tính cho rượu đỏ
red_accuracy, red_confusion = train_linear_regression(red_train_data, red_test_data)
# Huấn luyện và đánh giá mô hình hồi quy tuyến tính cho rượu trắng
white_accuracy, white_confusion = train_linear_regression(white_train_data, white_test_data)
# In ra kết quả
print("Red Wine - Linear Regression Accuracy:", red_accuracy)
print("Red Wine - Confusion Matrix:\n", red_confusion)
print("\nWhite Wine - Linear Regression Accuracy:", white_accuracy)
print("White Wine - Confusion Matrix:\n", white_confusion)
Trong đoạn mã trên:
Chúng ta định nghĩa hàm train_linear_regression để huấn luyện mô hình hồi quy tuyến tính và
đánh giá hiệu suất của nó.
Sau đó, chúng ta thực hiện huấn luyện và đánh giá mô hình hồi quy tuyến tính cho cả dữ liệu
rượu đỏ và rượu trắng.
Kết quả được in ra bao gồm độ chính xác và ma trận nhầm lẫn của mô hình trên cả hai loại
rượu.
Bước 4: Trực quan hóa kết quả
Chúng ta có thể sử dụng các biểu đồ và đồ thị để trực quan hóa kết quả từ cả hai mô hình k-
means và hồi quy tuyến tính. Các biểu đồ này có thể bao gồm biểu đồ phân tán để so sánh
giữa nhãn dự đoán và nhãn thực tế, biểu đồ cột để hiển thị tỷ lệ dự đoán chính xác của mỗi
nhóm chất lượng rượu, và các biểu đồ khác để thể hiện các biến quan trọng đối với chất lượng
rượu.
Hãy tiếp tục với việc trực quan hóa kết quả từ cả hai mô hình.
Để trực quan hóa kết quả từ cả hai mô hình, chúng ta có thể sử dụng các biểu đồ phù hợp như
biểu đồ phân tán và biểu đồ cột. Dưới đây là một ví dụ về cách trực quan hóa dữ liệu:
import matplotlib.pyplot as plt
# Hàm để vẽ biểu đồ phân tán và biểu đồ cột
def plot_results(true_labels, predicted_labels, model_name):
# Vẽ biểu đồ phân tán
plt.figure(figsize=(10, 5))
plt.scatter(range(len(true_labels)), true_labels, color='blue', label='True Labels', alpha=0.5)
plt.scatter(range(len(predicted_labels)), predicted_labels, color='red', label='Predicted
Labels', alpha=0.5)
plt.title(f"{model_name} - Scatter Plot")
plt.xlabel("Sample Index")
plt.ylabel("Quality")
plt.legend()
plt.show()
# Vẽ biểu đồ cột
plt.figure(figsize=(8, 5))
plt.hist([true_labels, predicted_labels], color=['blue', 'red'], label=['True Labels', 'Predicted
Labels'], alpha=0.7)
plt.title(f"{model_name} - Histogram")
plt.xlabel("Quality")
plt.ylabel("Frequency")
plt.legend()
plt.show()
# Trực quan hóa kết quả cho mô hình k-means trên dữ liệu rượu đỏ
plot_results(red_test_data['quality'], red_test_labels, "K-Means (Red Wine)")
# Trực quan hóa kết quả cho mô hình hồi quy tuyến tính trên dữ liệu rượu đỏ
plot_results(red_test_data['quality'], red_linear_predictions, "Linear Regression (Red Wine)")
Trong đoạn mã trên:
Chúng ta định nghĩa hàm plot_results để vẽ biểu đồ phân tán và biểu đồ cột của kết quả dự
đoán.
Sau đó, chúng ta sử dụng hàm này để trực quan hóa kết quả từ cả hai mô hình: mô hình k-
means và mô hình hồi quy tuyến tính trên dữ liệu rượu đỏ.
Bạn có thể áp dụng cùng phương pháp cho dữ liệu rượu trắng và thực hiện so sánh kết quả
giữa hai loại rượu.
Kết quả: