最新案例動態,請查閲【案例共創】從0開始使用華為雲開發者空間搭建房價預測模型。小夥伴們快來領取華為開發者空間進行實操吧!
本案例由:梅科爾工作室提供
1 概述
1.1 案例介紹
華為雲開發者空間,華為云為每個新生態開發者免費提供一台雲主機,每位開發者每年可享有數百小時的使用時長。雲主機預集成CodeArts IDE、代碼倉及JDK、Python等運行時插件,解決本地開發環境中配置複雜、穩定性不足和依賴等問題,為開發者提供性能強大、安全、穩定、高效的開發環境。
官方文檔:圖解開發者空間-平台概述-開發者空間 Developer Space
本案例為從0開始使用華為雲開發者空間搭建房價預測模型,並藉助開發者空間雲主機提供的免費CodeArts IDE for Python編輯器進行代碼編寫。
通過實際操作,讓大家深入瞭解,如何使用華為雲開發者空間從0開始搭建一個房價預測模型,也可以使開發者更深入的瞭解開發者空間和CodeArts IDE的功能。
1.2 適用對象
- 個人開發者
- 高校學生
1.3 案例時間
本案例總時長預計30分鐘。
1.4 案例流程
説明:
- 配置開發者空間環境;
- 打開IDE搭建房價預測模型。
1.5 資源總覽
本案例預計花費總計0元。
| 開發者空間 | 2vCPUs \| 4GB X86 \|Ubuntu 22.04 Server定製版 |
2 開發者空間配置和Python工程創建
2.1 登錄華為雲開發者空間
瀏覽器輸入以下地址:
<https://developer.huaweicloud.com/space/devportal/desktop>
2.2 環境配置
如果開發者使用Python集成環境,需要在‘’使⽤説明‘’⸺\>‘’配置信息‘’當中,選擇CPU架構為X86,操作系統為‘’Ubuntu‘’,公共鏡像選擇為‘’Ubuntu 22.04 server定製版‘’。
注意:如果雲主機正在運行,需要先重置,等雲主機關機後再進行環境配置。
點擊‘’進入桌面‘’,進入到雲主機桌面中
2.3 打開Python集成開發環境
打開IDE後,選擇新建工程,然後按照下圖進行環境配置,注:名稱可以自定義,配置完成後點擊創建。
這樣,一個全新的Python工程就創建好啦!
3 房價預測模型創建
3.1 項目介紹
本項目旨在通過線性迴歸模型預測房屋總價。具體來説,我們將使用房屋面積作為自變量,總價作為因變量,通過線性迴歸模型來預測房屋總價,並評估模型的性能。
3.2 代碼分析
導入必要的庫
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score
- numpy:用於數值計算;
- matplotlib.pyplot:用於數據可視化;
- sklearn.linear_model.LinearRegression:用於創建線性迴歸模型;
- sklearn.model_selection.train_test_split:用於劃分訓練集和測試集;
- sklearn.metrics.mean_squared_error和sklearn.metrics.r2_score:用於評估模型性能。
注意:首次運行會出現報錯,因為編譯器裏沒有項目所需的一些依賴,要進行配置
打開終端,輸入對應依賴包:
以本項目為例:
pip install numpy
pip install matplotlib
pip install scikit-learn
# 安裝後可查看安裝結果
#在終端繼續輸⼊
pip list | grep numpy
#終端打印出:
numpy 2.2.2
#即為安裝成功
pip list | grep matplotlib
#終端打印出:
matplotlib 3.10.0
#即為安裝成功
pip list | grep scikit-learn
#終端打印出:
scikit-learn 1.6.1
#即為安裝成功
- 生成模擬數據
np.random.seed(0) # 設置隨機種⼦以保證結果可復現
# ⽣成房屋⾯積(平⽅⽶)
areas = np.random.uniform(50, 200, 100) # ⽣成100個⾯積,範圍在50到200平⽅⽶之間
# ⽣成單位⾯積的價格(元/平⽅⽶)
unit_prices = np.random.uniform(10000, 30000, 100) # ⽣成100個單位⾯積價格,範圍在10000到30000元/平⽅⽶之間
# 計算總價
total_prices = areas * unit_prices
# 將數據轉換為⼆維數組(scikit-learn需要⼆維輸⼊)
X = areas.reshape(-1, 1) # ⾃變量:⾯積
y = total_prices # 因變量:總價
- 使用Np.random.uniform生成房屋面積和單位面積價格的隨機數據;
- 計算房屋總價;
- 將自變量areas轉換為二維數組,以滿足scikit-learn的輸入要求。
- 劃分訓練集和測試
X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2,random_state=42)
- 使用train_test_split將數據劃分為訓練集和測試集,測試集佔總數據的20%
- 創建並訓練線性迴歸模型
model = LinearRegression()
model.fit(X_train, y_train)
- 創建LinearRegression模型;
- 使用訓練集數據訓練模型
- 預測測試集
y_pred = model.predict(X_test)
- 評估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"均⽅誤差 (MSE): {mse:.2f}")
print(f"決定係數 (R^2): {r2:.2f}")
- 使用均方誤差(MSE)和決定係數(R^2)評估模型性能。
- 打印評估結果
- 可視化結果
#可視化結果
plt.figure(figsize=(10,6))
plt.scatter(X_test,y_test, color='blue', label='real', alpha=0.6)
plt.plot(X_test,y_pred, color='red', linewidth=2, label='reveiew')
plt.xlabel('m\*m', fontsize=12)
plt.ylabel('RMB', fontsize=12)
plt.title('relationship', fontsize=14)
plt.legend(fontsize=10)
plt.grid(True)
#保存圖像
plt.savefig('example_plot.png')
print("圖像已保存為 example_plot.png")
# 顯⽰圖像
plt.show()
- 使用matplotlib.pyplot繪製散點圖和預測線;
- 保存圖像並顯示。
項目結果
- 均方誤差(MSE):衡量預測值與真實值之間的平均誤差平方;
- 決定係數(R^2):衡量模型對數據擬合程度,值越接近1表示擬合效果越好;
- 可視化圖像:展示了測試集的真實值和預測值之間的關係。
項目意義
本項目通過線性迴歸模型預測房屋總價,展示瞭如何使用scikit-learn進行數據預處理、模型訓練、預測和評估,以及如何使用matplotlib進行數據可視化。這為初學者提供了一個完成的機器學習項目示例。
運行結果
至此,從0開始使用華為雲開發者空間搭建房價預測實驗完成。