分析数据-设置验证集-检查数据泄露
分析步骤:
-
了解领域知识
-
搜索关键词,搜索数据的含义
-
-
检查数据是否存在异常值,超出范围的值
-
理解如何生成特征
分析匿名数据(Anonymized data)
对于某些数据集中的特征被匿名的情况,我们需要通过一定的手段来推测特征的含义或者特征的类型。例如下表中,原始的text信息被使用一定的加密手段加密,给出了加密后的encode信息
Anonymized data:
对于匿名数据的探究可以从以下几个方面进行:
-
猜想每列的物理含义
-
猜测每列的数据类型:数值类型、类别变量、时间类型
-
试图寻找特征列之间的关系
-
试图寻找特征群
pandas中提供的常用的函数:
数据可视化
不要相信单个可视化的结果,当对某种情况做出假设时,尝试着用不同的图去验证猜想
可视化的手段:
-
单个特征:
-
直方图:plt.hist(X)
-
plot:plt.plot()
-
统计学:df.describe()
-
-
类别变量直方图分布: sns.countplot(train_df['device.operatingSystem'])
-
特征之间的关系:
-
相关性分析:df.corr()
-
点图:plt.scatter()
-
plt.scatter(x1,x2)
pd.scatter_matrix(df)
df.corr(),plt.matshow(..)
df.mean().sort_values().plot(style='.')
-
Explore individual features
-
Histogram
-
Plot (index vs value)
-
Statistics
-
-
Explore feature relations
-
Pairs
-
Scatter plot, scatter matrix
-
Corrplot
-
-
Groups
-
Corrplot + clustering
-
Plot (index vs feature statistics)
-
数据清洗和Check
-
常值特征:constant feature
train.nunique(axis=1)==1
- 策略:remove it
-
重复特征列:duplicated feature
可以看出连个数值特征的取值完全相同,所以通过
drop_duplicates()删除一列特征。对于类别变量,虽然其对应的取值不一定相同,但是
类别变量的取值集合相同
,同样表明是重复列,因此也需要删除,但是此时直接使用drop_duplicates()是无法删除的因为其不是具有一一对应相等,所以需要先对类别特征进行label encoding
-
重复数据行:对于数据中存在多个相同数据行时,最好删除多余的行
-
检查数据集是否是 shuffle :