数学建模之数据处理

前言:数据预处理是美赛C题最重要的组成部分,十分考验我们对问题的理解与抽象,我们的重心应该放在数据处理而非算法上,算法只需选择合适的即可,无需高大上!下面介绍数模中数据预处理涉及到的一些重要。

1.数据获取与目标

1.1 数据获取

拿美赛C题为例,20年、21年的数据压缩前分别为4.6MB和662.8MB,由此可见美赛的C题对于数据量的要求更高了,除此之外,若我们需要额外的数据集,则需从4中找到合适的网站进行搜索。

拿到数据后,一般都是csv或excel文件,我们通常使用python的pandas库进行数据预处理,具体内容包含原始数据的异常值检测、残缺值处理以及特征选择与处理。

通常会将数据转成pandas.DataFrame进行操作,可参考博文https://blog.csdn.net/m0_46246301/article/details/109554066

1.2 目标

根据题意,我们需要把题目需求抽象成一个合适的数学模型,可能涉及分类、聚类、拟合、预测、评估、优化等方面。为此我们设定一个大方向,然后以流程图的形式绘制出发散性的树形图(即各个小目标),从而完善我们的整个模型框架,从各个小目标中分别对数据进行处理,处理流程如下所示。

2.原始数据的残缺值处理与异常值检测

2.1 残缺值处理

2.1.1 邻近替换【matlab的fillmissing方法】
  • 前/后一个非缺失值将其替换
  • 最近的非缺失值替换
  • 相邻的非离群值线性插值填充
test_data1=fillmissing(test_data,'previous');
test_data1=fillmissing(test_data,'next');
test_data1=fillmissing(test_data,'nearest');
test_data1=fillmissing(test_data,'linear');
2.1.2 插值法填充
2.1.2.1 分段三次Hermite插值法
% x为已知样本点的横坐标,y是已知样本点的纵坐标
% new_x是要插入处对应的横坐标,返回p为new_x带入插值多项式下的值
p = pchip(x,y,new_x)
2.1.2.2 三次样条插值法
% x为已知样本点的横坐标,y是已知样本点的纵坐标
% new_x是要插入处对应的横坐标,返回p为new_x带入插值多项式下的值
p = spline(x,y,new_x)

详情见博客Hermite插值法和三次样条插值法

2.1.3 KNN算法填充

根据样本观测值之间的相关性,利用欧氏距离寻找与缺失观测最相似的k个样本中的观测,填补缺失值。

请参考sklearn库实现的文章

2.1.4 拟合值/预测值填充

选择一个合适的拟合/预测模型,将拟合值/预测值直接填充即可。

2.2 异常值检测

2.2.1 拉依达准则【发现异常值】

参考文章https://blog.csdn.net/m0_46246301/article/details/106562077

针对于pandas dataframe,直接求出标准差sigma进行筛选即可找到异常值。

2.2.2 替换异常值

替换方法跟缺失值的替换一致,我们可以直接将其看作缺失值进行处理,替换方法如上。

3.特征选择与处理

3.1 特征选择

特征选择是一个抽象的过程,直接取决于1.2中对题目的抽象。

至于如何把特征选取出来以及理解与思考
可阅读知乎文章

3.1.1 sklearn中的特征选择

sklearn.feature_selection模块中的类能够用于数据集的特征选择/降维,以此来提高预测模型的准确率或改善它们在高维数据集上的表现。

3.1.1.1 移除低方差特征

它会移除所有方差不满足阈值的特征。默认设置下,它将移除所有方差为0的特征,即那些在所有样本中数值完全相同的特征。

from sklearn.feature_selection import VarianceThreshold

X = [[0, 0, 1], [0, 1, 0], [1, 0, 0], [0, 1, 1], [0, 1, 0], [0, 1, 1]]
# 移除那些超过80%的数据都为1或0的特征
sel = VarianceThreshold(threshold=(.8 * (1 - .8)))
sel.fit_transform(X)
'''
array([[0, 1],
 	  [1, 0],
	  [0, 0],
	  [1, 1],
	  [1, 0],
	  [1, 1]])
移除了第一列特征,第一列中特征值为0的概率达到了 p = 5/6 > .8 
'''
3.1.1.2 单变量特征选择

单变量特征选择基于单变量的统计测试来选择最佳特征。它可以看作预测模型的一项预处理。

  • SelectKBest移除得分前k名以外的所有特征
  • 用于回归:f_regressionmutual_info_regression
  • 用于分类:chi2f_classifmutual_info_classif
from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
iris = load_iris()
X, y = iris.data, iris.target
print(X.shape)
X_new = SelectKBest(chi2, k=2).fit_transform(X, y)
print(X_new.shape)
3.1.1.3 递归特征消除
3.1.1.4 SelectFromModel选择特征

详细内容请参考文章

3.2 标准化、归一化、中心化

3.2.1 标准化

对不同特征维度的数据进行伸缩变换,使不同度量之间的特征具有可比性,同时不该改变原始数据的分布状态,转化为无量纲的纯数值后,便于不同单位或量级的指标能够进行比较、加权。

优点

  • 使得不同度量之间的特征具有可比性;对目标函数的影响体现在几何分布(离散型概率分布)上,而非数值上。
  • 不改变原始数据的分布。
3.2.2 归一化

对不同特征维度的数据进行伸缩变换,使各个特征维度对目标函数的影响权重使一致的,使扁平分布伸缩成圆形分布。

优点

  • 提高迭代求解的收敛速度和精度。
3.2.3 中心化

一个平移的过程,平移后数据中心为原点。例如在使用PCA之前需要进行中心化,才能更好的表示原数据的分布情况;或是在神经网络训练的过程中。

详细介绍内容请参考文章

多种标准化的python代码可参考

3.3 数据集划分

用于训练的数据集通常会划分为训练集和测试集【一般7:3左右】

可以直接使用sklearn库的train_test_split进行划分

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(x,y,test_size=0.3)

4.常用网站

有时题目要求自己查找数据,或是题目给出的数据不足以用来构建我们的模型,还需题外数据加以辅助说明,此时查询数据的网站就显得十分重要了,网站如下:

1、http://www.census.gov/
美国统计局(统计调查局或普查局)官方网站
2、http://www.bls.gov/
美国劳工部
3、http://www.stat-usa.gov/
美国商务部的官方网站
4、http://hermia.sourceoecd.org/vl=11336507/cl=72/nw=1/rpsv/factbook/
OECD的官方网站
5、http://www.usitc.gov/
美国国际贸易委员会
6、http://a257.g.akamaitech.net/7/257/2422/17feb20051700/www.gpoaccess.gov/eop/download.html
美国总统经济报告历年的的PDF文本下载,以及历年的有关数据下载,绝对权威,非常有用。
7、http://www.ustr.gov/Document_Library/Reports_Publications/2005/2005_NTE_Report/Section_Index.html
美国贸易谈判代表办公室官方网站,每年都有关于贸易壁垒的评估报告,可以下载。
8、http://www.eu.int/comm/trade/issues/bilateral/data.htm
欧盟对外贸易数据
9、http://europa.eu.int/comm/trade/issues/bilateral/countries/usa/index_en.htm
欧盟官方网站,本网页是关于欧盟与美国关系的,有数据可用
10、http://www.eurunion.org/
欧盟驻美国使团官方网站。有许多有关欧美经贸关系的文章和报道以及报告。
10、http://www.useu.be/
美国驻欧盟官方网站,和上面一个同样重要。
12、http://www.state.gov/p/eur/
美国国务院欧盟事务局官方网站,
13、http://www.usembassy.org.uk/euro300.html
美国驻英国大使馆官方网站
14、http://www.usinfo.org/chinese.htm
美国资讯网,是研究美国经济、文化、历史很好的一个网站,有很多美国经济方面的信息和资料。
15、http://www.eurunion.org/profile/facts.htm
欧盟与美国的贸易有关统计
16、http://www.doc.gov/
美国商务部
17、http://www.wto.org/
世界贸易组织
18、http://www.usembassy.at/en/policy/us_eu.htm
美国驻奥地利大使馆(有很多有用的资料)
19、http://www.usembassy.org.uk/trade.html
美国驻英国大使馆
20、http://www.useu.be/Categories/Trade/Index.htm
一个特别有用的关于美国和欧盟关系的网站,资料颇多。
21、http://tse.export.gov/ITAHome.aspx?UniqueURL=totktu55uoytvlzhfmzfft45-2005-5-29-21-28-55
美国进出口数据的非常好的一个网站
22、http://www.usaexportimport.com/trade_and_economic_statistics.html
列举了很多有关美国贸易和经济数据查询的链接

常用网站来自该文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的风666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值