大數據機器學習算法項目——基于Django/協同過濾算法的房源可視化分析推薦系統的設計與實現
技術棧:大數據爬蟲/機器學習學習算法/數據分析與挖掘/大數據可視化/Django框架/Mysql數據庫
本項目基于 Django框架開發的房屋可視化分析推薦系統。這個系統結合了大數據爬蟲、機器學習算法、數據分析和數據可視化技術,旨在提供對房屋信息的全面分析和個性化推薦。系統的前端采用了HTML、CSS 和 JavaScript 技術,利用 Echarts實現數據可視化,并整合了百度地圖的熱力圖功能,以更直觀的方式展示數據。后端部分完全基于Django 框架開發,使用 MySQL作為主要數據庫存儲數據。推薦系統采用了協同過濾算法,其中包括基于用戶行為和基于物品相似性的推薦算法,以提供用戶個性化的房屋推薦。為了獲取數據,系統使用了Python 中的 requests庫實現爬蟲功能,從網絡中收集必要的數據。同時,為了提供地理信息服務,系統整合了百度地圖API接口,利用其功能實現位置信息的展示和處理。該系統的核心目標在于為用戶提供一套全面的房屋信息分析和個性化推薦服務,利用大數據技術和機器學習算法,為用戶提供更精準、實用的房屋選擇建議。通過整合前后端技術、數據分析、機器學習以及地圖API,該系統為用戶提供了一個交互性強、信息全面的房屋推薦平臺,為房屋搜索和選擇提供了更多的維度和可視化的支持。
一、 選題背景
隨著社會的發展,大數據技術在各行各業的應用變得愈發廣泛。其中,房地產領域作為人們生活不可或缺的一部分,也在大數據技術的推動下迎來了許多創新。為了更好地滿足用戶對房屋信息的需求,提供個性化的推薦服務成為房地產領域亟待解決的問題之一。基于Django/協同過濾算法的房可視化分析推薦系統選題旨在利用大數據技術和機器學習算法,基于Django框架構建一款房屋可視化分析推薦系統。該系統綜合運用大數據爬蟲、機器學習算法、數據分析和數據可視化等技術,以提供更深入、更個性化的房屋信息分析和推薦服務。協同過濾算法是推薦系統領域中一種重要的算法,通過分析用戶行為和物品的相似性,為用戶推薦可能感興趣的物品。本項目采用協同過濾算法的兩種主要形式:基于用戶行為和基于物品相似性,以提高推薦的準確性和用戶體驗。技術棧涵蓋了大數據爬蟲、機器學習、數據分析和可視化,為系統提供了強大的數據處理和展示能力。前端采用HTML、CSS、JS 和 Echarts技術,實現了直觀的數據可視化展示;百度地圖的集成則使系統能夠在地理空間上展示房屋信息,包括熱力圖的呈現。通過整合這些技術,該系統旨在為用戶提供更全面、更個性化的房屋信息服務,幫助用戶更輕松地進行房屋選擇。同時,選題也對大數據技術在房地產領域的應用進行了深入研究,為相關領域的技術發展提供了有益的參考。
二、開發技術介紹
前端:html,css,js,Echats,百度地圖
后端:Django
數據庫:Mysql
推薦算法:協同過濾(1、基于用戶行為 2、基于物品相似性)
爬蟲:requests
地圖API接口:百度地圖API
三、數據庫設計
all_public表
DROP TABLE IF EXISTS `all_public`;
CREATE TABLE `all_public` (`id` int NOT NULL AUTO_INCREMENT,`building_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,`baidu_lat` float NULL DEFAULT NULL,`baidu_lng` float NULL DEFAULT NULL,`belong_region` int NULL DEFAULT NULL,`belong_public_type` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3459 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
loupan_public_num表
DROP TABLE IF EXISTS `loupan_public_num`;
CREATE TABLE `loupan_public_num` (`id` int NOT NULL AUTO_INCREMENT,`loupan_id` int NULL DEFAULT NULL,`youeryuan_num` int NULL DEFAULT NULL,`xiaoxue_num` int NULL DEFAULT NULL,`zhongxue_num` int NULL DEFAULT NULL,`daxue_num` int NULL DEFAULT NULL,`sanjiayiyuan_num` int NULL DEFAULT NULL,`yijiyiliao` int NULL DEFAULT NULL,`erjiyiliao` int NULL DEFAULT NULL,`huochezhan_num` int NULL DEFAULT NULL,`qichezhan_num` int NULL DEFAULT NULL,`gaotiezhan_num` int NULL DEFAULT NULL,`gongjiaozhan_num` int NULL DEFAULT NULL,`shichang_num` int NULL DEFAULT NULL,`shangchangchaoshi_num` int NULL DEFAULT NULL,`canyin_num` int NULL DEFAULT NULL,`gongyuan_num` int NULL DEFAULT NULL,`jiaoyu_count` int NULL DEFAULT NULL,`yiliao_count` int NULL DEFAULT NULL,`jiaotong_count` int NULL DEFAULT NULL,`yule_count` int NULL DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 919 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
這里因為表數據太多,就不一一列舉。
四、系統實現
1.啟動Mysql數據庫
啟動數據庫,我這里的是localhost,賬號密碼根據自己實際情況進行連接就行了。
修改數據庫連接,連的哪個數據庫就用哪個主機名、賬號和密碼。
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'NAME': 'dalian', # 數據庫名稱'USER': 'root', # 數據庫user'PASSWORD': 'root', # 數據庫密碼'HOST': 'localhost','PORT': 3306,"OPTIONS": {'isolation_level': None}}
}
跨域資源共享(CORS)的設置
#跨域增加忽略
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ('http://127.0.0.1:8000','http://localhost:8000',
)
CORS的設置通常用于Web開發中處理跨域請求的安全機制。我們一個一個來看:
-
CORS_ALLOW_CREDENTIALS = True:
-
這個設置表示是否允許在跨域請求中使用憑證(例如,在XMLHttpRequest或Fetch請求中包含身份驗證信息,如cookies和HTTP認證)。
-
如果設置為True,表示允許使用憑證,否則禁止。
-
-
CORS_ORIGIN_ALLOW_ALL = True:
-
這個設置表示是否允許所有的域進行跨域請求。
-
如果設置為True,表示允許所有域,不管是哪個域發起的請求都會被接受。這是一種開放的跨域策略。
-
-
CORS_ORIGIN_WHITELIST:
-
這個設置是一個元組,包含了允許的特定域的列表。
-
在前兩個設置都為False的情況下,這個列表會用于明確指定哪些域是被允許的跨域請求來源。
-
在這個例子中,允許的域包括
http://127.0.0.1:8000
和http://localhost:8000
。
-
通過這些設置我們允許所有域進行跨域請求,并允許使用憑證。同時,通過CORS_ORIGIN_WHITELIST
指定了一些特定的域,確保只有這些域可以進行跨域請求。
允許的主機設置這里我設置的都是本地主機,如果要遠程連接其它主機,可以自己修改:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
其它配置都比較簡單就不一一細說了,有問題可以問我。配置好我們的解釋器,下載所需要的包直接啟動就可以,我這里的Django是3.2.20版本:
在pycharm中打開terminal 終端輸入下面命令啟動:
python manage.py runserver
啟動成功,端口8000:
五、項目展示
用戶登錄頁面
用戶賬號密碼信息注冊
用戶登錄,普通用戶注冊,普通用戶登錄
也可以管理員注冊登錄
管理員登錄:
具體實現效果
指定查詢
小區詳情:
發表評論
條件查詢
公共設施查詢
房源對比分析
協調算法推薦(基于用戶、基于小區推薦)
個人信息
六、結語
經過對一系列測試結果的有效分析,本平臺開發系統符合用戶的要求和需求。所有的基本功能齊全,可視化效果很好,服務運行穩定,操作起來簡單方便,測試系統性能、整體設計和代碼邏輯都很Nice!
各位有興趣的小伙伴 可以私信我要詳細的項目開發文檔、每個項目腳本運行部署視頻講解、完整項目源碼和其它相關資料。
最近在進行機器學習算法方面的系統研究,后面有時間和精力也會分享更多關于大數據領域方面的優質內容,喜歡的小伙伴可以點贊關注收藏,有需要的都可以私信我!感謝各位的喜歡與支持!