Tơi đã tìm hiểu các mã nguồn đã có, từ đó chọn ra mã nguồn thích hợp để chỉnh sửa, phát triển thêm sao cho phù hợp với bài toán.
Trong q trình nghiên cứu K-SOM, tơi đã thử đầu vào dữ liệu khác nhau. Khởi đầu bằng cách huấn luyện mơ hình chỉ với tọa độ địa lý là kinh độ và vĩ độ với đầu vào đơn giản là thông tin 24 quận huyện tại thành phố Hồ Chí Minh. Sau đó, tơi tiếp tục thử nghiệm huấn luyện lại mơ hình với đầu vào là các bất động sản chỉ ở quận 10. Từ đó, nâng lên thành tồn bộ thành phố Hồ Chí Minh.
Sau khi thực nghiệm với cơng thức tính khoảng cách địa lý Euclid, tơi chuyển qua dùng cơng thức tính khoảng cách luận lý như đã giới thiệu ở phần trước đó. Mục đích của tơi khi dùng cơng thức này chính là những ngơi nhà cùng là mặt tiền hay cùng là hẻm thì gần lại với nhau hơn trên bản đồ K-SOM.
Với kết quả ban đầu không khả quan do cơng thức khoảng cách luận lý có các tham số chưa phù hợp nên chúng tôi đã sử dụng giải thuật di truyền để các tham số trên được học một cách phù hợp hơn.
7.1.2 Mơ hình K-SOM khi chưa dùng giải thuật di truyền 7.1.2.1 Các tham số của K-SOM
• Kích thước của mạng K-SOM: 100x100 • Hệ số lan truyền LearnMax: 0.5
• Số lần lặp: 20000
• Hàm khoảng cách để câp nhật mạng K-SOM:
distance(n1,n2) = (β+α·epostreet(n1,n2))·(distancelatlong(n1,n2)) Các biến có ý nghĩa như sau:
– distance(n1,n2): là hàm khoảng cách luận lý (logic) để tính node nổi trội.
– α,β: là hai tham số cho hàm này.
– postreet(n1,n2) =|pos(n1.position_street)−pos(n2.position_street)|: là độ chênh lệch giữa loại nhà (mặt tiền, hẻm,...).
– Hàm pos trả về 6 giá trịχivới i=1..6, cũng là 6 tham số cho GA x.position_street Ý nghĩa pos(x.position_street)
1 mặt tiền χ1=1.0 2 góc 2 mặt tiền χ2=1.2 3 hẻm 1 sẹc χ3=0.55 4 hẻm 2 sẹc trở lên χ4=0.44 5 hai mặt tiền hẻm χ5=0.66 6 hẻm χ6=0.5
Bảng 7.1:Giá trị của hàm pos
– distancelatlong(n1,n2): là khoảng cách tọa độ địa lý (kinh độ vĩ độ) của hai ngơi nhà đang xét này.
• Tham số mặc định của hàm khoảng cách khi không sử dụng GA:α = 1 vàβ = 0.
7.1.2.2 Kết quả từ mô hình K-SOM
• Khi áp dụng biểu thức tính khoảng cách luận lý: kết quả trả về chưa được như mong muốn. • Vì hiệu tọa độ latlong có giá trị lớn hơn nhiều so với postreet nên khi dùng K-SOM với
cơng thức trên thì hầu hết các BĐS đều rơi vào 1 nhóm.
7.1.3 Mơ hình K-SOM khi đã dùng giải thuật di truyền7.1.3.1 Các tham số của K-SOM 7.1.3.1 Các tham số của K-SOM
• Kích thước của mạng K-SOM: 100x100 • Hệ số lan truyền LearnMax: 0.5
• Số lần lặp: 20000
• Hàm khoảng cách để câp nhật mạng K-SOM:
distance(n1,n2) =α+β∗ postreet(n1,n2)+γ∗ latlong(n1,n2)+δ∗ latlongdistrict(n1,n2) (7.1)
– distance(n1,n2): là hàm khoảng cách luận lý (logic).
– α,β,γ,δ: là các tham số cho hàm này.
– postreet(n1,n2) =|pos(n1.position_street)−pos(n2.position_street)|: là độ chênh lệch giữa loại nhà (mặt tiền, hẻm,...).
– latlong(n1,n2): là khoảng cách địa lý giữa hai căn nhà.
– latlongdistrict(n1,n2): là khoảng cách giữa hai quận của hai căn nhà này. Khoảng cách hai quận được tính bằng khoảng cách địa lý giữa hai tâm của quận.
• Tham số của hàm khoảng cách và 6 giá trịχivới i=1..6 của hàm pos: được lấy từ kết quả của giải thuật di truyền.
7.1.3.2 Kết quả từ mơ hình K-SOM
• Khi dùng K-SOM sau khi đã học các hệ số trên từ GA cho kết quả: với map K-SOM 100x100 thì 7000 BĐS phân bố đều vào 2756 clusters(thay vì lệch vào duy nhất 1 cluster).
Hệ số K-SOM Số Cluster Không dùng GA 1
Dùng GA 2756
Bảng 7.2:Kết quả khi dùng K-SOM
• Với kết quả trên thì người dùng sẽ dễ dàng so sánh độ tương quan giữa bất kỳ các BĐS với nhau dựa trên map K-SOM.
7.2 Xây dựng mơ hình giải thuật di truyền
7.2.1 Quá trình xây dựng và ứng dụng mơ hình giải thuật di truyền
Tơi đã tìm hiểu các mã nguồn đã có, từ đó chọn ra mã nguồn thích hợp để chỉnh sửa, phát triển thêm sao cho phù hợp với bài toán.
Chuyên gia đã gán nhãn cho chúng tơi huấn luyện mơ hình GA như sau: thơng qua giao diện chúng tôi đã chuẩn bị, chuyên gia chọn hai căn nhà (có đưa ra chi tiết các thơng tin nhà đó cho chuyên gia) và tiến hành gán nhãn giá trị về khoảng cách luận lý giữa hai căn nhà này.
Trong q trình nghiên cứu GA, tơi đã thử dùng nhiều công thức khoảng cách luận lý khác nhau. Khởi đầu bằng cách huấn luyện mơ hình bằng cơng thức cũ tơi sẽ đề cập bên dưới, sau đó đến các công thức mũ, bậc nhất, bậc hai, thêm các thuộc tính khác của căn nhà như đường, quận,... Cơng thức hiện tại chúng tôi đang sử dụng sẽ được đề cập bên dưới.
7.2.2 Công thức khoảng cách luận lý thứ nhất
Công thức khoảng cách luận lý thứ nhất mà chúng tơi đã đưa ra:
distance(n1,n2) = (β+α·epostreet(n1,n2))·(distancelatlong(n1,n2)) Các biến có ý nghĩa như sau:
• distance(n1,n2): là hàm khoảng cách luận lý (logic) để tính node nổi trội. • α,β: là hai tham số cho hàm này.
• postreet(n1,n2) =|pos(n1.position_street)−pos(n2.position_street)|: là độ chênh lệch giữa loại nhà (mặt tiền, hẻm,...).
• Hàm pos trả về 6 giá trịχivới i=1..6, cũng là 6 tham số cho GA
• distancelatlong(n1,n2): là khoảng cách tọa độ địa lý (kinh độ vĩ độ) của hai ngôi nhà đang xét này.
Tham số Giá trị α 1000 β 0 γ 1 χ1 1.0 χ2 1.2 χ3 0.55 χ4 0.44 χ5 0.66 χ6 0.5
Bảng 7.3:Giá trị tham số mặc định cho công thức thứ nhấtSau khi huấn luyện qua giải thuật di truyền, các hệ số có kết quả như sau: Sau khi huấn luyện qua giải thuật di truyền, các hệ số có kết quả như sau:
Tham số Giá trị α 0.06557144 β -8.30421441 γ 0.88806504 χ1 5.13000151 χ2 -4.11031906 χ3 -5.37830437 χ4 2.54340878 χ5 1.11500722 χ6 -4.5762099
So sánh công thức trên khi không dùng và sau khi dùng giải thuật di truyền:
Dùng giải thuật di truyền Độ trung bình chênh lệch Chênh lệch lớn nhất
Khơng 2.085 6.33
Có 1.691 5.00
Bảng 7.5:Kết quả dùng GA cho cơng thức thứ nhất
Hình 7.1:So sánh trước và sau khi dùng giải thuật di truyền cho công thức thứ nhất. Chú thích cho hình trên:
• logic_distance1 và di f f erent1lần lượt là giá trị và độ chênh lệch giữa chuyên gia gán nhãn vàlogic_distance1của công thức thứ nhất trước khi dùng giải thuật di truyền. • ga_logic_distance1vàga_di f f erent1lần lượt là giá trị và độ chênh lệch giữa chuyên gia
gán nhãn vàga_logic_distance1của công thức thứ nhất sau khi dùng giải thuật di truyền.
7.2.3 Công thức khoảng cách luận lý thứ hai
Sau khi thử nhiều cơng thức khác nhau, nhằm tìm ra một công thức "mạnh" hơn công thức cũ, mang lại kết quả tốt hơn, chúng tôi đưa ra công thức hiện tại như sau:
distance(n1,n2) =α+β∗ postreet(n1,n2) +γ∗ latlong(n1,n2) +δ∗ latlongdistrict(n1,n2) (7.2) • distance(n1,n2): là hàm khoảng cách luận lý (logic).
• α,β,γ,δ: là các tham số cho hàm này.
• postreet(n1,n2) =|pos(n1.position_street)−pos(n2.position_street)|: là độ chênh lệch giữa loại nhà (mặt tiền, hẻm,...).
• latlong(n1,n2): là khoảng cách địa lý giữa hai căn nhà.
• latlongdistrict(n1,n2): là khoảng cách giữa hai quận của hai căn nhà này. Khoảng cách hai quận được tính bằng khoảng cách địa lý giữa hai tâm của quận.
Tham số Giá trị α 0 β 1 γ 1000 σ 1000 χ1 1.0 χ2 1.2 χ3 0.55 χ4 0.44 χ5 0.66 χ6 0.5
Bảng 7.6:Giá trị tham số mặc định cho công thức thứ haiSau khi huấn luyện qua giải thuật di truyền, các hệ số có kết quả như sau: Sau khi huấn luyện qua giải thuật di truyền, các hệ số có kết quả như sau:
Tham số Giá trị α -6.64789365 β 3.12506638 γ -9.00115707 σ 4.35316446 χ1 -16.16039254 χ2 -12.96374504 χ3 -21.42898834 χ4 -16.06295894 χ5 -16.23441444 χ6 -18.69862314
So sánh công thức trên khi không dùng và sau khi dùng giải thuật di truyền:
Dùng giải thuật di truyền Độ trung bình chênh lệch Chênh lệch lớn nhất
Khơng 1.829 6.40
Có 1.097 3.79
Bảng 7.8:Kết quả dùng GA cho cơng thức thứ hai
Hình 7.2:So sánh trước và sau khi dùng giải thuật di truyền cho công thức hiện tại.Chú thích cho hình trên: Chú thích cho hình trên:
• logic_distance2 và di f f erent2lần lượt là giá trị và độ chênh lệch giữa chuyên gia gán nhãn vàlogic_distance1của công thức thứ hai trước khi dùng giải thuật di truyền. • ga_logic_distance1vàga_di f f erent1lần lượt là giá trị và độ chênh lệch giữa chuyên gia
gán nhãn vàga_logic_distance1của công thức thứ hai sau khi dùng giải thuật di truyền.
7.2.4 Tổng kết về các công thức cho giải thuật di truyền
Bảng dưới đây so sánh công thức cũ và công thức mới khi không dùng và dùng giải thuật di truyền:
Công thức 1
(không dùng GA) (có dùng GA)Cơng thức 1 (khơng dùng GA)Cơng thức 2 (có dùng GA)Cơng thức 2
Chênh lệch trung bình 2.085 1.691 1.829 1.097
Chênh lệch lớn nhất 6.33 5.00 6.40 3.79
Nhận xét:
• Cơng thức sau khi được huấn luyện qua giải thuật di truyền cho kết quả vượt trội hơn. • Cơng thức mới thể hiện tốt hơn công thức cũ.
7.3 Giao diện
7.3.1 Giao diện gán nhãn mức độ tương quan của một số cặp BĐS
Ở giao diện này, chuyên gia sẽ gán nhãn độ tương quan của một số cặp BĐS trên thang từ 1-10, để phục vụ cho giai đoạn huấn luyện mơ hình. Để thuận tiện cho việc gán nhãn, chuyên gia sẽ thực hiện theo luồng như sau:
• Bước 1: Vào giao diện dành cho gán nhãn, chọn điểm muốn chọn làm điểm thứ nhất trong cặp điểm
• Bước 2: Điểm thứ nhất vừa được chọn sẽ có biểu tượng khác với các điểm cịn lại.
• Bước 3: Lần lượt chọn các điểm thứ 2 trong cặp điểm, chọn mức độ tương quan tương ứng và chọn "Gán nhãn". Dữ liệu sẽ được gửi về MongoDB để phục vụ cho việc training.
Hình 7.5:Gán nhãn cho các điểm thứ hai
Hình 7.6:Dữ liệu được lưu trên MongoDB
7.3.2 Giao diện cập nhật giá cho chuyên gia
Giao diện này sẽ sử dụng tri thức có được từ chuyên gia kết hợp với mơ hình mạng K-SOM đã được nghiên cứu để cập nhật lại giá đất thị trường cho tập dữ liệu.
7.3.2.1 Các bước cập nhật giá
• Cập nhật giá cho một BĐS đã có:
Truy cập vào giao diện, chọn bài đăng muốn cập nhật giá, điền giá mới và chọn "Cập Nhật Giá". Hệ thống sẽ ứng dụng mơ hình đã nghiên cứu để lan truyền giá ấy đến các BĐS xung quanh để cập nhật giá mới lên CSDL đồng thời hiển thị ra một bản đồ thể hiện kết quả lan truyền giá của mơ hình.
Hình 7.8:Chọn giá mới
• Cập nhật giá cho một điểm:
Truy cập vào giao diện, chọn một điểm bất kì trên bản đồ, điền giá đất tại điểm đó kèm theo vị trí(Mặt tiền/hẻm), sau đó chọn "Cập Nhật Giá". Hệ thống sẽ ứng dụng mơ hình đã nghiên cứu để lan truyền giá ấy đến các BĐS xung quanh để cập nhật giá mới với BĐS có quan hệ luận lý gần nhất với input làm trung tâm.
Hình 7.11:Kết quả lan truyền trong bán kính 2km
7.3.2.2 Kết quả lan truyền
(a) (b)
(c) (d)
(e) (f)
(g) (h)
7.3.3 Đánh giá kết quả cập nhật giá
Để đánh giá độ hiệu quả của mơ hình, chúng tơi đã xây dựng mạng K-SOM vớiCông thức khoảng cách luận lý thứ hai ở mục 7.2.3 và cập nhật giá bằng Hàm cập nhật giá ở mục
6.2.5.2cho một số điểm BĐS. Kết quả nhận được sẽ được gửi đến cho chuyên gia để kiểm tra và cho ý kiến để chỉnh sửa lại một số kết quả. Ý kiến này sẽ là dữ liệu để kiểm tra mơ hình. Mỗi một kết quả sẽ tương ứng với bảng như sau:
Hình 7.16:Kết quả lan truyền giá
Chuyên gia sẽ sử dụng kĩ thuật và kinh nghiệm để thẩm định giá và điền vào ơ "label" để có dữ liệu đánh giá độ chính xác mơ hình. Để đánh giá cho mơ hình của chúng tơi, một chun gia đã đánh giá giá đất mỗi mét vng của 55 bất động sản bất kì trong tập dữ liệu đã được cập nhật.
Bên cạnh đó, để so sánh với mơ hình cập nhật giá mà tơi đã xây dựng trong luận văn này tôi cũng xây dựng một mơ hình đơn giản hơn, đặt tên làsimple model - mơ hình đơn giản, trong
đó giá sẽ cập nhật dựa theo khoảng cách vật lý và một số heuristic. Cụ thể, nếu tại một BĐS A giá được cập nhật tăng/giảm x%, giá của BĐS X bất kì cách đó dưới 2km sẽ được cập nhật giá như sau:
• Nếu khoảng cách từ BĐS X đến A dưới 500m thì giá của X sẽ tăng/giảm x%.
• Nếu khoảng cách từ BĐS X đến A trên 500m và dưới 2000m thì giá của X sẽ tăng/giảm từ 100% đến 85% của x%.
Kết quả cập nhật giá qua 2 mơ hình của một số BĐS được tổng hợp và gán nhãn lại được thể hiện dưới bảng tính sau:
Hình 7.17:Kết quả lan truyền giáTrong đó: Trong đó:
• pos là giá trị của hàm pos đã được đề cập.
• Giá BĐS được đề cập là giá đất trên một mét vng. • Giá Gốc là giá được lưu trong tập dữ liệu ban đầu
Chúng tơi dùng hàm trung bình độ lệch giá dự đốn giữa mơ hình và giá do chun gia cung cấp để đánh giá mơ hình, kí hiệu là loss:
loss = 1
n∗
n
∑| Giá dự đoán− Giá của chuyên gia | (7.3) Giá trị loss này càng thấp chứng tỏ mơ hình càng đúng ý chun gia. Qua tính tốn, đánh giá với 55 mẫu dữ liệu BĐS mà chuyên gia đã đánh giá, ta có bảng giá trị loss như sau:
Dữ liệu gốc Dữ liệu qua K-SOM Dữ liệu qua simple model 7,821,343 5,956,106 39,090,718
Bảng 7.10: Giá trị loss của các tập dữ liệu trước và sau khi dùng mơ hình so với dữ liệu từchuyên gia chuyên gia
Dựa vào loss trong bảng ta có thể thấy mơ hình sử dụng K-SOM có loss thấp nhất, cụ thể: Giá trị loss của mơ hình K-SOM chỉ bằng khoảng 76% giá trị loss của dữ liệu gốc trước khi cập nhật và bằng 15% giá trị loss của mơ hình đơn giản. Do đó, ta có thể kết luận: Mơ hình K-SOM trong luận văn này giúp cập nhật giá BĐS đúng với ý chuyên gia hơn giá trước đó, và hiệu quả hơn cách sử dụng mơ hình cập nhật giá đơn giản qua khoảng cách vật lý rất nhiều.
8
TỔNG KẾT
Trong chương này, tơi xin trình bày các cơng việc đã thực hiện, các khó khăn gặp phải, các kết quả thu được trong quá trình thực hiện đề cương luận văn và hướng phát triển trong tương lai cho luận văn
Mục lục
8.1 Các cơng việc đã hồn thành . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.2 Các kết quả thu được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.3 Các khó khăn gặp phải . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.1 Các cơng việc đã hồn thành
• Sử dụng nhiều kỹ thuật để lọc nhiễu từ tập dữ liệu về bất động sản được cho. • Đề xuất cơng thức về khoảng cách (đơ tương quan) giữa các căn nhà.
• Dựa vào các công thức này, tiến hành huấn luyện giải thuật di truyền nhằm học được các tham số phù hợp cho công thức dựa trên tập gán nhãn của chun gia.
• Từ cơng thức khoảng cách đã qua GA, sử dụng mơ hình K-SOM để có được một bản đồ