Tải bản đầy đủ (.pdf) (46 trang)

báo cáo đồ án môn học đề tài canifornia housing prices prediction

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.55 MB, 46 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b> BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔNPHÂN HIỆU TRƯỜNG ĐẠI HỌC THỦY LỢI</b>

<b>BỘ MÔN CÔNG NGHỆ THÔNG TIN</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔNPHÂN HIỆU TRƯỜNG ĐẠI HỌC THỦY LỢI</b>

HỌ VÀ TÊNĐinh Hồng AnhNguyễn Thị Thanh Mai

Hàng Đức PhúVõ Lê Hậu

<b>California Housing Prices Prediction</b>

Ngành: CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN: ThS. Vũ Thị Hạnh

<b>Giảng viên hướng dẫn:</b> <i><b>ThS. Vũ Thị Hạnh</b></i>

<b>Sinh viên thực hiện:Đinh Hồng AnhNguyễn Thị Thanh MaiHàng Đức PhúVõ Lê Hậu</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

HỒ CHÍ MINH, NĂM 2023

<b>LỜI CAM ĐOAN</b>

Nhóm 3 xin cam đoan đây là Đồ án mơn học của nhóm chúng em. Các kết quả trong Đồán môn học này là trung thực, và không sao chép từ bất kỳ một nguồn nào và dưới bất kỳhình thức nào. Việc tham khảo các nguồn tài liệu (nếu có) đã được thực hiện trích dẫn vàghi nguồn tài liệu tham khảo đúng quy định.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<small>1.2 Giới thiệu về bộ dữ liệu California Housing Price...6</small>

<small>1.3 Mục tiêu và phạm vi của đề tài...7</small>

<small>PHẦN 2. CƠ SỞ LÝ THUYẾT...8</small>

<small>2.1 Học máy (Machine Learning) là gì?...8</small>

<small>2.2 Tại sao cần học Học máy?...9</small>

<small>2.3 Máy học có bao nhiêu phương pháp?...9</small>

<small>2.4 Các chức năng của học máy?...10</small>

<small>-Kiểm tra shape của dữ liệu:...14</small>

<small>-Kiểm tra và xóa missing data...15</small>

<small>-Kiểm tra và xóa những giá trị trùng lặp:...16</small>

<small>-Handle outlier values:...17</small>

<small>3.2 Understanding and Visualize...22</small>

<small>Visualize cách phân bổ dân số và giá nhà dọc theo bản đồ California:...24</small>

<small>Phân phối giá trị trung bình:...27</small>

<small>3.3 Phân chia dữ liệu huấn luyện...28</small>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

PH N 1 : T NG QUAN V Đ TÀIẦỔỀỀ

Sau một thời gian tham khảo về các đề tài về dự đoán và nhận dạng trên Kaggle cũng như các nền tảng khác, chúng em đã quyết định lựa chọn một đề tài về bài toán dự đoán giá nhà tại California vì những lý do sau:

- Bộ dữ liệu California Housing Prices chứa nhiều thông tin về giá nhà tại nhiều khu vực khác nhau ở California. Chúng em sẽ có cơ hội thực hiện phân tích và dự đoán giá nhà dựa trên nhiều yếu tố như độ tuổi trung bình của nhà, thu nhậptrung bình, số phịng ngủ,.v.v.

- Dự đốn giá nhà là một thách thức thực tế và có ứng dụng rộng rãi trong thị trường bất động sản. Kỹ thuật dự đoán giá nhà có thể được ứng dụng trong các dự đốn thực tế như hỗ trợ việc quyết định mua bán nhà, đầu tư bất động sản,.v.v.

- Thực hiện dự đoán giá nhà bằng dữ liệu thực tế giúp sinh viên chúng em trau dồi, phát triển kỹ năng phân tích dữ liệu, xử lý dữ liệu và xây dựng mơ hình dựđốn. Sẽ có cơ hội được làm việc nhiều với các thuật toán của machine learning như hồi quy,.v.v.

- Và cuối cùng, đa số các nhóm khác đều chọn đề tài về nhận dạng nên chúng em quyết định sẽ chọn một bài toán khác là dự đoán để làm đa dạng hơn về cácđề tài trong bài báo cáo môn học. Chúng em hy vọng rằng kết quả của đề tài sẽ không chỉ là thành tựu cá nhân mà còn mang lại giá trị và ý nghĩa cho cộng đồng và ngành công nghiệp mà chúng em hướng đến. Điều này là nguồn động viên lớn, giúp chúng em không ngừng nỗ lực để đạt được những kết quả tích cực và bổ ích nhất từ đề tài này.

Bộ dữ liệu California Housing Price là một tập dữ liệu chi tiết về giá nhà ở California, Hoa Kỳ. Đây là một nguồn dữ liệu quan trọng trong lĩnh vực dự đốn giá nhà và phân tích thị trường bất động sản. Dữ liệu này được cung cấp trên Kaggle, một nền tảng chuyên về kho dữ liệu trong lĩnh vực khoa học dữ liệu.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>Thông tin cơ bản:</b>

- Nguồn dữ liệu: Kaggle

- Link đến Dataset: housing-prices

<b> trúc dữ liệu:</b>

Bộ dữ liệu này một tập hợp các thuộc tính khác nhau, chủ yếu là các yếu tố ảnh hưởng đến giá nhà. Dưới đây là một số thuộc tính chính:

<b>- Median Income (Mức thu nhập trung bình): Thu nhập trung bình của các hộ </b>

gia đình trong khu vực nhất định.

<b>- Housing Median Age (Độ tuổi trung bình nhà ở): Độ tuổi trung bình của các </b>

ngôi nhà trong khu vực.

<b>- Total Room (Tổng số phòng): Tổng số phòng trong một một khu vực.- Total Bedroom (Tổng số phòng ngủ): Tổng số phòng ngủ trong một khu vực.- Population (Số dân): Tổng số người cư trú trong một khu vực.</b>

<b>- Household (Hộ gia đình): Tổng số hộ gia đình cư trú trong một khu vực.- Median House Value (Giá nhà trung bình): Giá trị nhà trung bình của các hộ </b>

gia đình trong một khu vực nhất định (Tính bằng Dollar).

<b>- Ocean Proximity (Gần đại dương): Vị trí của căn nhà có gần đại dương/ biển </b>

Phạm vi của dự án bao gồm việc tiền xử lý dữ liệu, xây dựng mơ hình học máy, dự đốn bằng dataset testing và đánh giá mơ hình đã xây dựng.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

PH N 2. C S LÝ THUY TẦƠ ỞẾ

- Học Máy (Machine Learning - ML) là một lĩnh vực của trí tuệ nhân tạo (AI) tập trung vào việc phát triển và nghiên cứu các phương pháp và mơ hình máy học có khả năng tự động học từ dữ liệu. Trong khi các hệ thống máy học truyền thống thường yêu cầu sự can thiệp của con người để định rõ các quy tắc và quy luật, Học Máy giúp máy tính "học" từ kinh nghiệm và dữ liệu mà khơngcần sự lập trình cụ thể.

- Ba khái niệm chính trong Học Máy :

o Huấn luyện (Training): Quá trình huấn luyện máy tính bao gồm cung cấp cho nó một tập dữ liệu huấn luyện, trong đó mỗi mẫu dữ liệu được gán nhãn (label) hoặc có giá trị đầu ra mong muốn. Máy tính sẽ sử dụngcác thuật tốn học máy để tìm hiểu các mẫu và xây dựng một mơ hình dự đốn.

o Mơ hình (Model): Mơ hình học máy là một biểu diễn toán học hoặc thuật toán mà máy tính sử dụng để dự đốn hoặc phân loại dữ liệu mới dựa trên thông tin đã học từ q trình huấn luyện. Mơ hình có thể là mộtcây quyết định, một mạng neural, một phương trình tốn học, hoặc một thuật toán khác.

o Dự đoán (Prediction): Sau khi máy tính đã được huấn luyện, nó có thể sử dụng mơ hình đã xây dựng để dự đốn hoặc phân loại dữ liệu mới mànó chưa từng thấy trước đó. Q trình này gọi là dự đốn hoặc gán nhãn(labeling) dữ liệu

- Trong học máy, một hệ thống máy tính được huấn luyện thơng qua việc xem xét các dữ liệu đầu vào và tìm hiểu các mẫu, quy tắc hoặc cấu trúc ẩn trong dữ liệu đó. Máy tính sử dụng thơng tin đã học được để tự động dự đoán hoặc đưa ra quyết định cho các dữ liệu mới mà nó chưa từng thấy trước đó.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

2.2 T i sao c n h c H c máy?ạ ầ ọ ọ

Học Máy đóng vai trò quan trọng trong việc giải quyết những thách thức phức tạpvà khám phá những tri thức ẩn sau dữ liệu lớn mà con người không thể xử lý một cáchhiệu quả bằng các phương pháp truyền thống. Một trong những đặc điểm quan trọng củaHọc Máy là khả năng tự học và cải thiện theo thời gian mà khơng cần phải lập trình cụthể cho từng tác vụ.

Học Máy đã và đang thay đổi cách chúng ta làm việc và tư duy về dữ liệu. Trong lĩnh vực y tế, Học Máy có thể giúp dự đốn và chẩn đốn bệnh, tìm kiếm phác đồ điều trị tối ưu, và phát hiện sớm các nguy cơ sức khỏe. Trong ngành cơng nghiệp, Học Máy hỗ trợ q trình tự động hóa, tối ưu hóa chuỗi cung ứng, và dự báo nhu cầu thị trường. Trongtài chính, nó giúp phân tích rủi ro, dự đốn xu hướng thị trường, và tối ưu hóa quyết định đầu tư.

Học Máy cịn đóng vai trị lớn trong các ứng dụng hàng ngày như trích xuất thơng tin từ văn bản, nhận diện giọng nói, và thậm chí là trong xe tự lái. Khả năng "học" từ dữ liệu và áp dụng kiến thức đã học để đưa ra dự đoán hoặc quyết định làm cho Học Máy trởthành một công cụ mạnh mẽ và linh hoạt..

Các mơ hình học máy được chia thành ba loại chính:

Như trong dự án, chúng em sử dụng phương pháp học có giảm sát. Trong trường hợp của bài đồ án mơn học dự đốn giá nhà, <i><b>đầu vào (features) </b></i>là các thuộc tính như độ tuổi trung bình nhà, số phịng ngủ,.v.v. <i><b>Đầu ra (Label)</b></i>: sẽ là giá nhà, vì giá nhà là biến cần được dự đốn.

<b>Học máy khơng giám sát:</b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Học khơng giám sát, cịn được gọi là học máy khơng giám sát, sử dụng các thuật toán học máy để phân tích và phân cụm các tập dữ liệu khơng được gán nhãn. Các thuật toán này phát hiện ra các mẫu hoặc nhóm dữ liệu ẩn mà khơng cần sự can thiệp của con người.

Khả năng phát hiện ra những điểm tương đồng và khác biệt trong dữ liệu của phương pháp này khiến nó trở nên lý tưởng cho việc phân tích dữ liệu khám phá, chiến lược bán chéo, phân tích phân khúc khách hàng,.v.v.

Nó cũng được sử dụng để giảm số lượng các tính năng trong một mơ hình thơng qua q trình giảm kích thước. Phân tích thành phần chính (PCA-Principal component analysis) và phân tích giá trị đơn lẻ.

Các thuật tốn khác được sử dụng trong học tập không giám sát bao gồm phân cụm k-means và các phương pháp phân cụm theo xác suất.

<b>Học tập bán giám sát</b>

Học tập bán giám sát là sự kết hợp giữa có giám sát và học khơng giám sát. Trong q trình đào tạo, nó sử dụng một tập dữ liệu có nhãn nhỏ hơn học có giám sát để hướng dẫn phân loại, trích xuất tính năng từ một tập dữ liệu lớn hơn, không được gắn nhãn.

Học bán giám sát có thể giải quyết vấn đề trong trường hợp khơng có đủ dữ liệu được gán nhãn cho thuật tốn học có giám sát.

có đầu vào và đầu ra được gán nhãn để học cách ánh xạ từ đầu vào đến đầu ra.- Phân tích cụm (Clustering):

o Tìm ra các nhóm tự nhiên trong dữ liệu mà không cần thông tin nhãn trước.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

o Phân tích cụm giúp xác định sự tương đồng giữa các điểm dữ liệu và phân loại chúng vào các nhóm khác nhau.

- Ngồi ra cịn nhiều chức năng khác nữa nhưng chúng em sẽ không nêu ra hết tất cả chúng, một vài như: Tối ưu hóa (Optimization), học tăng cường (Reinforcement Learning),.v.v.

Các chưc năng ở trên đóng vai trị quan trọng, đại diện cho sự đa dạng và sức mạnh của học máy, giúp học máy trở thành một công cụ quan trọng trong nhiều lĩnh vực như khoa học dữ liệu, trí tuệ nhân tọa và phân tích dữ liệu.

2.5 V y h c máy có nh ng ng d ng gì?ậ ọ ữ ứ ụ

Học máy (Machine Learning - ML) đã ngày càng trở thành một cơng nghệ quan trọng vàcó ảnh hưởng sâu rộng đến nhiều lĩnh vực cuộc sống và doanh nghiệp. Dưới đây là mộtsố ứng dụng chính của học máy:

Nhận Diện Hình Ảnh và VideoDịch Ngơn Ngữ Tự ĐộngTư Vấn Y Tế và Chẩn ĐốnXử Lý Ngơn Ngữ Tự NhiênTổ Chức Dữ Liệu và Phân Loại

Tự Động Hóa Sản Xuất và Quy Trình Sản XuấtDự Đốn Đối Tượng Khách Hàng và Tiếp ThịƠ Tơ Tự Lái và Giao Thông Thông Minh

PH N 3. Xây d ng và đánh giá mơ hình d đốn

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Nguồn dữ liệu: Kaggle cụ hỗ trợ tra cứu, tham khảo: ChatGPT

Ở bước đầu tiên của dự án, chúng em tiến hành tải dữ liệu California Housing

. Sau khi có dữliệu, tiến hành tải dữ liệu file csv lên trên Google Colab, một dịch vụ, công cụ giúp ngườidùng thực hiện viết và chia sẻ mã nguồn Python thông qua trình duyệt web.

Kế tiếp, việc hiểu và biết cách sử dụng các thư viện của Python về hỗ trợ phân tíchdữ liệu cũng hết sức quan trọng. Ở đây, em sẽ sử dụng một vài thư viện cơ bản hỗ trợ nhưpandas, sklearn, numpy, matplotlib, seaborn:

- Numpy: là một thư viện cơ bản cho tính tốn số học và đại số tuyến tính, cungcấp các đối tượng mảng mạnh mẽ và các hàm thực hiện các phép toán lênchúng.

- Pandas: là thư viện sử dụng rộng rãi để xử lý và phân tích dữ liệu có cấu trúc,nó cung cấp các đối tượng như Dataframe và Series giúp chúng làm việc hiệuquả với dữ liệu bảng.

- Matplotlib: là thư viện trực quan hóa dữ liệu cơ bản cho Python. Nó cho phépvẽ đồ thị, biểu đồ, và hình vẽ chất lượng cao.

- Seaborn: là thư viện trực quan hóa dựa trên Matplotlib, được thiết kế để làmviệc cho việc vẽ đồ thị thống kê dễ dàng hơn.

- Sklearn: là thư viện hỗ trợ trong quá trình phát triển các mơ hình học máy, nócung cấp một loạt các cơng cụ và thuật toán cho nhiều tác vụ khác nhau, từphân loại và hồi quy tuyến tính đến clusterring,…

Với việc đọc dữ liệu từ 1 file .csv, em khai báo thư viện pandas giúp việc đọc filedata như sau:

<b>- Đọc dữ liệu từ file csv</b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

Hình 9. Bản đồ địa lý Hoa Kỳ

Hình 10. Bang Califonia nằm ở phía Tây nước Mỹ

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

California nằm ở phía Tây của Hoa Kỳ, giáp biển Đại Tây Dương, phía bắc tiếpgiáp quận Oregon và phía nam tiếp giáp Mexico.

Visualize cách phân b dân s và giá nhà d c theo b n đ California:ổ ố ọ ả ồ

Ta sử dụng thư viện `matplotlib` và `pandas` để tạo ra một đồ thị phân tán (scatterplot) từ dữ liệu trong DataFrame (` `). Với trục x là longitude, y là latitude, với kíchdfthước của các điểm dựa trên chỉ số population / 100 và màu sắc của các điểm sẽ được đặttheo thuộc tính median_house_value.

Hình 11. Biểu đồ phân tán phân bổ dân số và dân số dọc theo bản đồ California

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Nhìn vào đồ thị phân tán ta và bản đồ bang California ở hình 9 và 10 trên, ta dễdàng thấy được, giá nhà có xu hướng tăng mạnh ở những khu vực gần và giáp biển ĐạiTây Dương. Vì vậy chưa cần phân tích sâu xa, ta nhận xét được cột `ocean proximity`,`latitude` và `longitude` có ảnh hưởng đến giá nhà.

Vì là thuộc tính ảnh hưởng đến giá nhà, điều mà chúng ta đang muốn dự đoán.Tuy nhiên `ocen proximity` lại là categorical feature, chúng ta sẽ không thể training mơ

<b>hình dự đốn với dự liệu nào khác ngoài numberical data. Vì vậy, việc Encodecategorical values là rất quan trọng.</b>

Trước khi encode categorical values về dạng số, ta hãy xem feature `oceanproximity` có những gì:

Hình 12. Biểu đồ trịn các giá trị categorical

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Hình 13. Biểu đồ hình hộp phân phối của giá nhà dựa trên ocean proximity

Nhìn vào biểu đồ hình hộp, ta hiểu được giá nhà cao nhất là khoảng từ300.000 - 450.000 USA với ISLAND chiếm khoảng 60-75 %. Giá nhà trung bìnhrơi vào khoảng từ 170.000 – dưới 300.000 USA. Giá nhà ở đất liền `INLAND` làthấp nhất.

Tiến hành encoding biến ocean proximity, sử dụng LabelEncoder củasklearn.processing:

Các biến có thuộc tính đã được gán giá trị từ 0 – 4 cho năm giá trị.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Phân ph i giá tr trung bình:ố ị

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

3.3 Phân chia d li u hu n luy nữ ệ ấ ệ

3.3.1 Split data

Quá trình `split data` là quá trình phân dữ liệu làm hai hoặc nhiều phần phụ khácnhau, thường là để sử dụng phần sử dụng một phần để huấn luyện mơ hình và phần cịnlại để kiểm thử mơ hình.

Phân chia dữ liệu thành 2 phần:

- `X`: là tập dữ liệu chứa các đặc trưng (features) mà bạn muốn sử dụng để huấnluyện mô hình

- `y`: là tập dữ liệu chức các nhãn (labels) tương ứng, trong trường hợp này thì là“median_house_value”.

Sau đó, tách dữ liệu training ra thành 4 biến sau:

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Sau khi thực hiện dòng mã trên, ta sẽ có 4 biến:

<b>- `X_train` : Tập dữ liệu đặc trưng cho việc huấn luyện mơ hình.- `X_test` : Tập dữ liệu đặc trưng cho việc kiểm thử mơ hình.- `y_train` : Tập dữ liệu nhãn cho việc huấn luyện mô hình- `y_test` : Tập dữ liệu nhãn cho việc kiểm thử mơ hình.</b>

Tập huấn luyện được sử dụng để huấn luyện mơ hình, trong khi tập kiểm thử sửdụng để đánh giá hiệu suất của mơ hình dựa trên dữ liệu mới mà nó chưa thấy.

3.3.2 Scaling

Trong học máy, tiêu chuẩn hóa dữ liệu thường được thực hiện để đảm bảo rằngcác đặc trưng (features) có cùng một khoảng giá trị hoặc đơn vị, giúp mơ hình học máyđảm bảo rằng khơng có đặc trưng nào ảnh hưởng lớn đến mơ hình.

3.4 Mơ hình d đốn giá nhà Linear Regression, Decision Regression Tree vàựRandom Forest

3.4.1 Linear Regression

Linear Regression là một phương pháp học máy phổ biến được sử dụng cho cácvấn đề dự đoán liên tục. Linear Regression giả định rằng có một mối quan hệ tuyến tínhgiữa các đặc trưng (features) và biến mục tiêu (target).

Để chạy mơ hình linear, chúng ta sử dụng một lớp của thư viện Scikit-learn đượcgọi là <b>Linear Regression()</b>, lớp này có hàm <b>fit(), </b>hàm sẽ train dữ liệu được đưa vào.

Chúng ta có thể thấy ở trên, biến ` ` là một mơ hình hồi quy tuyến tính được đàolrtạo từ các biến X_train và y_train. Để huấn luyện mơ hình có nghĩa là chúng ta đang tìm

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

kiếm dòng phù hợp hơn với dữ liệu huấn luyện, để làm được điều đó, chúng ta sẽ sử dụnghàm predict().

Sau khi train xong bằng mơ hình Linear Regression, ta đem so sánh `y_test` và`y_pred`:

<small>lr_frame = pd.DataFrame({"Y_test": y_test , "Y_pred" : y_pred_lr})lr_frame.head( )10</small>

Vẽ biểu đồ thể hiện kết quả so sánh giữa `y_test` và `y_predict`. So sánh giá trị của dữ liệu đã training để test và giá trị đã được dự đốn bởi mơ hình Linear Regression, ta sử dụng đoạn mã sau:

<small>plt.figure(figsize=( , ))10 8plt.plot(lr_frame[: ])50plt.legend(["Actual" , "Predicted"])</small>

Hình 13. Mơ hình sự chênh lệch giữa giá trị dự đoán và giá trị thực Linear Regression

</div>

×