• 大小: 9KB
    文件类型: .py
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: Python
  • 标签: Kaggle  房价预测  

资源简介

Kaggle房价预测代码 score=12% import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Mon Jan 14 11:51:02 2019

@author: TangYingjie 2018140083
“““

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
from sklearn.model_selection import train_test_split
import os

df_train = pd.read_csv(‘train.csv‘)
df_test = pd.read_csv(‘test.csv‘)
pd.set_option(‘display.width‘700)
df_train.head(5)# 影响房价的一些因素

# !!!----------------------数据可视化----------------------
# 数据尺寸
print(‘The train data shape : {}‘.format(df_train.shape))
print(‘The test data shape : {}‘.format(df_test.shape))

# 数据类型
print(df_train.dtypes)
df_train.describe()

# 房价数据直方图
#plt.hist(df_train[‘SalePrice‘])
sns.distplot(df_train[‘SalePrice‘])

# CentralAir 与 房价关系
var = ‘CentralAir‘
data = pd.concat([df_train[‘SalePrice‘] df_train[var]] axis=1)
fig = sns.boxplot(x=var y=‘SalePrice‘ data=data) 
fig.axis(ymin=0 ymax=800000)

# OverallQual 与 房价关系
var = ‘OverallQual‘
data = pd.concat([df_train[‘SalePrice‘] df_train[var]] axis=1)
fig = sns.boxplot(x=var y=‘SalePrice‘ data=data) 
fig.axis(ymin=0 ymax=800000)

# YearBuilt 与 房价关系
var = ‘YearBuilt‘
data = pd.concat([df_train[‘SalePrice‘] df_train[var]] axis=1)
fig = sns.boxplot(x=var y=‘SalePrice‘ data=data) 
fig.axis(ymin=0 ymax=800000)

# YearBuilt 与 房价关系 散点图
var = ‘YearBuilt‘
data = pd.concat([df_train[‘SalePrice‘] df_train[var]] axis=1)
data.plot.scatter(x=var y=‘SalePrice‘ ylim=(0 800000))

# !!!----------------------数据清洗----------------------
df_train.drop(‘Id‘ inplace=True axis=1)
df_test.drop(‘Id‘ inplace=True axis=1)

#统计null数据的Frequency
count_nans = len(df_train) - df_train.count()
df_count_nans = count_nans.to_frame()
df_count_nans.columns = [‘train_nan_count‘]
df_count_nans[‘%_train_nans‘]= (df_count_nans [‘train_nan_count‘]/df_train.shape[0])*100
# For test data
df_count_nans [‘test_nan_count‘] = len(df_test) - df_test.count ()
df_count_nans [‘%_test_nans‘] = (df_count_nans[‘test_nan_count‘]/df_test.shape[0]) * 100

df_count_nans.sort_values(“train_nan_count“ ascending=False inplace=True)
df_count_nans.query(‘train_nan_count > 0 or test_nan_count > 0‘)

# 整合数据
y_train = df_train.SalePrice.values
print(y_train)
df_train.drop(“SalePrice“ inplace=True axis=1)

df_all_data = pd.concat([df_train df_test])
df_all_data.reset_index(inplace=True drop=True)
print(df_all_data.shape)
df_all_data.columns
df_all_data.head()

# 清洗掉缺失数据
df_all_data.drop([‘PoolQC‘ ‘Alley‘ ‘MiscFeature‘ ‘Fence‘] axis=1 inplace=True)

# 因为FirplaceQu没有变化,又因为the NAs indicates NA=No Fireplace所以写成None
df_all_data[“FireplaceQu“].fillna(“None“ inplace=True)

# GarageCond GarageType GarageFinish GarageQual这些车库因素也处理成None
df_all_data[[“GarageCond“ “GarageType“ “GarageFinish“ “GarageQual“]].fillna(“None“ inplace=True)

# 把GarageYrBlt填上0. 假设车库不是available 
df_all_

评论

共有 条评论