



















Preview text:
ỦY BAN NHÂN DÂN TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA TOÁN ỨNG DỤNG
TIỂU LUẬN CUỐI KỲ ĐỀ TÀI:
ỨNG DỤNG KHAI PHÁ DỮ LIỆU TRONG PHÂN TÍCH BỘ
DỮ LIỆU GIÁ NHÀ VÀ DỰ ĐOÁN GIÁ NHÀ
Học phần: Nhập môn khoa học dữ liệu
Giảng viên hướng dẫn: TS.Lương Thị Hồng Cẩm
Sinh viên thực hiện: Nguyễn Thị Lan Anh- 3125580005
Ngành: Khoa học dữ liệu Lớp: DDU 1251 Khóa học: 2025-2029 1 MỤC LỤC
PHẦN MỞ ĐẦU ......................................................................................................... 4
1.1. Lời Mở Đầu .......................................................................................................... 4
1.2. Lý Do Chọn Đề Tài / Tính Cấp Thiết của Đề Tài .................................................. 4
1.3. Mục Đích và Mục Tiêu Nghiên Cứu ..................................................................... 5
1.4. Đối Tượng và Phạm Vi Nghiên Cứu của Đề Tài ................................................... 5
1.5. Phương Pháp Nghiên Cứu ..................................................................................... 6
1.6. Tổng quát nội dung chính của bài ......................................................................... 6
1.7. Ý Nghĩa Lý Luận và Thực Tiễn của Đề Tài .......................................................... 7
PHẦN NỘI DUNG ...................................................................................................... 7
1.1 A.Trích Xuất Dữ Liệu ............................................................................................ 7
1. Import các packages cần thiết như: numpy, pandas, matplotlib,
#scikit - learn,… và đọc dữ liệu từ file csv. (pd.read_csv) ................................ 7
2. Khảo sát các dòng đầu và cuối của dữ liệu. (.head(), .tail()) ............... 8
3. Xuất thông tin cơ bản về dữ liệu (.info()) .......................................... 9
4. Trích xuất các đặc điểm thống kê mô tả của bộ dữ liệu (.describe()).. 9
5. Xuất các cột của dữ liệu (.columns) ................................................ 10
6. Xuất thông tin về kích cỡ của bộ dữ liệu (.shape) ............................ 10
7. Khảo sát số giá trị của mỗi cột (.nunique()) ..................................... 10
1.2 B. Làm Sạch Dữ Liệu .......................................................................................... 11
1. Bỏ những cột không cần thiết trong phân tích (.drop… inplace = True,
axis =1), sau đó xuất lại kết quả đặc điểm thống kê mô tả của bộ dữ liệu sau
khi dữ liệu được tinh giản. ............................................................................. 11
2. Kiểm tra xem mỗi cột có bao nhiêu dữ liệu thiếu (.isnull().sum()) và
xử lý. ............................................................................................................. 13 2
3. Kiểm tra xem mỗi dòng có bao nhiêu dữ liệu trùng lặp
(.duplicated().sum()) và xử lý........................................................................ 13
1.3 C.Trực Quan Hóa Dữ Liệu ................................................................................... 14
1. Liệu diện tích (area) có ảnh hưởng đến giá nhà không? ................... 14
2.Mối quan hệ giữa giá trị bất động sản (price) và mức độ hoàn thiện
nội thất (furnishingstatus) .............................................................................. 16
3.Mối quan hệ giữ giá trị bất động sản (price) và số phòng ngủ
(bedrooms), phòng tắm (bathrooms) .............................................................. 18
4. Mối tương quan giữa giá trị bất động sản (price) và sự hiện diện của
phòng khách (guestroom) ............................................................................... 20
5. Mối tương quan giữa cấu trúc nhà (số tầng và tầng hầm) (stories and
basement) với giá bán (price) ......................................................................... 21
6. Mối quan hệ giữa hệ thống nước nóng (hotwaterheating) và điều hòa
tới giá nhà (airconditioning) ........................................................................... 24
7. Mối quan hệ giữa đường chính (mainroad), khu vực ưu tiên (prefarea),
bãi đậu xe (parking) với giá trị bất động sản (price) ....................................... 29
1.4.D. Ứng Dụng Học Máy ........................................................................................ 33
1.5. E. Đưa ra kết luận ............................................................................................... 35
1.6 F. Tài liệu tham khảo ........................................................................................... 36 3 PHẦN MỞ ĐẦU 1.1. Lời Mở Đầu
“Tổ ấm” luôn là nguồn cảm hứng vô tận, nơi sưởi ấm tâm hồn giữa nhịp sống hối hả.
Giữa những bộn bề, đôi khi ta chỉ khao khát được trở về chốn bình yên, nơi có thể gác
lại mọi lo toan và sống thật với chính mình. Một ngôi nhà ấm áp không chỉ là nơi che
mưa nắng, mà còn là không gian nuôi dưỡng cảm xúc và gắn kết yêu thương.
Thế nhưng, để chọn được một ngôi nhà phù hợp với sở thích, nhu cầu và điều kiện cá
nhân lại không hề dễ dàng. Trong bối cảnh thị trường bất động sản liên tục biến động,
hàng loạt dự án với thiết kế, mức giá và tiện ích đa dạng được tung ra, khiến người
mua đứng trước vô vàn lựa chọn. Cùng với đó, khối lượng dữ liệu khổng lồ về giá trị,
đặc điểm và xu hướng thị trường ngày càng gia tăng. Chính vì vậy, khai thác dữ liệu
(Data Mining) đã trở thành công cụ đắc lực, giúp các nhà đầu tư và doanh nghiệp bất
động sản phân tích, đánh giá và đưa ra quyết định đầu tư thông minh hơn.
Đề tài "Ứng Dụng Khai Phá Dữ Liệu trong Phân Tích Bộ Dữ Liệu về giá nhà"
không chỉ tập trung vào các kỹ thuật phân tích dữ liệu, mà còn khám phá cách mà
những phân tích này có thể hỗ trợ việc ra quyết định trong kinh doanh, nâng cao khả
năng cạnh tranh và đáp ứng nhu cầu ngày càng cao của khách hàng. Thông qua việc
ứng dụng các mô hình học máy và thống kê, chúng ta có thể rút ra những xu hướng và
dự đoán chính xác hơn về các phân lớp nhà ở và nhu cầu khác, từ đó giúp các chủ đầu
tư có sự quyết định chính xác đối với thị trường nhà ở.
1.2. Lý Do Chọn Đề Tài / Tính Cấp Thiết của Đề Tài
Đề tài này được chọn do thị trường nhà ở đang phải đối mặt với nhiều thách
thức, như quản lý chi phí đầu tư và tối ưu hóa trải nghiệm theo nhu cầu của khách
hàng. Khi nhu cầu khách hàng tăng cao, việc hiểu hành vi của họ và các yếu tố ảnh 4
hưởng đến quyết định xây dựng trở nên quan trọng. Khai thác dữ liệu cung cấp công
cụ phân tích mạnh mẽ, giúp các doanh nghiệp điều chỉnh chiến lược giá và cải thiện
dịch vụ. Dự đoán chính xác giá trị bất động sản không chỉ giúp cho khách hàng lựa
chọn một “tổ ấm” lý tưởng mà còn giúp các chủ đầu tư và doanh nghiệp tối ưu hóa chi
phí đầu tư và dự đoán được các thiết kế theo xu hướng hiện nay.
1.3. Mục Đích và Mục Tiêu Nghiên Cứu
Mục Đích Nghiên Cứu: Tìm hiểu và ứng dụng các phương pháp khai
thác dữ liệu để phân tích bộ dữ liệu giá nhà ở và dự đoán giá nhà, nhằm nâng cao hiệu
quả kinh doanh cho các doanh nghiệp và chủ đầu tư.
Mục Tiêu Tổng Quát: Đánh giá cách mà khai thác dữ liệu có thể cải
thiện khả năng dự đoán giá nhà ở và tối ưu hóa các dịch vụ trong thị trường bất động sản.
Mục Tiêu Cụ Thể:
1. Phân Tích Các Yếu Tố Ảnh Hưởng: Xác định và phân tích các
yếu tố liên đến giá nhà ở như diện tích, số phòng, nội thất, hệ thống nóng lạnh,..
2. Áp Dụng Mô Hình Dự Đoán: Sử dụng các mô hình thống kê và
máy học để dự đoán giá nhà trong tương lai dựa trên dữ liệu hiện có.
3. Đánh Giá Hiệu Quả Mô Hình: Đánh giá độ chính xác và tính khả thi của
các mô hình đã áp dụng trong thực tiễn.
1.4. Đối Tượng và Phạm Vi Nghiên Cứu của Đề Tài
Đối Tượng Nghiên Cứu: Các yếu tố liên quan đến như diện tích, số phòng, nội
thất, hệ thống nóng lạnh,.. 5
Phạm Vi Nghiên Cứu: Nghiên cứu sẽ tập trung vào các bộ dữ liệu giá nhà ở trong
một khoảng thời gian xác định
1.5. Phương Pháp Nghiên Cứu
Phương Pháp Nghiên Cứu Lý Thuyết:
Phân Tích – Tổng Hợp Lý Thuyết: Xem xét các lý thuyết và nghiên cứu trước
đó về khai thác dữ liệu trong thị trường bất động sản để xây dựng nền tảng cho nghiên cứu.
Phương Pháp Mô Hình Hóa: Tạo ra các mô hình dự đoán giá nhà ở dựa trên các
yếu tố đã được phân tích.
Phương Pháp Nghiên Cứu Thực Tiễn:
Khảo Sát và Thu Thập Dữ Liệu: Sử dụng các công cụ khảo sát và nguồn dữ liệu
công khai để thu thập thông tin liên quan như diện tích, số phòng, nội thất, hệ thống nóng lạnh,..
(Nguồn dữ liệu: Housing.csv )
Phân Tích Dữ Liệu Thực Tế: sử dụng các công cụ và phần mềm
phân tích dữ liệu như Python, R; thực hiện các bước khai phá dữ
liệu để phân tích, trình bày kết quả từ bộ dữ liệu và đưa ra các kết luận có giá trị.
1.6. Tổng quát nội dung chính của bài
1. A Trích xuất dữ liệu
2. B Làm sạch dữ liệu
3. C Trực quan hóa dữ liệu
4. D Ứng dụng học máy
5. E Đưa ra kết luận 6
1.7. Ý Nghĩa Lý Luận và Thực Tiễn của Đề Tài
Nghiên cứu này làm phong phú lý thuyết về khai thác dữ liệu trong thị trường
bất động sản và cung cấp ứng dụng thực tiễn hữu ích. Kết quả giúp các nhà đầu tư, các
doanh nghiệp cải thiện chiến lược xây dựng, tối ưu hóa dịch vụ và nâng cao sự hài
lòng của khách hàng, đồng thời tiết kiệm chi phí và tăng cường khả năng cạnh tranh PHẦN NỘI DUNG
Sinh viên: Nguyễn Thị Lan Anh- 3125580005
1.1 A.Trích Xuất Dữ Liệu
1. Import các packages cần thiết như: numpy, pandas, matplotlib, #scikit -
learn,… và đọc dữ liệu từ file csv. (pd.read_csv) import pandas as pd
data = pd.read_csv("Housing.csv") print(data)
price area bedrooms bathrooms stories mainroad guestroom basement \
0 13300000 7420 4 2 3 yes no no
1 12250000 8960 4 4 4 yes no no
2 12250000 9960 3 2 2 yes no yes
3 12215000 7500 4 2 2 yes no yes
4 11410000 7420 4 1 2 yes yes yes
.. ... ... ... ... ... ... ... ...
540 1820000 3000 2 1 1 yes no yes
541 1767150 2400 3 1 1 no no no
542 1750000 3620 2 1 1 yes no no
543 1750000 2910 3 1 1 no no no
544 1750000 3850 3 1 2 yes no no
hotwaterheating airconditioning parking prefarea furnishingstatus 0 no yes 2 yes furnished 1 no yes 3 no furnished 2 no no 2 yes semi-furnished 3 no yes 3 yes furnished 7 4 no yes 2 no furnished .. ... ... ... ... ... 540 no no 2 no unfurnished 541 no no 0 no semi-furnished 542 no no 0 no unfurnished 543 no no 0 no furnished 544 no no 0 no unfurnished [545 rows x 13 columns]
2. Khảo sát các dòng đầu và cuối của dữ liệu. (.head(), .tail()) import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0)
print("5 dòng đầu tiên:") print(x.head())
print("\n5 dòng cuối cùng:") print(x.tail()) 5 dòng đầu tiên:
area bedrooms bathrooms stories mainroad guestroom basement \ price 13300000 7420 4 2 3 yes no no 12250000 8960 4 4 4 yes no no
12250000 9960 3 2 2 yes no yes
12215000 7500 4 2 2 yes no yes
11410000 7420 4 1 2 yes yes yes
hotwaterheating airconditioning parking prefarea furnishingstatus price
13300000 no yes 2 yes furnished
12250000 no yes 3 no furnished
12250000 no no 2 yes semi-furnished
12215000 no yes 3 yes furnished
11410000 no yes 2 no furnished 5 dòng cuối cùng:
area bedrooms bathrooms stories mainroad guestroom basement \ price 1820000 3000 2 1 1 yes no yes 1767150 2400 3 1 1 no no no 1750000 3620 2 1 1 yes no no 1750000 2910 3 1 1 no no no 1750000 3850 3 1 2 yes no no
hotwaterheating airconditioning parking prefarea furnishingstatus 8 price
1820000 no no 2 no unfurnished
1767150 no no 0 no semi-furnished
1750000 no no 0 no unfurnished 1750000 no no 0 no furnished
1750000 no no 0 no unfurnished
3. Xuất thông tin cơ bản về dữ liệu (.info()) import pandas as pd
x = pd.read_csv('Housing.csv')
print("=== Thông tin cơ bản về dữ liệu trong Housing.csv ===") x.info()
=== Thông tin cơ bản về dữ liệu trong Housing.csv ===
RangeIndex: 545 entries, 0 to 544
Data columns (total 13 columns):
# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 price 545 non-null int64 1 area 545 non-null int64
2 bedrooms 545 non-null int64
3 bathrooms 545 non-null int64 4 stories 545 non-null int64
5 mainroad 545 non-null object
6 guestroom 545 non-null object
7 basement 545 non-null object
8 hotwaterheating 545 non-null object
9 airconditioning 545 non-null object
10 parking 545 non-null int64
11 prefarea 545 non-null object
12 furnishingstatus 545 non-null object dtypes: int64(6), object(7) memory usage: 55.5+ KB
4. Trích xuất các đặc điểm thống kê mô tả của bộ dữ liệu (.describe()) import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) h=x.describe() print(h)
area bedrooms bathrooms stories parking
count 545.000000 545.000000 545.000000 545.000000 545.000000 9
mean 5150.541284 2.965138 1.286239 1.805505 0.693578
std 2170.141023 0.738064 0.502470 0.867492 0.861586
min 1650.000000 1.000000 1.000000 1.000000 0.000000
25% 3600.000000 2.000000 1.000000 1.000000 0.000000
50% 4600.000000 3.000000 1.000000 2.000000 0.000000
75% 6360.000000 3.000000 2.000000 2.000000 1.000000
max 16200.000000 6.000000 4.000000 4.000000 3.000000
5. Xuất các cột của dữ liệu (.columns) import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) he=x.columns print(he)
Index(['area', 'bedrooms', 'bathrooms', 'stories', 'mainroad', 'guestroom',
'basement', 'hotwaterheating', 'airconditioning', 'parking', 'prefarea',
'furnishingstatus'], dtype='object')
6. Xuất thông tin về kích cỡ của bộ dữ liệu (.shape) import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) li=x.shape
print(f'Kích cỡ của bộ dữ liệu',li)
Kích cỡ của bộ dữ liệu (545, 12)
7. Khảo sát số giá trị của mỗi cột (.nunique()) import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) be=x.nunique() print(be) area 284 bedrooms 6 bathrooms 4 stories 4 mainroad 2 guestroom 2 basement 2 hotwaterheating 2 10 airconditioning 2 parking 4 prefarea 2 furnishingstatus 3 dtype: int64
1.2 B. Làm Sạch Dữ Liệu
1. Bỏ những cột không cần thiết trong phân tích (.drop… inplace = True, axis =1),
sau đó xuất lại kết quả đặc điểm thống kê mô tả của bộ dữ liệu sau khi dữ liệu được tinh giản. import pandas as pd # Đọc dữ liệu
df = pd.read_csv('Housing.csv', index_col=0)
# Giữ lại những cột giá trị ảnh hưởng tới giá trị bất động sản
cols_to_keep = ['area', 'bedrooms', 'bathrooms', 'stories',
'parking','mainroad', 'guestroom', 'basement', 'hotwaterheating',
'airconditioning','prefarea', 'furnishingstatus']
df = df[cols_to_keep].reset_index()
# Thống kê mô tả các cột số
print("Đặc điểm thống kê mô tả của bộ dữ liệu tinh giản:") print(df.describe())
# Thống kê giá trị phân loại
print("\nTần suất các biến phân loại:")
for col in df.select_dtypes(include='object').columns:
print(f"\n{col}:\n", df[col].value_counts())
Đặc điểm thống kê mô tả của bộ dữ liệu tinh giản:
price area bedrooms bathrooms stories \
count 5.450000e+02 545.000000 545.000000 545.000000 545.000000
mean 4.766729e+06 5150.541284 2.965138 1.286239 1.805505
std 1.870440e+06 2170.141023 0.738064 0.502470 0.867492
min 1.750000e+06 1650.000000 1.000000 1.000000 1.000000
25% 3.430000e+06 3600.000000 2.000000 1.000000 1.000000
50% 4.340000e+06 4600.000000 3.000000 1.000000 2.000000
75% 5.740000e+06 6360.000000 3.000000 2.000000 2.000000
max 1.330000e+07 16200.000000 6.000000 4.000000 4.000000 parking count 545.000000 mean 0.693578 11 std 0.861586 min 0.000000 25% 0.000000 50% 0.000000 75% 1.000000 max 3.000000
Tần suất các biến phân loại: mainroad: mainroad yes 468 no 77 Name: count, dtype: int64 guestroom: guestroom no 448 yes 97 Name: count, dtype: int64 basement: basement no 354 yes 191 Name: count, dtype: int64 hotwaterheating: hotwaterheating no 520 yes 25 Name: count, dtype: int64 airconditioning: airconditioning no 373 yes 172 Name: count, dtype: int64 prefarea: prefarea no 417 yes 128 Name: count, dtype: int64 furnishingstatus: furnishingstatus semi-furnished 227 12 unfurnished 178 furnished 140 Name: count, dtype: int64
2. Kiểm tra xem mỗi cột có bao nhiêu dữ liệu thiếu (.isnull().sum()) và xử lý. import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) c=x.isnull().sum()
print("Số lượng dữ liệu thiếu trong mỗi cột") Print©
Số lượng dữ liệu thiếu trong mỗi cột area 0 bedrooms 0 bathrooms 0 stories 0 mainroad 0 guestroom 0 basement 0 hotwaterheating 0 airconditioning 0 parking 0 prefarea 0 furnishingstatus 0 dtype: int64
3. Kiểm tra xem mỗi dòng có bao nhiêu dữ liệu trùng lặp (.duplicated().sum()) và xử lý. import pandas as pd
x = pd.read_csv('Housing.csv', index_col=0) n = x.duplicated().sum()
print("Số dòng trùng lặp trong bộ dữ liệu là:", n)
Số dòng trùng lặp trong bộ dữ liệu là: 6 13
1.3 C.Trực Quan Hóa Dữ Liệu
1. Liệu diện tích (area) có ảnh hưởng đến giá nhà không? import seaborn as sns plt.figure(figsize=(8,6))
sns.regplot(data=x, x="area", y="price", scatter_kws={"alpha":0.5}, line_kws={"color":"red"})
plt.title("Đường hồi quy giữa diện tích và giá nhà", fontsize=14)
plt.xlabel("Diện tích (sq.ft)") plt.ylabel("Giá nhà") plt.grid(alpha=0.3) plt.show() *Nhận xét:
- Diện tích (area) có mối quan hệ tuyến tính dương với giá nhà (price) (Càng tăng diện
tích, giá nhà càng có xu hướng tăng)
- Nhưng có một số điểm ngoại lệ (outliers) — nhà có diện tích lớn nhưng giá thấp,
hoặc diện tích nhỏ nhưng giá cao.
Như vây, diện tích của một bất động sản là một trong những yếu tố quan trọng nhất
ảnh hưởng đến giá trị của nó. Thông thường, giá nhà sẽ tăng theo diện tích, vì nhà lớn
hơn thường cung cấp nhiều không gian sống hơn. Diện tích cũng quyết định khả năng 14
sử dụng và tính linh hoạt của bất động sản. Một ngôi nhà có diện tích lớn hơn thường
có nhiều phòng hơn và cung cấp nhiều tiện nghi, do đó, người mua thường sẵn sàng
chi trả nhiều hơn cho những bất động sản này. plt.figure(figsize=(10,5)) plt.subplot(1,2,1)
sns.histplot(x["area"], bins=20, kde=True, color="#4A90E2")
plt.title("Phân bố diện tích nhà") plt.subplot(1,2,2)
sns.histplot(x["price"], bins=20, kde=True, color="#F5A623")
plt.title("Phân bố giá nhà") plt.tight_layout() plt.show() * Nhận xét:
- Phân bố diện tích thường lệch phải (nhiều nhà có diện tích nhỏ – trung bình, ít nhà diện tích rất lớn).
- Giá nhà cũng có xu hướng tương tự, nghĩa là đa số nhà nằm trong khoảng giá trung
bình, một số ít cực kỳ đắt.
Điều này gợi ý rằng dữ liệu không hoàn toàn phân bố đều. 15
2.Mối quan hệ giữa giá trị bất động sản (price) và mức độ hoàn thiện nội thất (furnishingstatus) import pandas as pd
import matplotlib.pyplot as plt
x = pd.read_csv("Housing.csv") avg_price_by_furnish =
x.groupby("furnishingstatus")["price"].mean().sort_values(ascending=False) plt.figure(figsize=(8,6))
avg_price_by_furnish.plot(kind="bar", color=["#4A90E2", "#50E3C2", "#F5A623"], edgecolor='k')
plt.title("Giá nhà trung bình theo tình trạng nội thất", fontsize=14)
plt.xlabel("Tình trạng nội thất", fontsize=12)
plt.ylabel("Giá nhà trung bình", fontsize=12)
for i, v in enumerate(avg_price_by_furnish):
plt.text(i, v, f"{v:,.0f}", ha='center', va='bottom',fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Nhìn sơ bộ: giá nhà trung bình tăng dần theo mức độ hoàn thiện nội thất:
- “unfurnished” : 4,013,831
- “semi-furnished”: 4,907,524 16 - “furnished”: 5,495,696 import pandas as pd
import matplotlib.pyplot as plt import seaborn as sns
x = pd.read_csv("Housing.csv")
print(x["furnishingstatus"].value_counts())
print(x.groupby("furnishingstatus")["price"].describe()) furnishingstatus semi-furnished 227 unfurnished 178 furnished 140 Name: count, dtype: int64 count mean std min 25% \ furnishingstatus
furnished 140.0 5.495696e+06 2.117857e+06 1750000.0 3876250.0
semi-furnished 227.0 4.907524e+06 1.596688e+06 1767150.0 3850000.0
unfurnished 178.0 4.013831e+06 1.720247e+06 1750000.0 2870000.0 50% 75% max furnishingstatus
furnished 5075000.0 6650000.0 13300000.0
semi-furnished 4585000.0 5582500.0 12250000.0
unfurnished 3430000.0 4821250.0 10150000.0 * Nhận xét:
- Biểu đồ cho thấy mức độ hoàn thiện của nội thất có tác động đáng kể đến giá bán
trung bình của nhà ở: “furnished” → “semi-furnished” → “unfurnished”.
- Chênh lệch trung bình giữa “furnished” và “unfurnished” thường 20–30%, phản ánh
giá trị gia tăng của việc đầu tư nội thất.
Như vậy, kết quả này phản ánh quy luật chung của thị trường: người mua sẵn sàng trả
thêm cho sự tiện nghi và khả năng sử dụng ngay. Do đó, khi định giá nhà hoặc đầu tư
bất động sản, việc hoàn thiện nội thất là yếu tố tăng giá trị tài sản đáng kể. 17
3.Mối quan hệ giữ giá trị bất động sản (price) và số phòng ngủ (bedrooms), phòng tắm (bathrooms) import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv('Housing.csv') display(df.head())
print(df[['price','bedrooms','bathrooms']].describe()) p a b ba s m gu b hotwater aircondi rice
rea edrooms throoms tories ainroad estroom asement heating tioning 0 1 7 y n 4 2 3 no no yes 3300000 420 es o 1 1 8 y n 4 4 4 no no yes 2250000 960 es o 2 1 9 y y 3 2 2 no no no 2250000 960 es es 3 1 7 y y 4 2 2 no no yes 2215000 500 es es 4 1 7 y ye y 4 1 2 no yes 1410000 420 es s es price bedrooms bathrooms
count 5.450000e+02 545.000000 545.000000
mean 4.766729e+06 2.965138 1.286239
std 1.870440e+06 0.738064 0.502470
min 1.750000e+06 1.000000 1.000000
25% 3.430000e+06 2.000000 1.000000
50% 4.340000e+06 3.000000 1.000000
75% 5.740000e+06 3.000000 2.000000
max 1.330000e+07 6.000000 4.000000 plt.figure(figsize=(12,6))
sns.boxplot(x='bedrooms', y='price', hue='bathrooms', data=df)
plt.title('Giá nhà phân theo số phòng ngủ và số phòng tắm') 18
plt.xlabel('Số phòng ngủ') plt.ylabel('Giá nhà') plt.show() * Nhận xét:
- Giá trung bình tăng khi số phòng ngủ và phòng tắm tăng
- Trong cùng số phòng ngủ, nhà có nhiều phòng tắm hơn thường có giá cao hơn.
- Ngoài ra, biểu đồ còn thể hiện rõ outliers, ví dụ một số nhà 3 phòng ngủ nhưng giá
rất cao do nhiều phòng tắm hoặc tiện nghi khác.
Như vậy, số lượng phòng ngủ và phòng tắm cũng là yếu tố quyết định giá nhà. Những
bất động sản có nhiều phòng ngủ thường được ưa chuộng hơn vì chúng phù hợp cho
gia đình lớn hoặc nhóm người ở chung. Tương tự, số lượng phòng tắm cũng ảnh
hưởng đến sự tiện nghi và thoải mái của ngôi nhà. Thường thì, nhà có nhiều phòng ngủ
và phòng tắm sẽ có giá cao hơn so với những căn có số lượng ít hơn. Người mua
thường xem xét số lượng phòng ngủ và phòng tắm khi quyết định mua, vì điều này ảnh
hưởng trực tiếp đến chất lượng cuộc sống và sự thoải mái. 19
4. Mối tương quan giữa giá trị bất động sản (price) và sự hiện diện của phòng khách (guestroom) import pandas as pd import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv('Housing.csv') plt.figure(figsize=(8,6))
sns.boxplot(x='guestroom', y='price', data=df)
plt.xlabel('Có phòng khách (0=Không, 1=Có)') plt.ylabel('Giá nhà')
plt.title('Mối liên hệ giữa giá nhà và phòng khách') plt.show()
mean_price = df.groupby('guestroom')['price'].mean() print(mean_price) guestroom no 4.544546e+06 yes 5.792897e+06 Name: price, dtype: float64 * Nhận xét: 20