可視化を使う:distplot
目的変数の分布を把握することはとても重要で、選ぶモデルや前処理にも影響します。手軽な方法はプロットで確認することですが、PySparkには標準のプロット機能がないため、正しく動かすにはいくつかの中間ステップが必要です。この演習では 'LISTPRICE' 変数を可視化し、さらに歪度(skewness)を計算して分布についての理解を深めます。
matplotlib.pyplot と seaborn はそれぞれ plt と sns のエイリアスでインポート済みです。
この演習はコースの一部です
PySparkで学ぶ特徴量エンジニアリング
演習の手順
- 置換なし、乱数シードを 42 に設定して、
sample()を用いてデータフレームdfを 50% 抽出します。 - Spark DataFrame を
toPandas()でpandas.DataFrame()に変換します。 seabornのdistplot()メソッドで分布図を描画します。pyspark.sql.functionsからskewness()をインポートし、agg()メソッドで'LISTPRICE'列の集約に対して計算します。計算結果を評価するためにcollect()するのを忘れないでください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Select a single column and sample and convert to pandas
sample_df = df.select(['LISTPRICE']).____(____, ____, 42)
pandas_df = sample_df.____()
# Plot distribution of pandas_df and display plot
sns.____(____)
plt.show()
# Import skewness function
from pyspark.sql.functions import skewness
# Compute and print skewness of LISTPRICE
print(df.____({____: ____}).collect())