栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

二.数据预处理

二.数据预处理

2.1 探索性数据分析

爬取出来的数据直接放在csv文件里面可以直接读取
还是以爬取房屋数据为例

# !pip install seaborn pandas matplotlib numpy
import numpy as np
import pandas as pd #数据比较少的时候可以用pandas,数据比较大的时候可以通过采样让其编的比较小
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')
data = pd.read_csv('house_sales.zip') #压缩成zip文件,文本默认可以存储成一个压缩文件
data.shape
data.head()
null_sum = data.isnull().sum()
data.columns[null_sum < len(data) * 0.3]  # columns will keep
data.drop(columns=data.columns[null_sum > len(data) * 0.3], inplace=True)
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') == True
    col = data[c].replace(r'b sqftb|b Acresb|b,b','', regex=True).astype(float)
    col[acres] *= 43560
    data[c] = col
data.describe()
abnormal = (data[areas[1]] < 10) | (data[areas[1]] > 1e4)
data = data[~abnormal]
sum(abnormal)
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);
2.2数据清理

如何提升数据质量?数据清理
数据有噪声:数据清理
数据干净但是不是想想要的格式:数据变换
数据对模型不友好:数据提取
数据有噪声可能会导致模型会变得越来越差
常见的数据错误:
1.数据不在正常分布里面
2.数据和一些规则有冲突
3.数据类型或语义错误

2.3数据转换

数据变换
对收集标注后的的原始数据进行数据变换——>数据特征——>模型训练
常用的数据变换手段:
1.把数据的最大值和最小值限定在一个区间

2.标准化

3.归一化(用的少)

4.log变换(数据较大的时候考虑log变换)

图片的爬取和存储成本比较高,对于图片怎么处理?
对图片进行下采样,所以常用的训练图片数据库都是224*224大小,数据质量和数据大小要做一个权衡。
对于视频怎么处理?
对视频进行采样,并不对每一帧都采样。
文本数据的处理:子词
总结:数据转换,你把数据转换成机器学习所需要的格式,平衡数据的质量和大小的关系,具体用什么格式来存储,视频采样,图片可以下采样,文本可以语法话,子词话。

2.4特征工程

把数据转成模型喜欢的样子

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/748750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号