人工智能通識 實踐任務報告 Chap 3 機器學習-課程實驗_第1頁
人工智能通識 實踐任務報告 Chap 3 機器學習-課程實驗_第2頁
人工智能通識 實踐任務報告 Chap 3 機器學習-課程實驗_第3頁
人工智能通識 實踐任務報告 Chap 3 機器學習-課程實驗_第4頁
人工智能通識 實踐任務報告 Chap 3 機器學習-課程實驗_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《人工智能通識》實驗任務報告實踐章節(jié):學生姓名: 專業(yè)班級: 學號: 《第三章機器學習》課程實驗姓名學號班級實驗地點指導教師時間實驗任務一任務名稱基于Python的房價預估模型構建與應用2、任務目標(1)基于Python的房價預估模型構建與應用。(2)掌握使用Python編程語言及相關庫(如NumPy、pandas、scikit-learn等)進行數據處理、模型訓練和評估的方法。(3)通過構建房價預估模型,能夠準確預測給定房屋特征下的房價,為實際的房價評估提供參考依據。3、具體任務內容(1)數據收集與整理:收集包含房屋特征(如面積、房間數、樓層、房齡等)和對應房價的數據集,使用pandas庫對數據進行清洗、預處理,包括處理缺失值、異常值等。(2)數據分析與可視化:利用matplotlib、seaborn等庫對數據進行探索性分析,繪制各種圖表(如柱狀圖、折線圖、散點圖等),了解房屋特征與房價之間的關系。(3)模型選擇與訓練:選擇合適的機器學習回歸模型(如線性回歸、決策樹回歸、隨機森林回歸等),使用訓練數據集對模型進行訓練,通過調整模型參數,使模型達到較好的擬合效果。(4)模型評估與優(yōu)化:使用測試數據集對訓練好的模型進行評估,計算評估指標(如均方誤差、平均絕對誤差、決定系數等),根據評估結果對模型進行優(yōu)化,如調整參數、選擇不同的特征組合等。4、成果要求(1)代碼實現:提供完整、規(guī)范、注釋清晰的Python代碼,包括數據處理、模型訓練、評估和可視化等各個環(huán)節(jié)的代碼實現。(2)實驗報告:撰寫詳細的實驗報告,包括實驗目的、實驗方法、實驗過程、實驗結果及分析等內容,對模型的性能和優(yōu)缺點進行深入討論。(3)實驗報告:撰寫詳細的實驗報告,包括實驗目的、實驗方法、實驗過程、實驗結果及分析等內容,對模型的性能和優(yōu)缺點進行深入討論。(4)可視化結果:提供直觀清晰的可視化圖表,展示數據分布、特征與房價的關系以及模型的預測結果等,幫助理解和分析實驗過程及結果。實驗報告實驗任務(1)可視化結果:提供直觀清晰的可視化圖表,展示數據分布、特征與房價的關系以及模型的預測結果等,幫助理解和分析實驗過程及結果。(2)模型構建與訓練:基于線性回歸、隨機森林回歸、梯度提升回歸等機器學習算法,利用Python實現房價預估模型的搭建,并使用預處理后的數據進行模型訓練。(3)模型評估與優(yōu)化:通過均方誤差(MSE)、平均絕對誤差(MAE)、決定系數(R2)等指標評估模型性能,對模型參數進行調優(yōu),對比不同算法的預測效果。(4)實際應用與展示:使用優(yōu)化后的模型對新數據進行房價預測,以可視化方式展示預測結果,實現模型在房價預估場景的初步應用。2、實驗環(huán)境(1)硬件環(huán)境:計算機配置:CPU為IntelCorei5-10400F(主頻2.9GHz),內存16GBDDR4,硬盤512GBSSD,獨立顯卡NVIDIAGeForceGTX1650(4GB顯存)。其他設備:普通顯示器、標準鍵盤鼠標,用于代碼編寫、數據處理及模型訓練操作(2)軟件環(huán)境:操作系統:Windows1064位編程語言:Python3.8核心庫與框架:數據處理:pandas1.3.5、NumPy1.21.2數據可視化:matplotlib3.4.3、seaborn0.11.2機器學習:scikit-learn0.24.2、XGBoost1.5.2開發(fā)工具:JupyterNotebook6.4.6、PyCharm2022.1任務完成及步驟(1)數據收集與準備收集包含房屋特征(如面積、周邊配套、房齡等)和對應房價的數據集,使用pandas庫對數據進行清洗、預處理,包括處理缺失值、異常值等。比如收集市面上已經成功售出房屋的1000套房屋數據。周邊配套設施信息涵蓋是否臨近學校、醫(yī)院、商場,用“是”或“否”記錄;交通便利性則通過距離最近地鐵站的距離衡量,單位為千米。部分數據示例如下表。影響房價的因素很多,為了使案例簡單易懂,此處僅選取面積作為房價預估的影響因素,選取面積(平方米)作為特征,房價(萬元)作為標簽。房屋ID房屋面積(平方米)房齡(年)臨近學校臨近醫(yī)院臨近商場距地鐵站距離(千米)成交價格(萬元)1805是否是0.5125210010是是是1.215031253否是否0.81804908否是否0.713557512是是是1.511061106是否是0.316076015是否是2.09581304否否是0.61959857是是否1.01251010518是否是1.3155……下面需要對數據進行全面檢查,判斷其中是否存在缺失值與異常值。一旦發(fā)現缺失值,可以依據實際情況,選擇使用均值、中位數填充的方式來補齊數據,或者直接刪除包含缺失值的樣本。對于異常值,像房屋面積過大、價格過低這類不符合常理的數據點,要深入分析后,再進行合理處置。完成數據處理后,將處理好的數據保存為

house_price.csv

文件,使用Python的Pandas庫讀取數據。Python實現代碼如下:importpandasaspd

house_price_data=[

{'price':1250000,'area':80},

{'price':1500000,'area':100},

{'price':1800000,'area':125},

{'price':1350000,'area':90},

{'price':1100000,'area':75},

{'price':1600000,'area':110},

{'price':950000,'area':60},

{'price':1950000,'area':130},

{'price':1250000,'area':85},

{'price':1550000,'area':105},……

]

df1=pd.DataFrame(house_price_data)

df1.to_csv('house_price.csv',index=False)(2)模型選擇選用簡單線性回歸模型,公式為:y=θ0+θ1x,其中,y是預測的房價,x是房屋面積,θJθm是樣本數量,yi是第i(3)數據預處理對數據集使用Python的Scikit-learn庫將數據按70%訓練集、30%測試集劃分,Python代碼如下:fromsklearn.model_selectionimporttrain_test_splitimportpandasaspddata=pd.read_csv('house_price.csv')X=data['area'].values.reshape(-1,1)y=data['price'].valuesX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)接下來對房屋面積特征進行標準化,使數據具有零均值和單位方差,Python實現代碼如下:fromsklearn.preprocessingimportStandardScalerscaler=StandardScaler()X_train=scaler.fit_transform(X_train)X_test=scaler.transform(X_test)(4)模型訓練使用Scikit-learn的LinearRegression類訓練模型,Python實現代碼如下:fromsklearn.linear_modelimportLinearRegressionmodel=LinearRegression()model.fit(X_train,y_train)訓練后得到θ0和θ(5)模型評估對測試集進行預測,Python代碼如下:y_pred=model.predict(X_test)計算均方誤差(MSE)、均方根誤差(RMSE)和決定系數(R2),Python代碼如下:fromsklearn.metricsimportmean_squared_error,r2_scoremse=mean_squared_error(y_test,y_pred)rmse=mean_squared_error(y_test,y_pred,squared=False)r2=r2_score(y_test,y_pred)print(f'MeanSquaredError:{mse}')print(f'RootMeanSquaredError:{rmse}')print(f'R-squared:{r2}')運行結果為:MeanSquaredError:23361012777.108433RootMeanSquaredError:152843.098558R-squared:0.8866486112407173(6)結果可視化使用Matplotlib繪制實際房價與預測房價對比圖,以及房屋面積與房價的散點圖及擬合直線,Python代碼如下:importmatplotlib.pyplotaspltplt.figure(figsize=(12,6))#實際值與預測值對比plt.subplot(1,2,1)plt.scatter(range(len(y_test)),y_test,label='ActualPrice',color='blue')plt.scatter(range(len(y_pred)),y_pred,label='PredictedPrice',color='red',marker='x')plt.xlabel('SampleIndex')plt.ylabel('Price(10,000yuan)')plt.title('ActualvsPredictedHousePrices')plt.legend()#面積與房價散點圖及擬合直線plt.subplot(1,2,2)plt.scatter(X_test[:,0],y_test,label='ActualData',color='green')plt.plot(X_test[:,0],y_pred,label='FittedLine',color='orange',linewidth=2)plt.xlabel('HouseArea(Standardized)')plt.ylabel('Price(10,000yuan)')plt.title('HouseAreavsPrice')plt.legend()plt.tight_layout()plt.show()運行上述代碼,生成兩個圖表,如下圖所示。左圖展示實際房價和預測房價隨樣本索引的變化,藍色點為實際房價,紅色叉為預測房價。右圖展示標準化后的房屋面積與房價的關系,綠色點為實際數據,橙色線為擬合直線。實驗總結算法驗證與實現:通過Python成功構建基于線性回歸的房價預估模型,驗證了線性回歸算法在處理單一特征(房屋面積)與房價線性關系時的有效性,掌握了

numpy

、

matplotlib

scikit-learn

庫的基礎應用,熟悉了數據處理、模型訓練與可視化的完整流程。(2)模型局限性分析:由于僅考慮房屋面積單一因素,模型無法覆蓋房齡、地段、戶型等關鍵影響變量,導致預測精度受限,無法準確反映真實房價波動,暴露了單特征模型在復雜場景下的不足。(3)改進方向探索:后續(xù)可通過引入多元線性回歸,納入更多相關特征;嘗試非線性模型(如多項式回歸、隨機森林)以適應復雜數據分布;同時優(yōu)化數據預處理(如歸一化、特征篩選)和模型評估方法(交叉驗證),提升模型泛化能力。(4)實踐經驗總結:本次實驗強

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論