前言:数据预处理是美赛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)
2.1.3 KNN算法填充
根据样本观测值之间的相关性,利用欧氏距离寻找与缺失观测最相似的k个样本中的观测,填补缺失值。
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_regression
、mutual_info_regression
- 用于分类:
chi2
、f_classif
、mutual_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之前需要进行中心化,才能更好的表示原数据的分布情况;或是在神经网络训练的过程中。
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
列举了很多有关美国贸易和经济数据查询的链接