Tiền xử lý dữ liệu:

Một phần của tài liệu TÌM HIỂU VỀ MACHINE LEARNING VÀỨNG DỤNG VÀO VIỆC DỰ ĐOÁN GIÁ NHÀ (Báo cáo đồ án 2 ) (Trang 114 - 128)

b. Nhược điểm:

4.2 Tiền xử lý dữ liệu:

Sau khi thu thập dữ liệu từ trang rever, ta thu được một file dữ liệu thô gồm có 7238 dòng dữ liệu

Dữ liệu bị thiếu rất nhiều, ta cần phải làm sạch nó

Loại bỏ bớt những trường không cần thiết, không liên quan đến việc huấn luyện.

Máy chỉ hiểu dữ liệu của chúng ta qua những con số, chính vì thế nếu lấp đầy những ô này thôi là chưa đủ.

Ta cần phải chuyển dữ liệu dạng chữ thành dạng số thì mô hình mới có thể hiểu được Để xử lý dữ liệu thì nhóm em dùng bộ thư viện Pandas của python để hỗ trợ trong việc xử lý dữ liệu.

Đầu tiên ta tìm hiểu về tập dữ liệu Đọc file dữ liệu vào

Kiểm tra xem kiểu thuộc tính của các trường dữ liệu là gì

Kiểm tra xem mỗi cột thuộc tính có những giá trị riêng biệt nào để xử lý sao cho phù hợp

Như ở cột District ta có thể in ra tất cả có quận riêng biệt của cột này

Biết được trong tập dữ liệu có những loại phòng ngủ nào

Những phòng gom nhóm theo từng loại phòng ngủ

Trong tập dữ liệu lúc nào cũng sẽ không toàn vẹn, chính vì thế ta kiểm tra xem những với mỗi cột dữ liêu, số ô dữ liệu trống(null) là bao nhiêu để ta biết hướng xử lý sao cho phù hợp

Kiểm tra những giá trị riêng biệt của số tầng

Gom nhóm những căn hộ theo số tầng

Gom nhóm theo quận để xem tập dữ liệu mà ta nghiên cứu nó như thế nào

Gom nhóm tập dữ liệu dựa theo số phòng tắm

Dựa vào tình trạng trang bị nội thất, ta in ra những giá trị riêng biệt của tình trạng nội thất, và gom nhóm theo những giá trị này

Kiểm tra những hàng có giá trị là null

Bỏ đi những cột không liên quan đến việc huấn luyện dữ liệu

Kiểm tra những cột nào còn giá trị null hay không, còn thì tiếp tục xử lý đến khi nào hết thì thôi

Đếm những giá trị null theo cột

Ở đây ta thấy rằng cột bathrooms có 5 dòng dữ liệu là null. Có 2 cách để ta xử lý. Một là xóa luôn những dòng null này tại vì chỉ có 5 hàng nên việc xóa đi dữ liệu là không ảnh hưởng đến tập dữ liệu. Hai là thay những giá trị null bằng giá trị trung bình. Ở đây em chọn cách xóa những dòng có giá trị null.

Sau khi xóa xong ta kiểm tra lại, số giá trị null của cột bathroom giờ là 0, vậy là ta xử lý được cột bathroom.

Ta thấy trường floors( tầng thứ bao nhiêu) khi trích rút dữ liệu về nó có nhiều giá trị null( trống) vậy làm sao để xử lý trường này? Tương tự như trường bathroom ta cũng có hai cách để xử lý trường floors này.

Về mặt lý thuyết, ta có thể xóa những dòng giá trị null này đi, nhưng vì có quá nhiều dòng nên nếu xóa thì sẽ ảnh hướng đển tập dữ liệu.

Ở đây ta thấy có đến 4804 dòng dữ liệu mà trường floors là null. Chính vì thế nên em sẽ thay thế những giá trị null này thành giá trị trung bình của cột.

Còn cột furniture status:

Cột “furniture status” có 3 giá trị là không có nội thất, nội thất cơ bản và đầy đầy đủ nội thất. Nếu để nguyễn như vậy, rõ ràng khi đem đi training sẽ bị error vì model chỉ hiểu những con số mà thôi, chính vì vậy ta chuyển nó thành những số liệu. Ta thấy rằng những giá trị này có có giá trị ưu tiên: căn hộ không có nội thất giá sẽ thấp hơn so với căn hộ có nội thất cơ bản cùng diện tích, và căng hộ có nội thất cơ bản sẽ thấp hơn so với căn hộ có đầy đủ nội thất có cùng diện tích. Chính vì vậy ta gán số 0 cho không có nội thất, số 1 cho nội thất cơ bản và số 2 cho đầy đủ nội thất.

Ta xử lý đối với cột district:

Cột district ở đây là dạng string, nếu để như vậy máy sẽ không hiểu, nhưng nếu ta gắn quân 9 là 0, quận bình thạnh là 1, quận tân bình là 2,... Nếu ta gắn như vậy, sẽ không 120

được vì mỗi giá trị quận 9, quận bình thạnh, quận tân bình,... là những giá trị ngang bằng nhau, nếu gắn như vậy thuật toán sẽ chạy không chính xác. Ở đây chúng ta dùng phương pháp One Hot Encoding hay còn có tên khác là dummies variable.

Nó sẽ tính giá trị riêng biệt của cột, có bấy nhiêu giá trị riêng biệt sẽ chuyển thành bấy nhiêu cột, và nếu cột đó đúng là giá trị thì sẽ được bật lên là 1.

Ví dụ:

ở trong ví dụ ta thấy có 4 giá trị riêng biệt của cột pet là cat, dog,turtle,fish nên sẽ thanh 4 cột. Nếu hàng đó là cat thì giá trị cat sẽ bật lên là 1.

Ta chuyển tập dữ liệu thành dummies variable:

Một phần của tài liệu TÌM HIỂU VỀ MACHINE LEARNING VÀỨNG DỤNG VÀO VIỆC DỰ ĐOÁN GIÁ NHÀ (Báo cáo đồ án 2 ) (Trang 114 - 128)