欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

讯飞开发者大赛-环境空气质量评价挑战赛baseline

发布时间:2023/12/29 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 讯飞开发者大赛-环境空气质量评价挑战赛baseline 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

前言

最近讯飞开发者大赛如火如荼地进行着,各赛道赛题都具有挑战性,大家都可以参与挑战
大赛地址:http://challenge.xfyun.cn/?ch=ds-sq-bm

环境空气质量评价挑战赛

数据说明

具体的数据只有报名后即可下载,数据量并不大,初赛训练集和测试集都只有几百条数据

评价指标

本模型依据提交的结果文件,利用均方根误差(RMSE)评价模型。
(1) 样本的相对综合污染系数 IPRC,用于判断样本之间的相对污染程度。
(2) 基于IPRC,计算RMSE. 其中m为样本数,y为IPRC真实值,y_pred为IPRC预测值。

对于初学者来说,有一个baseline比较好上手,所以初步选了一个XGBoost模型作为baseline的模型,线上提交结果分数有0.08247,代码如下:

import lightgbm as lgb import xgboost as xgb import matplotlib.pyplot as plt import numpy as np import pandas as pd import seaborn as sns import sklearn from sklearn import metrics from sklearn.model_selection import KFold from sklearn.preprocessing import LabelEncoder from sklearn.metrics import mean_squared_error from sklearn.model_selection import StratifiedKFold, KFold import math import datetime from sklearn.preprocessing import LabelEncoder import re from sklearn.linear_model import Ridge from catboost import CatBoostRegressor from sklearn.ensemble import RandomForestRegressor from sklearn import ensemble from sklearn.preprocessing import Imputer from sklearn import preprocessing from sklearn.model_selection import KFold, StratifiedKFold from sklearn.model_selection import cross_val_score, cross_validate, cross_val_predict, GridSearchCV from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error, make_scorer from sklearn.model_selection import train_test_split,cross_val_score from sklearn.metrics import roc_auc_scoretrain=pd.read_csv('保定2016年.csv') test=pd.read_csv('石家庄20160701-20170701.csv') data=pd.concat([train,test]) #Encoder quality_le = LabelEncoder() quality_le.fit(data['质量等级'].values) data['质量等级'] = quality_le.transform(data['质量等级'].values) #简单时间处理 data['日期'] = pd.to_datetime(data['日期'],format='%Y-%m-%d') data['month']=data['日期'].dt.month data['day']=data['日期'].dt.day data['weekday']=data['日期'].dt.weekdaytrain_new=data[data['IPRC'].notnull()] test_new=data[data['IPRC'].isnull()]train_x = train_new.drop(['日期','IPRC'],axis=1) # 训练集输入 target = train_new['IPRC'] # 训练集标签 test_x = test_new.drop(['日期','IPRC'],axis=1) # 测试集输入 #xgb xlf=xgb.XGBRegressor(max_depth=7,learning_rate=0.05,n_estimators=10000,subsample=0.8) answers = [] score = 0 n_fold = 5 folds = KFold(n_splits=n_fold, shuffle=True,random_state=1314) for fold_n, (train_index, valid_index) in enumerate(folds.split(train_x)):X_train, X_valid = train_x.iloc[train_index], train_x.iloc[valid_index]y_train, y_valid = target[train_index], target[valid_index]xlf.fit(X_train,y_train,eval_set=[(X_valid, y_valid)],verbose=100,early_stopping_rounds=100)y_pre=xlf.predict(X_valid)print('每一折验证分数:'+str(mean_squared_error(y_valid,y_pre)))score = score + mean_squared_error(y_valid,y_pre)y_pred_valid = xlf.predict(test_x)answers.append(y_pred_valid) xgb_pre=sum(answers)/n_fold print('xgb验证分数'+str(math.sqrt(score/n_fold))) result=pd.DataFrame() result['date']=test['日期'] result['IPRC']=xgb_pre result.to_csv('空气质量.csv',index=False)#保存结果

写在最后

本人才疏学浅,如果有错误的地方请包涵并指正,有问题也可以提出讨论,祝大家在大赛中取得好成绩!

总结

以上是生活随笔为你收集整理的讯飞开发者大赛-环境空气质量评价挑战赛baseline的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。