怎么用Python預測房價走勢

這篇文章主要介紹“怎么用Python預測房價走勢”,在日常操作中,相信很多人在怎么用Python預測房價走勢問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Python預測房價走勢”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目前成都創新互聯公司已為成百上千的企業提供了網站建設、域名、雅安服務器托管、網站托管維護、企業網站設計、九臺網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

項目描述

利用馬薩諸塞州波士頓郊區的房屋信息數據訓練和測試一個模型,并對模型的性能和預測能力進行測試;

項目分析

數據集字段解釋:

  1. 鴻蒙官方戰略合作共建——HarmonyOS技術社區

  2. RM: 住宅平均房間數量;

  3. LSTAT: 區域中被認為是低收入階層的比率;

  4. PTRATIO: 鎮上學生與教師數量比例;

  5. MEDV: 房屋的中值價格(目標特征,即我們要預測的值);

其實現在回過頭來看,前三個特征應該都是挖掘后的組合特征,比如RM,通常在原始數據中會分為多個特征:一樓房間、二樓房間、廚房、臥室個數、地下室房間等等,這里應該是為了教學簡單化了;

MEDV為我們要預測的值,屬于回歸問題,另外數據集不大(不到500個數據點),小數據集上的回歸問題,現在的我初步考慮會用SVM,稍后讓我們看看當時的選擇;

Show Time

Step 1 導入數據

注意點:

  1. 鴻蒙官方戰略合作共建——HarmonyOS技術社區

  2. 如果數據在多個csv中(比如很多銷售項目中,銷售數據和店鋪數據是分開兩個csv的,類似數據庫的兩張表),這里一般要連接起來;

  3. 訓練數據和測試數據連接起來,這是為了后續的數據處理的一致,否則訓練模型時會有問題(比如用訓練數據訓練的模型,預測測試數據時報錯維度不一致);

  4. 觀察下數據量,數據量對于后續選擇算法、可視化方法等有比較大的影響,所以一般會看一下;

  5. pandas內存優化,這一點項目中目前沒有,但是我最近的項目有用到,簡單說一下,通過對特征字段的數據類型向下轉換(比如int64轉為int8)降低對內存的使用,這里很重要,數據量大時很容易撐爆個人電腦的內存存儲;

上代碼:

# 載入波士頓房屋的數據集  data = pd.read_csv('housing.csv')  prices = data['MEDV']  features = data.drop('MEDV', axis =1)   # 完成   print"Boston housing dataset has {} data points with {} variables each.".format(*data.shape)

Step 2 分析數據

加載數據后,不要直接就急匆匆的上各種處理手段,加各種模型,先慢一點,對數據進行一個初步的了解,了解其各個特征的統計值、分布情況、與目標特征的關系,最好進行可視化,這樣會看到很多意料之外的東西;

基礎統計運算

統計運算用于了解某個特征的整體取值情況,它的最大最小值,平均值中位數,百分位數等等,這些都是最簡單的對一個字段進行了解的手段;

上代碼:

#目標:計算價值的最小值  minimum_price = np.min(prices)# prices.min   #目標:計算價值的最大值  maximum_price = np.max(prices)# prices.max   #目標:計算價值的平均值  mean_price = np.mean(prices)# prices.mean   #目標:計算價值的中值  median_price = np.median(prices)# prices.median   #目標:計算價值的標準差  std_price = np.std(prices)# prices.std

特征觀察

這里主要考慮各個特征與目標之間的關系,比如是正相關還是負相關,通常都是通過對業務的了解而來的,這里就延伸出一個點,機器學習項目通常來說,對業務越了解,越容易得到好的效果,因為所謂的特征工程其實就是理解業務、深挖業務的過程;

比如這個問題中的三個特征:

  • RM:房間個數明顯應該是與房價正相關的;

  • LSTAT:低收入比例一定程度上表示著這個社區的級別,因此應該是負相關;

  • PTRATIO:學生/教師比例越高,說明教育資源越緊缺,也應該是負相關;

上述這三個點,同樣可以通過可視化的方式來驗證,事實上也應該去驗證而不是只靠主觀猜想,有些情況下,主觀感覺與客觀事實是完全相反的,這里要注意;

Step 3 數據劃分

為了驗證模型的好壞,通常的做法是進行cv,即交叉驗證,基本思路是將數據平均劃分N塊,取其中N-1塊訓練,并對另外1塊做預測,并比對預測結果與實際結果,這個過程反復N次直到每一塊都作為驗證數據使用過;

上代碼:

# 提示:導入train_test_split  fromsklearn.model_selectionimporttrain_test_split   X_train, X_test, y_train, y_test = train_test_split(features, prices, test_size=0.2, random_state=RANDOM_STATE)  printX_train.shape  printX_test.shape  printy_train.shape  printy_test.shape

Step 4 定義評價函數

這里主要是根據問題來定義,比如分類問題用的最多的是準確率(精確率、召回率也有使用,具體看業務場景中更重視什么),回歸問題用RMSE(均方誤差)等等,實際項目中根據業務特點經常會有需要去自定義評價函數的時候,這里就比較靈活;

Step 5 模型調優

通過GridSearch對模型參數進行網格組合搜索最優,注意這里要考慮數據量以及組合后的可能個數,避免運行時間過長哈。

上代碼:

fromsklearn.model_selectionimportKFold,GridSearchCV  fromsklearn.treeimportDecisionTreeRegressor  fromsklearn.metricsimportmake_scorer    deffit_model(X, y):  """ 基于輸入數據 [X,y],利于網格搜索找到最優的決策樹模型"""   cross_validator = KFold   regressor = DecisionTreeRegressor   params = {'max_depth':[1,2,3,4,5,6,7,8,9,10]}   scoring_fnc = make_scorer(performance_metric)   grid = GridSearchCV(estimator=regressor, param_grid=params, scoring=scoring_fnc, cv=cross_validator)   # 基于輸入數據 [X,y],進行網格搜索  grid = grid.fit(X, y)   # 返回網格搜索后的最優模型  returngrid.best_estimator_

可以看到當時項目中選擇的是決策樹模型,現在看,樹模型在這種小數據集上其實是比較容易過擬合的,因此可以考慮用SVM代替,你也可以試試哈,我估計是SVM效果比較好;

學習曲線

通過繪制分析學習曲線,可以對模型當前狀態有一個基本了解,如下圖:

怎么用Python預測房價走勢

可以看到,超參數max_depth為1和3時,明顯訓練分數過低,這說明此時模型有欠擬合的情況,而當max_depth為6和10時,明顯訓練分數和驗證分析差距過大,說明出現了過擬合,因此我們初步可以猜測,優質參數在3和6之間,即4,5中的一個,其他參數一樣可以通過學習曲線來進行可視化分析,判斷是欠擬合還是過擬合,再分別進行針對處理;

到此,關于“怎么用Python預測房價走勢”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注創新互聯網站,小編會繼續努力為大家帶來更多實用的文章!

新聞名稱:怎么用Python預測房價走勢
本文鏈接:http://m.kartarina.com/article16/pihedg.html

成都網站建設公司_創新互聯,為您提供網站建設網站導航關鍵詞優化軟件開發網站內鏈商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 精品无码无人网站免费视频| 亚洲AV日韩AV高潮无码专区| 日韩精品少妇无码受不了| yy111111少妇无码影院| 国产亚洲精品无码专区| 久久精品中文字幕无码绿巨人| 在线看片福利无码网址| V一区无码内射国产| 日韩亚洲AV无码一区二区不卡| 无码视频免费一区二三区| 久久午夜无码鲁丝片秋霞| 无码8090精品久久一区| 无码人妻丰满熟妇啪啪网站| 亚洲精品无码久久久久去q| 免费无码又爽又刺激毛片| 精品爆乳一区二区三区无码av| 亚洲精品无码MV在线观看| 精品无人区无码乱码毛片国产| 午夜爽喷水无码成人18禁三级| 人妻丰满熟妞av无码区| 无码一区二区三区视频| 国内精品人妻无码久久久影院| 成人免费无码H在线观看不卡 | 久久无码一区二区三区少妇 | 亚洲国产91精品无码专区| 亚洲av无码不卡一区二区三区| 狠狠久久精品中文字幕无码| 亚洲另类无码一区二区三区| 久久久无码精品亚洲日韩按摩| 亚洲日韩精品无码一区二区三区| 嫩草影院无码av| 无码人妻精品一区二区蜜桃百度| 无码亚洲成a人在线观看| 免费无码AV片在线观看软件| 无码国产精品一区二区免费| 亚洲av中文无码乱人伦在线观看 | 日韩av无码国产精品| 亚洲av永久无码精品秋霞电影秋| 麻豆国产精品无码视频| 中字无码av电影在线观看网站 | 亚洲色在线无码国产精品不卡|