深度之眼比赛实战训练营第05次打卡

本文介绍了在机器学习比赛中构建基础baseline的步骤,包括数据清洗、预处理和模型构建。通过使用pandas和sklearn进行数据处理,讨论了数据归一化的必要性和对模型性能的影响。虽然个人模型未能成功,但通过学习和应用老师的模型,理解了数据处理的重要性。
摘要由CSDN通过智能技术生成
构建基础baseline

任务名称:构建baseline

任务简介:完成一个基本的baseline提交到kaggle上然后有成绩

详细说明:

本节将会向大家介绍利用python数据清洗和数据预处理以及模型的构建,拟合数据,进行对test数据集进行预测,提交到成绩有排名。会先从理论讲起,再到实际的的一个操作。

数据清洗和数据处理是比赛以及任何一种机器学习模型的必须要经过的过程,而且极为重要,这里只是给大家介绍一下数据清洗的几种常见的知识,包括可以利用pandas和sklearn库来进行,对数据的空值的填充,以及数据归一化,独热编码,标签编码等数据处理方面的问题,以及模型的构建问题,如何进行训练以及这个预测提交的问题。在这个过程中可能有很多同学对于很多知识不是很熟悉,那么就需要自己多多面向谷歌或者组队讨论,出现问题的时候多思考以及多查阅资料。


作业详解:

针对于不同的数据运用pandas和sklearn处理的方式区别是什么?说明模型只能拟合什么样子的数据,为什么数据归一化和不归一化的结果会有差距?提交成绩的截图。


这次从最简单的数据导入到数据清洗、数据处理,再到模型建立,最后提交自己的submission得到名次。可惜自己的模型挂了,提交了老师的模型。


一、导入相应的包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import pandas_profiling as ppf
import warnings##忽略警告
warnings.filterwarnings('ignore')
%matplotlib inline
plt.style.use('ggplot')
# 这里需要导入一些包,用来做特征工程的
from sklearn.base import BaseEstimator, TransformerMixin, RegressorMixin, clone
from sklearn.preprocessing import LabelEncoder#标签编码
from sklearn.preprocessing import RobustScaler, StandardScaler#去除异常值与数据标准化
from sklearn.pipeline import Pipeline, make_pipeline#构建管道
from scipy.stats import skew#偏度
from sklearn.preprocessing import Imputer
二、检测源数据
train = pd.read_csv("./data/train.csv")
test = pd.read_csv("./data/test.csv")
train.head()#默认显示前五行
test.head()
三、数据探索性分析 pandas_profiling
ppf.ProfileReport(train)

plt.figure(figsize=(10,8))
sns.boxplot(train.YearBuilt, train.SalePrice)##箱型图是看异常值的,离群点

plt.figure(figsize=(12,6))	# 绘制散点图
plt.scatter(x=train.GrLivArea, y=train.SalePrice)##可以用来观察存在线型的关系
plt.xlabel("GrLivArea", fontsize=13)
plt.ylabel("SalePrice", fontsize=13)
plt.ylim(0,800000)

train.drop(train[(train["GrLivArea"]>4000)&(train["SalePrice"]<300000)].index,inplace=True)#pandas 里面的条件索引
full = pd.concat([train,test],ignore_index=True)
full.drop("Id",axis=1,inplace=True)
full.head()
四、数据清洗–空值填充、空值的删除,不处理
miss = full.isnull().sum()#统计出空值的个数
miss[miss>0].sort_values(ascending=True)#由低到高排好序
full.info()

# 对字符类型的进行填充
cols1 = ["PoolQC" , "MiscFeature", "Alley", "Fence", "FireplaceQu", "GarageQual", "GarageCond", "GarageFinish", "GarageYrBlt", "GarageType", "BsmtExposure", "BsmtCond", "BsmtQual", "BsmtFinType2", "BsmtFinType1", "MasVnrType"]
for col in cols1:
    full[col].fillna("None",inplace=True)
    
# 对数值类型的进行填充
cols=["MasVnrArea", "BsmtUnfSF", "TotalBsmtSF", "GarageCars", "BsmtFinSF2", "BsmtFinSF1", "GarageArea"]
for col in cols:
    full[col].fillna(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值