【Microsoft Fabricハンズオン】- House Prices Advanced Regression Techを可視化する
執筆日
2024/09/28
データ
House Prices - Advanced Regression Techniques を使います。
ハンズオンの内容
House Prices - Advanced Regression TechniquesをNotebookで読み込み、PowerBIで以下のような可視化をするまでがゴールとなっています。
30分ぐらいを想定し、Fabricを触ったことない人がターゲットとなっています。
各カラムの説明
SalePrice: プロパティの販売価格(ドル単位)
MSSubClass: 建物のクラス
MSZoning: 一般的なゾーニング分類
LotFrontage: プロパティに接続された道路の線形フィート
LotArea: 土地の面積(平方フィート)
Street: 道路アクセスの種類
Alley: 路地アクセスの種類
LotShape: プロパティの一般的な形状
LandContour: プロパティの平坦性
Utilities: 利用可能なユーティリティの種類
LotConfig: 土地の配置
LandSlope: プロパティの傾斜
Neighborhood: エイムズ市内の物理的な場所
Condition1: 主要道路または鉄道への近接性
Condition2: 主要道路または鉄道への近接性(2つ目がある場合)
BldgType: 住居の種類
HouseStyle: 住居のスタイル
OverallQual: 全体的な素材と仕上がりの品質
OverallCond: 全体的な状態評価
YearBuilt: 建設年
YearRemodAdd: リフォーム年
RoofStyle: 屋根のスタイル
RoofMatl: 屋根材
Exterior1st: 家の外装カバー
Exterior2nd: 家の外装カバー(複数の材料がある場合)
MasVnrType: 石積みベニアの種類
MasVnrArea: 石積みベニアの面積(平方フィート)
ExterQual: 外装材の品質
ExterCond: 外装材の現在の状態
Foundation: 基礎の種類
BsmtQual: 地下室の高さ
BsmtCond: 地下室の全体的な状態
BsmtExposure: ウォークアウトまたは庭レベルの地下室の壁
BsmtFinType1: 地下室の仕上げエリアの品質
BsmtFinSF1: タイプ1の仕上げ済み平方フィート
BsmtFinType2: 2つ目の仕上げエリアの品質(存在する場合)
BsmtFinSF2: タイプ2の仕上げ済み平方フィート
BsmtUnfSF: 仕上げていない地下室の面積(平方フィート)
TotalBsmtSF: 地下室全体の面積(平方フィート)
Heating: 暖房の種類
HeatingQC: 暖房の品質と状態
CentralAir: 中央空調
Electrical: 電気システム
1stFlrSF: 1階の平方フィート
2ndFlrSF: 2階の平方フィート
LowQualFinSF: 低品質の仕上げ済み平方フィート(全階)
GrLivArea: 地上(地面)生活エリアの平方フィート
BsmtFullBath: 地下室のフルバスルーム
BsmtHalfBath: 地下室のハーフバスルーム
FullBath: 地上のフルバスルーム
HalfBath: 地上のハーフバスルーム
Bedroom: 地下室レベルを除く寝室の数
Kitchen: キッチンの数
KitchenQual: キッチンの品質
TotRmsAbvGrd: 地上の部屋の総数(バスルームを含まない)
Functional: 住宅の機能性評価
Fireplaces: 暖炉の数
FireplaceQu: 暖炉の品質
GarageType: ガレージの位置
GarageYrBlt: ガレージが建てられた年
GarageFinish: ガレージの内装仕上げ
GarageCars: ガレージの車収容能力
GarageArea: ガレージの面積(平方フィート)
GarageQual: ガレージの品質
GarageCond: ガレージの状態
PavedDrive: 舗装されたドライブウェイ
WoodDeckSF: ウッドデッキの面積(平方フィート)
OpenPorchSF: オープンポーチの面積(平方フィート)
EnclosedPorch: 閉鎖されたポーチの面積(平方フィート)
3SsnPorch: 3シーズンポーチの面積(平方フィート)
ScreenPorch: スクリーンポーチの面積(平方フィート)
PoolArea: プールの面積(平方フィート)
PoolQC: プールの品質
Fence: フェンスの品質
MiscFeature: 他のカテゴリに含まれない雑多な特徴
MiscVal: 雑多な特徴の価値(ドル単位)
MoSold: 売却された月
YrSold: 売却された年
SaleType: 売却の種類
SaleCondition: 売却の条件
アーキテクト
大まかな流れ
- ワークスペースを作成
- Notebookでデータの前処理を行う
- セマンティックモデルにする
- PowerBIで可視化する
ワークスペースを作成
- Microsoft Fabric(https://app.fabric.microsoft.com/home)にアクセス
- 「Synapse Data Engineering」をクリック
- 「ワークスペース」をクリック
4.「+新しいワークスペース」をクリック
- ワークスペース名を入力し、「適用」をクリックする
※ワークスペース名は何でもいいです
- ワークスペースが作成されたことを確認
Notebookでデータの前処理を行う
- 以下のURLからtrain.csvをダウンロードする
※Kaggleのアカウント登録が必要です。
https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques/data?select=train.csv - Microsoft Fabricを開き、Syanpse Data EnginneringからNotebookを開く
- Lakehouseを作成する
※Lakehouseの名前はなんでもいいです - Fileにダウンロードしたtrain.csvをimportする
- 以下のコードを実行し、データを読み込み。
- SalePriceのカラムの型を変更する。
df = spark.read.format("csv").option("header","true").load("Files/train.csv")
# SalePriceの型を変更する
df = df.withColumn("SalePrice", col("SalePrice").cast("integer"))
sale_price_type = df.schema["SalePrice"].dataType
print(f"The data type of SalePrice column is: {sale_price_type}")
- 以下のコードを実行し、Table形式でデータを保存する
df.write.mode("overwrite").format("delta").save("Tables/study")
参考記事
セマンティックモデルにする
1. 以下の記事を参考にセマンティックモデルを作成する
PowerBIで可視化する
- 新しいレポートをクリックする
- 積み上げ縦棒グラフ を選択する
- x軸に「MSSubClass」、y軸に「ΣSalePrice」を設定する
- y軸のSalesPriceをクリックすると、合計値,平均値など色々選択することができる
※今回は平均値にする
- 円グラフ を選択する
- 凡例に「MSSubClass」、値に「SalePrice」を設定する
※SalePriceは平均値にする
- 作成されたことを確認する
- 保存ボタンを押しレポートを作成する
Discussion