导入相关包

# !pip install seaborn pandas matplotlib numpy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from IPython import display
display.set_matplotlib_formats('svg')
# Alternative to set svg for newer versions
# import matplotlib_inline
# matplotlib_inline.backend_inline.set_matplotlib_formats('svg')

numpy:python中做数据分析常用的包;
pandas:也是用于数据分析,擅长处理表,数据没那么大要放入内存中,这将是首选;
matplotlib.pyplot:源自matlab的画图工具;
seaborn:基于matplotlib,提供更多的画法
剩下两行用于将图片设成svg文件(画起来分辨率相对高一点)

读取数据

data = pd.read_csv('house_sales.zip')

csv文件存下来相对比较大,可以先压缩成一个zip或一个tar,主流的读取文件都可以从压缩文件中读取。建议存成压缩文件,在传输存储都会比较好,甚至还会比直接读取还要好(这个方法可用于文本) 作者:爱喝水的崩奔 https://www.bilibili.com/read/cv13353927?spm_id_from=333.999.0.0 出处:bilibili

data.shape
data.head()#打印前五行

删缺失值

将列中30%缺失的列删去,以此来简化数据

null_sum = data.isnull().sum()
data.columns[null_sum < len(data) * 0.3]  # columns will keepdata.drop(columns=data.columns[null_sum > len(data) * 0.3], inplace=True)

检查type

data.dtypes

处理错误的数据类型


currency = ['Sold Price', 'Listed Price', 'Tax assessed value', 'Annual tax amount']
for c in currency:data[c] = data[c].replace(r'[$,-]', '', regex=True).replace(r'^\s*$', np.nan, regex=True).astype(float)
areas = ['Total interior livable area', 'Lot size']
for c in areas:acres = data[c].str.contains('Acres') == Truecol = data[c].replace(r'\b sqft\b|\b Acres\b|\b,\b','', regex=True).astype(float)col[acres] *= 43560data[c] = col
data.describe()#查看数据特征

#把不正常的取消掉

abnormal = (data[areas[1]] < 10) | (data[areas[1]] > 1e4)
data = data[~abnormal]
sum(abnormal)

卖价格分布情况,log10让分布均匀

ax = sns.histplot(np.log10(data['Sold Price']))
ax.set_xlim([3, 8])
ax.set_xticks(range(3, 9))
ax.set_xticklabels(['%.0e'%a for a in 10**ax.get_xticks()]);

查看房子的种类

data['Type'].value_counts()[0:20]

查看不同类型的价格

types = data['Type'].isin(['SingleFamily', 'Condo', 'MultiFamily', 'Townhouse'])
sns.displot(pd.DataFrame({'Sold Price':np.log10(data[types]['Sold Price']),'Type':data[types]['Type']}),x='Sold Price', hue='Type', kind='kde');

箱体图-一平米卖多少钱-表示不同分布情况

data['Price per living sqft'] = data['Sold Price'] / data['Total interior livable area']
ax = sns.boxplot(x='Type', y='Price per living sqft', data=data[types], fliersize=0)
ax.set_ylim([0, 2000]);

每个邮政编码的房价

d = data[data['Zip'].isin(data['Zip'].value_counts()[:20].keys())]
ax = sns.boxplot(x='Zip', y='Price per living sqft', data=d, fliersize=0)
ax.set_ylim([0, 2000])
ax.set_xticklabels(ax.get_xticklabels(), rotation=90);

每个特征之间的关系(协方差)

_, ax = plt.subplots(figsize=(6,6))
columns = ['Sold Price', 'Listed Price', 'Annual tax amount', 'Price per living sqft', 'Elementary School Score', 'High School Score']
sns.heatmap(data[columns].corr(),annot=True,cmap='RdYlGn', ax=ax);

李沐学AI之数据探索性分析相关推荐

  1. 【跟李沐学AI学习笔记】数据操作

    本文的来源是B站跟李沐学AI的视频. 机器学习用的最多的数据结构是N维数组.最简单的N维数组是一个0-d的标量,比如1.0,它可能表示一个物体的类别.1-d的数组称为向量,比如说[1.0, 2.7, ...

  2. 【深度学习】ResNet残差网络 ResidualBlock残差块实现(pytorch) | 跟着李沐学AI笔记 | ResNet18进行猫狗分类

    文章目录 前言 一.卷积的相关计算公式(复习) 二.残差块ResidualBlock复现(pytorch) 三.残差网络ResNet18复现(pytorch) 四.直接调用方法 五.具体实践(ResN ...

  3. 过拟合欠拟合模拟 || 深度学习 || Pytorch || 动手学深度学习11 || 跟李沐学AI

    昔我往矣,杨柳依依.今我来思,雨雪霏霏. ---<采薇> 本文是对于跟李沐学AI--动手学深度学习第11节:模型选择 + 过拟合和欠拟合的代码实现.主要是通过使用线性回归模型在自己生成的数 ...

  4. 动手学深度学习在线课程-跟着李沐学AI

    动手学深度学习在线课程-跟着李沐学AI http://courses.d2l.ai/zh-v2/ 李宏毅<机器学习>中文课程(2022) https://hub.baai.ac.cn/vi ...

  5. 深度学习笔记-[跟李沐学AI]-01引言

    DIVE INTO DEEP LEARNING 参考笔记:http://zh-v2.d2l.ai/chapter_introduction/index.html 符号 本书中使用的符号概述如下. 数字 ...

  6. 【深度学习】跟李沐学ai 线性回归 从零开始的代码实现超详解

    目录 一.引言 二.本文代码做了什么 如何利用数据集训练 三.代码实现与解析 一.导包 二.相应的函数实现 1 生成样本(数据集) 2 按批量读取数据集 3 定义模型 损失函数 算法 1 定义模型 2 ...

  7. ViT论文逐段精读【论文精读】-跟李沐学AI

    视频链接:ViT论文逐段精读[论文精读]_哔哩哔哩_bilibili ViT:过去一年,CV 最有影响力的工作 推翻了 2012 Alexnet 提出的 CNN 在 CV 的统治地位 有足够多的预训练 ...

  8. 跟李沐学AI之注意力机制+transformer

    注意力机制 注意力提示 注意力的可视化 注意力汇聚 平均汇聚 非参数注意力汇聚 带参数注意力汇聚 注意力评分函数 掩蔽softmax操作 加性注意力 缩放点积注意力 Bahdanau注意力 多头注意力 ...

  9. Transformer - Attention Is All You Need - 跟李沐学AI

    目录 摘要 导言 背景 模型架构 编码器解码器堆叠 注意力层 Scaled Dot-Product Attentions Multi-Head Attention transformer 中的注意力机 ...

最新文章

  1. 建立名称server
  2. Myeclipse 2015 stable 2.0 完美破解方法
  3. 四川职业学校计算机专业那个好6,四川排名前六的单招学院那些专业比较好?
  4. boost::process::std_in相关的测试程序
  5. ProgressDialog 一个使用类,多多提建议
  6. mysql数据库之单表查询
  7. shell命令一览表
  8. 科技社计算机部长竞选演讲稿,护理组长竞聘演讲稿_计算机专业组长竞聘演讲稿范文...
  9. python人门指南小说-致Python初学者 Anaconda入门使用指南完整版
  10. Not a git repository (or any of the parent directories): .git
  11. 常用原型图绘制工具比较
  12. ★如何引导客户需求?几个经…
  13. 为何演网络电影?吕良伟:帮青年导演圆电影梦
  14. 机器人自动驾驶中的时间同步
  15. 用python画美国国旗
  16. abpa 设置选择屏幕的元素不可编辑
  17. opencv HSV色彩空间 追踪特定颜色
  18. shell脚本常用方法
  19. Gazebo機器人仿真學習探索筆記(六)工具和实用程序
  20. 毕业论文图片格式、分辨率选择及高质量Word转PDF方法

热门文章

  1. 关于Open函数的newline参数
  2. 文件夹访问被拒绝 你需要权限来执行此操作,你需要来自SYSTEM的权限才能对此文件夹进行更改
  3. [附源码]java+ssm计算机毕业设计海洋之心项链专卖网ffv1b(源码+程序+数据库+部署)
  4. 网络游戏怎么样推广引流,游戏推广怎么做引流
  5. 我如何使用smartwatch传感器限制covid 19感染
  6. zb服务器连接不稳定,绝对惊人!全球服务器处理9.57ZB数据
  7. 用python写一段计算autocad多段线长度的代码
  8. ISO/IEC 9126软件质量标准
  9. OJ 1168 改写整数
  10. 祝愿天下所有运维的服务器永不宕机!