QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2817|回复: 0
打印 上一主题 下一主题

房价预测(线性回归)

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-31 16:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
数据集:使用加利福尼亚房价数据集。- F1 f, a) g# _* Q
任务:构建一个模型预测加利福尼亚地区的房价。
! R& c0 R8 a5 K3 a挑战:尝试不同的预处理方法(标准化、归一化等)和特征选择技术来改进模型性能。
/ g2 f% l) T' j( y) G线性回归是一种预测数值型数据的经典统计方法,它假设目标值和特征之间存在线性关系。在房价预测任务中,我们可以使用线性回归模型来预测基于多个特征(如房屋大小、位置、年龄等)的房价。以下是使用加利福尼亚房价数据集进行房价预测的示例代码,以及如何应用不同的预处理方法和特征选择技术来改进模型性能。: w2 O+ ^2 h# L% J2 ^% G5 S! {" m- ?

& L% j7 ^$ d( t加载和预处理数据
5 b& T& ?( E% ]# P& l首先,我们从scikit-learn中加载加利福尼亚房价数据集,并进行基本的数据预处理。
  1. from sklearn.datasets import fetch_california_housing
  2. & B% d/ u# j3 {( h4 t\\" v0 ^. P

  3. 4 b2 f+ G/ _' L1 u\\" [, \0 ^: q' D
  4. from sklearn.model_selection import train_test_split; H/ d. `& J# D7 u. H1 P
  5. 9 ?/ }) n) l1 o+ Y& r% Z
  6. from sklearn.preprocessing import StandardScaler& @- f5 r) U! b1 H4 A

  7. 2 f+ T2 d  Z3 Q( b( c
  8. from sklearn.linear_model import LinearRegression! r' S' k/ u6 P) ^: H
  9. ' G  X  p\\" D1 g1 c' W& a7 R$ c
  10. from sklearn.metrics import mean_squared_error( J3 ^* A6 P* L& Q

  11. 0 Y1 b, O; V$ j; ^! l2 n# _6 I% Q

  12. 7 ~2 y' J2 u: }4 [1 v
  13. 0 q1 t$ i, t: _4 h- E; j
  14. # 加载数据集
  15. 5 J! _1 I; @$ x* j
  16. / u) c3 O3 G5 P7 W$ Y8 Y
  17. housing = fetch_california_housing()3 E6 j# ~\\" k& x+ }5 M
  18. 2 O7 a/ a. r$ Q
  19. X, y = housing.data, housing.target
  20. / D4 z/ [1 j\\" u* x7 ?8 @( N
  21. / e# a9 F: M+ \, g- h4 Q, R2 U

  22. 0 n) M' `/ Y: }! b. b# r

  23. / R; K  c7 c. P, h9 j! Y; G* K- ?
  24. # 划分训练集和测试集
  25. - L5 h5 n: o* x. f

  26. ; e( t4 W/ K2 k& P
  27. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)7 P6 q/ e/ {. B' w

  28. 4 S( \! B. f0 T, w6 l
  29. + o7 i+ e( L\\" ]
  30. . g  i: j7 p2 a! l+ H/ t& E
  31. # 数据预处理:标准化3 b$ ^0 h# w2 i& B+ `

  32. 6 P+ _\\" x, |7 w2 ?+ F* v
  33. scaler = StandardScaler()6 ]+ C- G\\" w4 N0 I# m
  34. ( N! }  \. R9 q% O( [( }# o
  35. X_train_scaled = scaler.fit_transform(X_train)9 ]5 Z& _2 l. }\\" y
  36. 6 L! S6 \' \; k- s* D5 I
  37. X_test_scaled = scaler.transform(X_test)
构建和训练线性回归模型
  1. # 创建线性回归模型0 n1 Z. t2 c; V' y# @
  2. model = LinearRegression(), `) ]4 V9 t\" m4 D

  3. , V& p1 s; x) I( S6 w' \
  4. # 训练模型
    ' d: O0 H/ D4 t3 @$ e3 l
  5. model.fit(X_train_scaled, y_train)8 X# o2 y9 ]9 T$ O5 u  W

  6. / [1 y8 @4 p& i
  7. # 预测测试集+ t3 y% S; j3 u2 Q9 v& k\" N
  8. y_pred = model.predict(X_test_scaled)\" o+ {8 |) C5 `, v9 k! B# f% q- |
  9. ) O3 B) B8 b% \' z, Z) j
  10. # 评估模型( K  k3 T  O0 _4 [% P
  11. mse = mean_squared_error(y_test, y_pred)# a5 F5 N9 j6 L& J4 f: F9 V
  12. print(f"Mean Squared Error: {mse}")
复制代码
挑战:尝试不同的预处理方法和特征选择1 F$ }* g, p: V
预处理方法:除了标准化,你还可以尝试归一化(MinMaxScaler)、对数转换等方法,看看它们如何影响模型的性能。% e# \; z1 d% Y, p* \" T2 F
特征选择:可以使用不同的特征选择方法(如SelectKBest, SelectFromModel)来选择最有影响力的特征,这有助于模型专注于最重要的信息,提高预测准确性。
  1. from sklearn.feature_selection import SelectKBest, f_regression2 U! s9 P6 E. @3 w! n% N

  2. 6 N1 k, L& q  c$ I- v# F
  3. # 特征选择0 L! m' o8 a8 u! {; Q: Z! c
  4. selector = SelectKBest(score_func=f_regression, k=5)6 j2 n& G( ~7 Y1 c0 [' z
  5. X_train_selected = selector.fit_transform(X_train_scaled, y_train); V. ?, ?/ h, `
  6. X_test_selected = selector.transform(X_test_scaled)
    7 I7 A8 T$ D0 s2 M0 `3 R\" A
  7. : P7 w; ^+ T, `5 r
  8. # 使用选择的特征重新训练模型; h+ g/ z0 @5 Z5 Q
  9. model.fit(X_train_selected, y_train)4 X6 M/ ?' [) |8 p8 z
  10. y_pred_selected = model.predict(X_test_selected)
    4 A' e, v8 `8 N! r7 u4 t
  11. . L0 I* ?- z( N% F# m: m& k\" R3 p
  12. # 评估
    9 E5 o\" r  Z7 v\" Q: g2 e
  13. mse_selected = mean_squared_error(y_test, y_pred_selected)
    , B# V0 `$ Y6 W5 J1 f  Y7 p0 t! g9 \
  14. print(f"Mean Squared Error with selected features: {mse_selected}")
复制代码

7 N. ?) Z7 K& }0 r7 x( T
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-28 15:36 , Processed in 0.743256 second(s), 51 queries .

回顶部