Kaggle~住宅分析③~Part1

# 1. はじめに
住宅分析もかれこれ3回目になりました。
前回までスコアが0.17付近でモデルを変えてもこれ以上伸びないなーといった感じ。

今回はCRISP-DMを用いた標準プロセスで実施。
※Shearerらが提唱しているCRISP-DM(CRoss Industry Standard Process for Data Mining)

データ分析のプロセスには、標準プロセスとしてCRISP-DMとCRIISP-DMよりデータ分析部分にフォーカスしているKDDがあります（今回はKDDの説明は省略）

CRISP-DMのプロセスは①ビジネス理解→②データ理解→③データ準備→④モデリング→⑤評価→⑥適用というふうに進んでいく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/621150/b7e3e150-16c3-ebce-88d2-1e3e0a15fcf3.png)
　　　　　　　　　　　　　　　　　　図１　CRISP-DM

といった流れで進め、なおかつこれらについて自分の考えたこと調べたことを紹介します。
Part１ということで複数回に渡って紹介していきます。

# 2. ビジネス理解
このコンペでは住宅の価格を予想することが課題です。
なので住宅の価格がどんな要素で左右されるのか想像してみた。

====================以下想像内容====================
**一般的には"場所" 都市部や駅に近い、交通の便が良い、高級住宅**
**”家の大きさ” 敷地面積、階数、建屋の広さ**
**”付属” プール付き、テニスコート付き等々**
**"新築"か”中古”は結構重要な気がする（築何年っていうのが大切？）**
**"品質"というのは素材等も重要なファクターかと思います。**
##### 挙げ出せばキリがないですが予測する上では非常に重要だと思います。

# 3. データ理解
いよいよkaggleの中身について見ていく

```python
# 1-1. データを読み込む
df_train = pd.read_csv('/kaggle/input/house-prices-advanced-regression-techniques/train.csv')
df_test = pd.read_csv('/kaggle/input/house-prices-advanced-regression-techniques/test.csv')
df_train.head()
```
>出力結果

|  | Id | MSSubClass | MSZoning | LotFrontage | LotArea | Street | Alley | LotShape | LandContour | Utilities | ... | PoolArea | PoolQC | Fence | MiscFeature | MiscVal | MoSold | YrSold | SaleType | SaleCondition | SalePrice |
|--:|--:|--:|:--|--:|--:|:--|:--|:--|:--|:--|:--|--:|:--|:--|:--|--:|--:|--:|:--|:--|--:|
| 0 | 1 | 60 | RL | 65.0 | 8450 | Pave | NaN | Reg | Lvl | AllPub | ... | 0 | NaN | NaN | NaN | 0 | 2 | 2008 | WD | Normal | 208500 |
| 1 | 2 | 20 | RL | 80.0 | 9600 | Pave | NaN | Reg | Lvl | AllPub | ... | 0 | NaN | NaN | NaN | 0 | 5 | 2007 | WD | Normal | 181500 |
| 2 | 3 | 60 | RL | 68.0 | 11250 | Pave | NaN | IR1 | Lvl | AllPub | ... | 0 | NaN | NaN | NaN | 0 | 9 | 2008 | WD | Normal | 223500 |
| 3 | 4 | 70 | RL | 60.0 | 9550 | Pave | NaN | IR1 | Lvl | AllPub | ... | 0 | NaN | NaN | NaN | 0 | 2 | 2006 | WD | Abnorml | 140000 |
| 4 | 5 | 60 | RL | 84.0 | 14260 | Pave | NaN | IR1 | Lvl | AllPub | ... | 0 | NaN | NaN | NaN | 0 | 12 | 2008 | WD | Normal | 250000 |

```python
# 1-2. データ構造の確認
print(df_train.shape)
print(df_test.shape)
df_train.columns
```
>出力結果
(1460, 81)
(1459, 80)
Index(['Id', 'MSSubClass', 'MSZoning', 'LotFrontage', 'LotArea', 'Street',
       'Alley', 'LotShape', 'LandContour', 'Utilities', 'LotConfig',
       'LandSlope', 'Neighborhood', 'Condition1', 'Condition2', 'BldgType',
       'HouseStyle', 'OverallQual', 'OverallCond', 'YearBuilt', 'YearRemodAdd',
       'RoofStyle', 'RoofMatl', 'Exterior1st', 'Exterior2nd', 'MasVnrType',
       'MasVnrArea', 'ExterQual', 'ExterCond', 'Foundation', 'BsmtQual',
       'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinSF1',
       'BsmtFinType2', 'BsmtFinSF2', 'BsmtUnfSF', 'TotalBsmtSF', 'Heating',
       'HeatingQC', 'CentralAir', 'Electrical', '1stFlrSF', '2ndFlrSF',
       'LowQualFinSF', 'GrLivArea', 'BsmtFullBath', 'BsmtHalfBath', 'FullBath',
       'HalfBath', 'BedroomAbvGr', 'KitchenAbvGr', 'KitchenQual',
       'TotRmsAbvGrd', 'Functional', 'Fireplaces', 'FireplaceQu', 'GarageType',
       'GarageYrBlt', 'GarageFinish', 'GarageCars', 'GarageArea', 'GarageQual',
       'GarageCond', 'PavedDrive', 'WoodDeckSF', 'OpenPorchSF',
       'EnclosedPorch', '3SsnPorch', 'ScreenPorch', 'PoolArea', 'PoolQC',
       'Fence', 'MiscFeature', 'MiscVal', 'MoSold', 'YrSold', 'SaleType',
       'SaleCondition', 'SalePrice'],
      dtype='object')

**説明変数が８０個もある。**

今回はスペースの関係で以上とする。
次回はいよいよデータ前処理を実際に行っていく。