当前位置: 首页 > wzjs >正文

西安火车站建设seo这个行业怎么样

西安火车站建设,seo这个行业怎么样,招商局网站建设管理总结,爱聊网站Housing Prices 题意: 给出房子的各种特性,让你预测如今房子的价格。 思考: 数据处理: 1.用plt查看散点图,选择对价格影响高的特征值:YearBuilt,YearRemodAdd,GarageYrBlt。但是…

Housing Prices

题意:

给出房子的各种特性,让你预测如今房子的价格。

思考:

数据处理:

1.用plt查看散点图,选择对价格影响高的特征值:YearBuilt,YearRemodAdd,GarageYrBlt。但是不能直接用时间,更好的是用房子的售卖时间减去这些初始时间,这样更有参考度。

2.筛选出数值型列,null值用平均值填充筛。选出非数值型列,null值用众数填充。

3.选出所有非object类型的特征值名称,正态化处理,取对数,标准化处理。避免数据炸了,消除量纲差异。

4.最后进行独热编码即可。

建立模型:

1.从all_data中分离出模型训练的train数据和test数据,以及Y标签。

2.定义均方根误差函数,使用5折交叉验证,去评估模型。

3.建立Ridge模型,先预处理设置alphas通过训练求出最佳的alphas,打出表格查看最佳参数。给Ridge模型传入数据进行训练,求出测试集的答案,并且求expm1,这是因为前面我们训练的时候把Y标签的数据已经取了log,所以这里要expm回来。然后输出答案为csv文件,然后print看一下Ridge这个模型对本数据的均值mean和标准差std。

4.建立Lasso模型,这里直接传入一些参数lasso会自行选择最佳alpha。同理求出预测结果,然后输出模型的mean和std。

5.建立Xgboost模型,首先使用DMatirx构造出xgboost专属的train和test数据集,用xgb_cv交叉验证来训练 xgboost模型求出最佳迭代参数,然后传入xgb.XGBRegressor模型。同理求出预测结果,然后输出模型的mean和std。

6.建立以Xgboost为主ridge、lasso为辅的模型。使用StackingCVRegressor融合xgboost、ridge、lasso,同理求出预测结果,然后输出模型的mean和std。

7.模型融合,分别求出ridge、lasso、xgb、xgb_r_l,的预测结果,分别分配权重然后求出融合结果。

代码:

import sys
import numpy as np
import pandas as pd
import xgboost
from matplotlib import pyplot as plt
from scipy.stats import skew
from sklearn.linear_model import Ridge, LassoCV
from sklearn.model_selection import cross_val_score
from mlxtend.regressor import StackingCVRegressor
import warningswarnings.filterwarnings("ignore")
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
pd.set_option("display.max_rows", 1000)
pd.set_option("display.max_columns", 1000)# 数据初始化函数
def init_data(train_data, test_data):# 把id和saleprice删掉然后再拼接一起all_data = pd.concat([train_data.drop(['Id', 'SalePrice'], axis=1), test_data.drop(['Id'], axis=1)], axis=0)# 把房子的各种时间与房子售卖时间做差for i in ['YearBuilt', 'YearRemodAdd', 'GarageYrBlt']:all_data[i] = all_data['YrSold'] - all_data[i]# 筛选出数值型列,null值用平均值填充numeric_cols = all_data.select_dtypes(include=np.number).columnsfor col in numeric_cols:all_data[col] = all_data[col].fillna(all_data[col].mean())# 筛选出非数值型列,null值用众数填充non_numeric_cols = all_data.select_dtypes(exclude=np.number).columnsfor col in non_numeric_cols:all_data[col] = all_data[col].fillna(all_data[col].mode()[0])# 正态化train_data["SalePrice"] = np.log1p(train_data["SalePrice"])numeric_feats = all_data.dtypes[all_data.dtypes != 'object'].index  # 非object的特征个数skewed_feats = train_data[numeric_feats].apply(lambda x: skew(x.dropna()))skewed_feats = skewed_feats[skewed_feats > 0.75]skewed_feats = skewed_feats.indexall_data[skewed_feats] = np.log1p(all_data[skewed_feats])# 连续值归一化all_data[numeric_feats] = all_data[numeric_feats].apply(lambda x: (x - x.mean()) / (x.std()))# 独热编码all_data = pd.get_dummies(all_data)return all_data# 计算不同模型下在X_train与Y这组测试数据中的水平
def rmse_cv(model, X_train, Y):rmse = np.sqrt(-cross_val_score(model, X_train, Y, scoring='neg_mean_squared_error', cv=5))return rmseif __name__ == '__main__':train_data = pd.read_csv('/kaggle/input/home-data-for-ml-course/train.csv')test_data = pd.read_csv('/kaggle/input/home-data-for-ml-course/test.csv')all_data = init_data(train_data, test_data)X_train = all_data[:train_data.shape[0]]X_test = all_data[train_data.shape[0]:]Y = train_data['SalePrice']# 建立Ridge回归模型alphas = [0.05, 0.1, 0.3, 1, 3, 5, 10, 15, 30, 50, 75]cv_ridge = [rmse_cv(Ridge(alpha=i), X_train, Y).mean() for i in alphas]cv_ridge = pd.Series(cv_ridge, index=alphas)cv_ridge.plot(title="Validation")plt.xlabel("Alpha")plt.ylabel("RMSE")plt.show()model_ridge = Ridge(alpha=10)ridge_model_after_fit = model_ridge.fit(X_train, Y)ridge_preds = np.expm1(model_ridge.predict(X_test))solution = pd.DataFrame({"id": test_data['Id'], "SalePrice": ridge_preds})solution.to_csv('ridge_sol.csv', index=False)print("model_ridge:" + str(rmse_cv(model_ridge, X_train, Y).mean()) + "   " + str(rmse_cv(model_ridge, X_train, Y).std()))# 建立Lasso回归模型model_lasso = LassoCV(alphas=[20, 10, 1, 0.1, 0.01, 0.001, 0.0005]).fit(X_train, Y)lasso_preds = np.expm1(model_lasso.predict(X_test))solution = pd.DataFrame({"id": test_data['Id'], "SalePrice": lasso_preds})solution.to_csv('lasso_sol.csv', index=False)print("model_lasso:" + str(rmse_cv(model_lasso, X_train, Y).mean()) + "   " + str(rmse_cv(model_lasso, X_train, Y).std()))# 建立xgboost回归模型xgb_cv_train = xgboost.DMatrix(X_train, label=Y)xgb_cv_test = xgboost.DMatrix(X_test)params = {"objective": "reg:squarederror","max_depth": 4,"colsample_bylevel": 0.5,"learning_rate": 0.1,"random_state": 20}model_xgb_test = xgboost.cv(params,xgb_cv_train,num_boost_round=500,early_stopping_rounds=100,as_pandas=True)model_xgb = xgboost.XGBRegressor(n_estimators=model_xgb_test["test-rmse-mean"].idxmin(), max_depth=4, learning_rate=0.3)model_xgb.fit(X_train, Y)xgb_preds = np.expm1(model_xgb.predict(X_test))solution = pd.DataFrame({"id": test_data['Id'], "SalePrice": xgb_preds})solution.to_csv('xgb_sol.csv', index=False)print("model_xgb:" + str(rmse_cv(model_xgb, X_train, Y).mean()) + "   " + str(rmse_cv(model_xgb, X_train, Y).std()))# xgboost为主、ridge与lasso为辅model_x_r_l = StackingCVRegressor(regressors=(model_ridge, model_lasso, model_xgb),meta_regressor=model_xgb,use_features_in_secondary=True)model_x_r_l.fit(X_train, Y)model_x_r_l_preds = np.expm1(model_x_r_l.predict(X_test))solution = pd.DataFrame({"id": test_data['Id'], "SalePrice": model_x_r_l_preds})solution.to_csv('model_x_r_l.csv', index=False)print("model_x_r_l:" + str(rmse_cv(model_x_r_l, X_train, Y).mean()) + "   " + str(rmse_cv(model_x_r_l, X_train, Y).std()))# 尝试混合模型preds1 = model_ridge.predict(X_test)preds2 = model_lasso.predict(X_test)preds3 = model_xgb.predict(X_test)preds4 = model_x_r_l.predict(X_test)combine_preds = 0.4 * preds1 + 0.6 * preds4combine_preds = np.floor(np.expm1(combine_preds))solution = pd.DataFrame({"id": test_data['Id'], "SalePrice": combine_preds})solution.to_csv('/kaggle/working/Submission.csv', index=False)
http://www.dtcms.com/wzjs/117051.html

相关文章:

  • 教育机构做网站素材c++线上培训机构哪个好
  • 莱州网站建设百度seo什么意思
  • 公司找人做的网站到现在还没出来seo网上课程
  • 云南网站建设天度网站优化排名软件
  • wordpress数据库分表win优化大师
  • 武汉网站建设公司027seo外链建设的方法
  • 道路建设去什么网站能看到互动营销案例100
  • 如何说服企业做网站网站排名靠前的方法
  • 互站网官网网店推广营销方案
  • 做外贸网站流程图seo管理是什么
  • 婚庆公司网站模板seo服务方案
  • 电脑网站怎样给网页做适配网络营销推广方案策划与实施
  • 政府部门网站模版网站首页模板
  • 珠海做网站三年多少钱迅雷磁力链bt磁力天堂
  • 手机app开发需要什么技术信息流优化师发展前景
  • 手机触屏网站制作软件国内b站不收费网站有哪些
  • 代做设计网站好本地推荐本地推荐
  • 网站优化任务永久免费的培训学校管理软件
  • 宁波网站建设ysdsh百度统计app下载
  • 中山网站seo论坛排名
  • o2o是什么意思啊百度seo怎么操作
  • 干净简约的网站网站模板下载免费
  • 广府网站建设东莞网站建设推广公司
  • 网站建设要学多久百度2023免费
  • 51个人空间相册西安网站seo价格
  • 界面设计与制作主要学什么优化大师软件大全
  • 外贸网站建设.cover排名优化外包公司
  • 怎么做装修网站公司想做网络推广贵不
  • 苏州怎么制作网页网站青岛网站制作seo
  • 团队协同网站开发少儿培训