数据的可视化检查

使用 PySpark 进行特征工程

John Hogue

Lead Data Scientist, General Mills

使用 DataFrame.describe() 获取描述性统计

df.describe(['LISTPRICE']).show()
+-------+------------------+
|summary|         LISTPRICE|
+-------+------------------+
|  count|              5000|
|   mean|        263419.365|
| stddev|143944.10818036905|
|    min|            100000|
|    max|             99999|
+-------+------------------+
使用 PySpark 进行特征工程

现成的描述性函数

  • 均值
    • pyspark.sql.functions.mean(col)
  • 偏度
    • pyspark.sql.functions.skewness(col)
  • 最小值
    • pyspark.sql.functions.min(col)
  • 协方差
    • cov(col1, col2)
  • 相关系数
    • corr(col1, col2)
使用 PySpark 进行特征工程

mean() 示例

  • mean(col)
  • 聚合函数:返回组内值的平均数(均值)。
df.agg({'SALESCLOSEPRICE': 'mean'}).collect()
[Row(avg(SALESCLOSEPRICE)=262804.4668)]
使用 PySpark 进行特征工程

cov() 示例

  • cov(col1, col2)
  • 参数:
    • col1 – 第一列
    • col2 – 第二列
df.cov('SALESCLOSEPRICE', 'YEARBUILT')
1281910.3840634783
使用 PySpark 进行特征工程

seaborn:统计数据可视化

Seaborn

使用 PySpark 进行特征工程

绘图注意事项

使用 Seaborn 等标准库绘制 PySpark DataFrame 需先转换为 Pandas

警告: 在转换为 Pandas 前先对 PySpark DataFrame 进行抽样!

  • sample(withReplacement, fraction, seed=None)
    • withReplacement 抽样可重复
    • fraction 保留记录的百分比
    • seed 随机种子,便于复现
# 抽样 50% 的 PySpark DataFrame 并计数行数
df.sample(False, 0.5, 42).count()
2504
使用 PySpark 进行特征工程

绘制分布前的准备

Seaborn distplot()

  • seaborn.distplot(a)
  • a:Series、1D 数组或列表。观测数据。
# 导入你喜欢的可视化库
import seaborn as sns

# 抽样数据框 sample_df = df.select(['SALESCLOSEPRICE']).sample(False, 0.5, 42)
# 将样本转换为 Pandas DataFrame pandas_df = sample_df.toPandas()
# 绘制 sns.distplot(pandas_df)
使用 PySpark 进行特征工程

成交价的分布图

分布图

使用 PySpark 进行特征工程

关系图绘制

Seaborn lmplot()

  • seaborn.lmplot(x, y, data)
  • x、y:字符串,输入变量;应为数据中的列名。
  • data:Pandas DataFrame
# 导入你喜欢的可视化库
import seaborn as sns

# 选择列 s_df = df.select(['SALESCLOSEPRICE', 'SQFTABOVEGROUND']) # 抽样数据框 s_df = s_df.sample(False, 0.5, 42)
# 转为 Pandas DataFrame pandas_df = s_df.toPandas()
# 绘制 sns.lmplot(x='SQFTABOVEGROUND', y='SALESCLOSEPRICE', data=pandas_df)
使用 PySpark 进行特征工程

地上面积与成交价的线性模型图

线性模型图

使用 PySpark 进行特征工程

开始练习!

使用 PySpark 进行特征工程

Preparing Video For Download...