案例:缺失值填充 | 学习笔记

简介: 快速学习案例:缺失值填充

开发者学堂课程【人工智能必备基础:概率论与数理统计:案例:缺失值填充】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/545/detail/7439


案例:缺失值填充

内容介绍:

一、 缺失值处理

 

一、 缺失值处理

第一种方法:将缺失值去掉

第二种方法:将数据中的中位数或均值、众数等作为缺失值

第三种方法:有均值有数据,先构建回归模型,那其他变量当成特征,当前缺失的表示预测结果。有存在的来构建数据集,缺失的需预测。

先指定风格 sns. set(style = " ticks“) ,碰到陌生的需上官网查找。一下的库是在进行缺失值的展示。黑的代表数值,白的代表缺失值。

Missingnno  PYpi v0.4.0 python3.4+  status stable license MIT
Messy datasets? Missing values? missingno provides a small toolsetof flexible and easy-to-use missing data visualizationsand utilities that allows you to get a quick visual summary of the completeness (or lack thereof) of your dataset. Just pipinstall missingno to get started.
Quickstart   lbunch bnder
This quickstart uses a sample of the NYPD Motor Vehicle CollisionsDataset dataset. To get the data yourself, run thefollowing on your command line:
$ pip install quilt
$ quilt install ResidentMario/missingno data
Then to load the data into memory:
>>> from quilt.data. ResidentMario import missingno data» collisions = missingno data.nyc injurious collisions()» collisions = collisions.replace("nan", np,nan)The rest of this walkthrough will draw from this collisions dataset. I additionally define nullity to mean whether aparticular variable is filled in or not.
Matrix
The msno.matrix nullity matrix is a data-dense display which lets you quickly visually pick out patterns indata completion.
>>> import missingno as msno
>>> xmatplotlib inline
>>> -sno,matrix(collisions. sample(250))

image.pngAt a glance, date, time, the distribution of injuries, and the contribution factorof the first vehicle appear to be completelypopulated, while geographic information seems mostly complete, but spottier.
The sparkline at right summarizes the general shape of the data completeness and points out the maximum and minimumrows.
This visualization willcomfortably accommodate upto 50 labelled variables Past tha range labels beginto overlap orbecome unreadable,and by default large displays omit them
If you are working with time series data, you canspecifya periodity using the fre keyword parametern
>>> null_pattern=(np .random.random(1000).reshape((50,20))>0.5).astype(bool)
>>>null pattern - pd.DataFrame(null_pattern).replace({Faise!None})
msno.matrix(null_pattern.set_index(pd.period_range(‘1/1/2011',’2/1/2015’,freq=’M’) ,freq=’ BQ’

缺失值处理

In [39]:# missing values?
sns. set(style = " ticks“)
msno. matrix (data)Out[39]: <matplotlib. axes._ subplots. AxesSubplot at 0x218b0055f60>

image.png

缺失值少的,直接将缺失值去掉。

normalized-losses 缺失比较严重

In (40]: #missing values in normalied-losses

data[pd. isnull (data[‘ normalized-losses’])]. head()

Out 40 :

image.png

In (41]: sns. set(style . "ticks “)
plt. figure(figsize = (12, 5))

c =’#366DE8’
# ECDF
plt. subplot(121)
cdf = ECDF (data[ ‘normalized- losses’ )
plt. plot(cdf.x, cdf.y, label =statmodels", color = c);

plt. xlabel( ‘normalized losses’);plt. ylabel(‘ECDF’);
# overall distribution
plt. subplot (122)
plt. hist (data[‘normalized-losses’ ]. dropna(),
bins = int (np. sqrt(len (data[‘normalized-losses’ ]))),

color = c):

image.png

可以发现 80% 的 normalized losses 是低于 200 并且绝大多数低于 125.
一个基本的想法就 是用中位数来进行填充, 但是我们得来想一 想,这个特 征跟哪些因素可能有关呢?应该是保险的情况吧,所以我们可以分组来进行填充这样会更精确一些。

首先来看一下对于不同保险情况的统计指标:
In [42]: data. groupby(‘symboling’)[‘ normalized-losses ‘]. describe()
Out[42] :

image.png

In [43]: #replacing
data: datp. dropna(subset . [‘price’, ‘bore’,’stroke’,’ peak-rpm’,’horsepower’,’num-of doors’ ]
data[‘normalized-losses’] =data. groupby ( ‘symboling’ )[ ‘normalized-losses’]. transform(lambda x: x. fillna(x. mean()))

print(‘ In total:’,data. shape)
data. head ()
In total: (193, 26)
0ut(43] :

image.png

相关文章
|
6月前
|
Python
DataFrame缺失值处理案例解析
该文展示了如何处理DataFrame中的缺失值。首先,通过导入pandas并创建含缺失值的DataFrame,然后使用fillna()方法以平均值填充年龄列的NaN。接着,运用dropna()删除年龄列有NaN的行,最后用interpolate()方法对年龄列进行线性插值填充缺失值。
82 0
|
6月前
数据的缺失值怎么去除
数据的缺失值怎么去除
|
6月前
|
数据采集 数据挖掘 Python
【Python DataFrame专栏】讲解DataFrame中缺失值的处理方法,包括填充、删除和插值技术。
【5月更文挑战第20天】在Python的Pandas库中处理DataFrame缺失值,包括查看缺失值(`isnull().sum()`)、填充(`fillna()`:固定值、前向填充、后向填充)、删除(`dropna()`:按行或列)和插值(`interpolate()`:线性、多项式、分段常数)。示例代码展示了这些方法的使用。
524 3
【Python DataFrame专栏】讲解DataFrame中缺失值的处理方法,包括填充、删除和插值技术。
|
28天前
表格数据填充方法
【10月更文挑战第22天】表格数据填充方法
34 2
|
3月前
|
数据采集 机器学习/深度学习 数据挖掘
揭秘DataFrame缺失值处理的神秘面纱:从填充到删除,再到插值,你的数据能否起死回生?
【8月更文挑战第22天】在数据分析中,处理DataFrame内的缺失值至关重要。本文通过一个关于公司员工基本信息的例子,展示了三种常见方法:填充、删除和插值。首先构建了一个含有缺失值的DataFrame,然后使用均值填充年龄缺失值;接着演示了删除含缺失值的行;最后采用线性插值填补。此外,对于复杂情形,还可利用机器学习预测填充。合理处理缺失值能有效提升数据质量,为后续分析奠定坚实基础。
62 2
|
3月前
|
数据挖掘 索引 Python
数据分析缺失值处理(Missing Values)——删除法、填充法、插值法
数据分析缺失值处理(Missing Values)——删除法、填充法、插值法
96 2
|
6月前
|
数据采集 数据挖掘 数据处理
DataFrame 的缺失值处理:填充、删除与插值
【5月更文挑战第19天】DataFrame数据处理中,面对缺失值问题,常用方法包括填充(如固定值、平均值)和删除。插值是一种有效手段,如线性插值适合时间序列数据。根据数据特性和分析目标,可组合使用多种方法,如先填充再插值。灵活应用这些策略能提升数据质量和分析准确性,为决策提供可靠支持。
270 2
|
6月前
|
机器学习/深度学习 算法 前端开发
【视频】为什么要处理缺失数据?如何用R语言进行缺失值填充?
【视频】为什么要处理缺失数据?如何用R语言进行缺失值填充?
|
6月前
|
数据采集 SQL 监控
大数据清洗的艺术:有效处理缺失值、异常值与重复数据
【4月更文挑战第8天】本文探讨了大数据清洗的三个关键环节:缺失值处理、异常值识别与处理、重复数据消除。在处理缺失值时,涉及识别、理解原因、选择删除、填充或保留策略,并进行结果验证。异常值识别包括统计方法、业务规则和可视化检查,处理策略包括删除、修正和标记。重复数据的识别基于主键和关键属性,处理策略有删除、合并和哈希,处理后需持续监控。数据清洗是一门艺术,需要结合统计学、编程技能和业务理解。
1700 2
|
6月前
|
机器学习/深度学习 算法
在R语言中进行缺失值填充:估算缺失值
在R语言中进行缺失值填充:估算缺失值