PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ

Một phần của tài liệu Báo cáo cuối kỳ môn khai thác dữ liệu khám phá tri thức (Trang 31 - 37)

Source code :

import pandas as pd

from sklearn.cluster import DBSCAN

from sklearn.preprocessing import StandardScaler

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

file_path = ' /content/preprocessed_customer_data.csv '

df = pd.read_csv(file_path)

selected_features = [

"Year_Birth",

"Education", "Income" ]

X = df[ selected_features ].values

X = StandardScaler( ).fit_transform( X )

dbscan = DBSCAN( eps = 0.5 , min_samples = 2 ) df[ 'cluster' ] = dbscan.fit_predict(X)

fig = .figure( figsize = ( 10, 8 ) )plt

ax = .add_subplot( 111, projection = ' 3d ' )fig

scatter = ax.scatter(

X[:, 0],

X[:, 1],

X[:, 2],

c = df[ 'cluster' ], cmap=' viridis ',

s = 50 )

ax.set_xlabel( selected_features [ 0 ] )

ax.set_ylabel( selected_features [ 1 ] )

ax.set_zlabel( selected_features [ 2 ] )

ax.set_title( 'DBSCAN Clustering in 3D' )

legend1 = ax.legend(

*scatter.legend_elements( ),

title = "Clusters"

)

ax.add_artist( legend1 )

plt.show( )

Thuộc tính để huấn luyện mô hình :

➢Year_Birth

■ Lý do chọn :

● Xác định độ tuổi khách hàng.

● Độ tuổi có liên hệ với hành vi mua sắm, sở thích sản phẩm và mức độ chi tiêu.

● Phân loại các cụm dựa trên độ tuổi khác nhau.

Trợ giúp hiểu rõ hơn về khách hàng trong từng nhóm độ tuổi.

➢Education

■ Lý do chọn :

● Phản ảnh sự hiểu biết và ảnh hưởng đến quyết định mua sắm.

◆ Nếu trình độ học vấn cao thì sẽ hiểu biết rộng và sâu hơn

về sản phẩm và thị trường.

● Phân loại hiểu rõ hơn về nhóm khách hàng từ khác biệt tri thức và quyết định mua sắm.

➢Income

■ Lý do chọn :

● Thu nhập là một yếu tố quan trọng ảnh hưởng đến khả năng chi tiêu.

◆ Thu nhập cao có khả năng chi nhiều hơn và ngược lại.

● Phân loại theo thu nhập giúp hỗ trợ đưa ra chiến lược kinh doanh phù hợp .

Huấn luyện mô hình :

Source code :

dbscan = DBSCAN( eps = 0.5, min_samples = 2 )

df['cluster'] = dbscan.fit_predict( X )

Phân tích :

● `eps` là tham số quyết định bán kính (hoặc khoảng cách) tối đa giữa hai điểm để xem xét chúng là hàng xóm. Nếu khoảng cách giữa hai điểm nhỏ hơn hoặc bằng eps, chúng được coi là hàng xóm của nhau. Điều này cũng là bán kính tìm kiếm cho mỗi điểm

để xác định các điểm trong cùng một cụm.

`min_samples` là số lượng điểm tối thiểu cần có trong một khu

vực với bán kính eps để tạo thành một cụm. Nếu trong một khu vực có ít hơn min_samples điểm, nó sẽ được coi là điểm nhiễu. min_samples quyết định độ dày tối thiểu của các cụm.

Chỉ số đo :

Source code :

# Chỉ số Silhouette

silhouette_avg = silhouette_score( X, df[ ' cluster ' ] )

print( f ' Silhouette Score: { silhouette_avg } ' )

# Chỉ số Davies-Bouldin

db_index = davies_bouldin_score( X, df [ 'cluster' ] )

print( f ' Davies-Bouldin Index : { db_index }' )

Giá trị trả về :

■ Silhouette Score: 0.1332

● Silhouette Score ⊂ [ -1 : 1 ]

● Phân tích :

0.1332 ~ 0 : vì gần giá trị 0 nên có sự chồng chéo giữa các

cụm.

0.1332 > 0 : vì giá trị dương nên có thể các điểm trong mỗi

cụm tương đối gần với nhau hơn so với điểm trong các cụm lân cận.

0.1332 < 1 : vì giá trị không quá cáo, có thể rằng cụm có

thể không phải là rất đồng nhất.

■ Davies-Bouldin Index: 1.8451

● Davies-Bouldin Index đo độ tách biệt giữa các cụm.

● Phân tích :

◆ Hệ quy chiếu : 1.85

➢Kết quả trả về là 1.8451 có thể được xem là một kết quả tương đối tốt. Tuy nhiên, dựa vào ngữ cảnh và mục tiêu sử dụng. Tương đối giá trị này vẫn là khá tốt.

Trực quan hoá kết quả :

Source code :

# Trực quan hóa trong biểu đồ scatter plot 3D

fig = plt.figure( figsize = ( 10, 8 ) )

ax = fig.add_subplot( 111, projection = ' 3d ' )

scatter = ax.scatter(

X[:, 0], X[:, 1], X[:, 2],

c = df[ 'cluster' ], cmap = ' viridis ',

s = 50 )

ax.set_xlabel(selected_features[ 0 ] )

ax.set_ylabel(selected_features[ 1 ] )

ax.set_zlabel(selected_features[ 2 ] )

ax.set_title( ' DBSCAN Clustering in 3D ' )

# Hiển thị thanh màu

legend1 = ax.legend *scatter( .legend_elements( ), title = "Clusters" ) ax.add_artist( legend1 )

plt.show( )

Biểu đồ :

Đánh Giá Cụm

1. Tách Biệt giữa các Cụm: Các cụm có vẻ tách biệt rõ ràng theo không gian 3D,

điều này cho thấy thuật toán DBSCAN đã phân biệt được các nhóm dữ liệu có đặc điểm tương tự nhau một cách hiệu quả. Sự tách biệt này là quan trọng trong việc xác định các phân khúc khách hàng khác nhau.

2. Cụm Nhiễu (-1): Sự xuất hiện của các điểm nhiễu (được gán nhãn là -1 và thường

được hiển thị bằng màu đen) cho thấy có những quan sát không theo mô hình mật

độ chính của dữ liệu. Trong một bối cảnh tiếp thị, điều này có thể chỉ ra những khách hàng với hành vi mua sắm đặc biệt, có thể cần được xem xét riêng.

3. Mật Độ Cụm: Một số cụm có mật độ cao, nghĩa là có nhiều điểm dữ liệu gần

nhau, điều này có thể chỉ ra sự tập trung cao của khách hàng với đặc điểm tương

tự. Trong khi đó, các cụm có mật độ thấp hoặc phân tán có thể chỉ ra các phân khúc khách hàng ít rõ ràng hơn.

Đánh Giá Dữ Liệu

1. Phân Bố Dữ Liệu: Phân bố của các điểm dữ liệu có thể cho thấy mối quan hệ giữa

các biến số. Ví dụ, nếu trục z là thu nhập, thì sự phân bố theo trục này có thể phản ánh mức thu nhập đa dạng của khách hàng.

2. Phân Tích Đa Chiều: Biểu đồ cho thấy mối quan hệ đa chiều giữa các biến, nhưng

để đánh giá chính xác hơn, cần phải hiểu rõ cách các biến này tương tác với nhau

và ảnh hưởng đến mô hình tiêu dùng.

Ứng Dụng Thực Tiễn

1. Nhận Diện Phân Khúc: Các cụm được nhận diện có thể giúp xác định các phân

khúc khách hàng cụ thể, mà từ đó có thể phát triển các chiến lược tiếp thị nhắm mục tiêu.

2. Phân Tích Hành Vi: Sự phân loại này có thể giúp phân tích hành vi tiêu dùng dựa

trên đặc điểm cá nhân và định hình các chương trình khuyến mãi hoặc sản phẩm mới.

Một phần của tài liệu Báo cáo cuối kỳ môn khai thác dữ liệu khám phá tri thức (Trang 31 - 37)

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

(47 trang)