机器学习数据收集及预处理常见的流程

简介: 机器学习建模之前主要数据处理流程:数据收集、数据可视化、数据清洗、特征工程、构建特征集和验证集、拆分训练集测试集和验证集这几个步骤

数据是机器学习的燃料,数据预处理就是为机器学习模型提供好燃料,数据好,模型才能跑得更带劲。。

 其中收集数据和预处理完整的步骤如下:

 数据收集、数据可视化、数据清洗、特征工程、构建特征集和验证集、拆分训练集测试集和验证集这几个步骤,当然这几个步骤并不是完全按照流程操作,其中会相互交叉,或者往返操作。

  1. 收集数据

收集数据方法有多种,现实中要在运营环节中做很多数据埋点、获取用户消费等行为信息和兴趣偏好信息,网上爬取数据等等。 可参考极客时间-《数据分析实战45讲》中的方法。

  1. 数据可视化

    作用是通过可视化观察下数据,看一看特征和标签之间可能存在的关系、看看数据里有没有脏数据和离群点等,为选择具体的机器学习模型找找感觉。

#加载数据
import pandas as pd # 导入pandas数据处理工具包
df_ads= pd.read_csv('test.csv') #读入数据
df_ads.head(10) #显示前几行数据

python数据可视化必备工具包:一个是python画图工具库Matplotlib,另外一个是统计学数据可视化工具Seaborn。

#散点图来观察数据之间分布关系
import matplotlib.pyplot as plt
import seaborn as sns
plt.plot(df_ads['点赞数'],df_ads['浏览量'],'r.',label='Training data')
plt.xlabel('goods')
plt.ylabel('views')
plt.legend()
plt.show()

如下图所示:



image.png

基本可以看出呈现线性相关性。

接下来看下箱线图:

data = pd.concat([df_ads['浏览量'], df_ads['热度指数']], axis=1) # 浏览量和热度指数
fig = sns.boxplot(x='热度指数', y="浏览量", data=data) # 用seaborn的箱线图画图
fig.axis(ymin=0, ymax=800000); #设定y轴坐标
  1. 数据清洗

     洗菜洗得越干净,模型效果越好,主要数据清洗分为四种情况:

  • 第一种是处理缺失的数据,如果备份系统里面有缺了的数据,尽量去补录。如果没有可以剔除残缺的数据,也可以用其他数据记录的平均值、随机值或者0来补值,这个补值的过程叫数据修复。
  • 第二种是处理重复的数据,如果完全重复的数据删掉就行,如果同一个主键出现两行不同的数据,就需要看看有没有其他辅助的信息可以帮助我们判断(如时间戳),要是无法判断的话,只能随机删除或者全部保留。
  •   第三种是处理错误数据:比如商品的销售量、销售金额出现负值,这时候需要删除或者转化为有意义的值,再比如表示百分比或者概率的字段,如果值大于1,也属于逻辑错误数据
  • 第四种处理不可用的数据,这指的是整理数据的格式,比如有些商品是以人民币为单位,有些以美元为单位,就需要线统一,另外就是把是和否转换为1、0 值再输入机器学习模型。

如何查看数据集中的数据需要清洗了?

可以通过DataFrame的isna().sum()函数来统计所有的NaN的个数。NaN意思是Not A Number,在python中,它代表无法表示、也无法处理的值也就是典型的脏数据。

df_ads.isna().sum() # Nan出现的个数。

 可以使用dropna()这个API把出现了NaN的数据行删掉

df_ads = df_ads.dropna()#把出现了NaN的数据行删掉

还有其他数据清洗的方法,需要针对具体的项目和数据集进行处理。

  1. 特征工程

         特征工程是一个专门的机器学习子领域,它是数据处理过程中最有创造力的环节,特征工程做的好不好,非常影响机器学习模型的效率。

     什么是特征工程了?比如说评估身体健康状况的一个指标BMI,它等于体重除以身高的平方,这就是一个特征工程。经过了这个过程,BIM这一个指数就替代了原来的两个特征-体重和身高,而且完全能客观地描绘我们身材情况。

这样的好处是什么?通过BMI这个特征,降低了特征数据集的维度。数据集中每多一个特征,模型拟合的特征空间就更大、运算量也就更大。所以,摒弃掉冗余的特征、降低特征的维度,能使机器学习模型训练得更快。

  1. 构建特征集和标签集

特征就是所收集的各个数据点,是要输入机器学习模型的变量,而标签是要预测、判断或者分类的内容。对于所有监督学习,我们需要像模型中输入“特征集”和“标签集”这两组数据。

通常从一个包含了特征和标签的数据,构建特征数据集和一个标签数据集合,只需要从原数数据删除不需要的数据就行了。

比如:    

X=df_ads.drop['浏览量'],axis=1):
Y=df_ads.浏览量

无监督学习不需要这样的步骤

  1. 拆分训练集、验证集和测试集合

      从原数据集从列的维度纵向拆分成了特征集和标签集后,还需要进一步从行的维度横向拆分。主要原因是机器学习并不是通过训练数据集找出一个模型就结束了,我们要用验证数据集看看这个模型好不好,然后用测试数据集看看模型在新数据上能不能用。

拆分依据数据量来看,比如20%或30% ,具体的拆分,通常会用机器学习工具包scikit-learn 里的数据拆分工具train_test_split来完成

from sklearn.model_selection import train_test_split 
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=0)


目录
相关文章
|
4月前
|
机器学习/深度学习 数据采集 存储
【机器学习】机器学习流程之收集数据
【机器学习】机器学习流程之收集数据
192 1
|
4月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
66 0
|
4月前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
268 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
304 1
|
2月前
|
机器学习/深度学习 数据采集 PyTorch
PyTorch模型训练与部署流程详解
【7月更文挑战第14天】PyTorch以其灵活性和易用性在模型训练与部署中展现出强大的优势。通过遵循上述流程,我们可以有效地完成模型的构建、训练和部署工作,并将深度学习技术应用于各种实际场景中。随着技术的不断进步和应用的深入,我们相信PyTorch将在未来的机器学习和深度学习领域发挥更加重要的作用。
|
2月前
|
机器学习/深度学习 数据采集 数据处理
重构数据处理流程:Pandas与NumPy高级特性在机器学习前的优化
【7月更文挑战第14天】在数据科学中,Pandas和NumPy是数据处理的关键,用于清洗、转换和计算。用`pip install pandas numpy`安装后,Pandas的`read_csv`读取数据,`fillna`处理缺失值,`drop`删除列。Pandas的`apply`、`groupby`和`merge`执行复杂转换。NumPy加速数值计算,如`square`进行向量化操作,`dot`做矩阵乘法。结合两者优化数据预处理,提升模型训练效率和效果。
37 1
|
2月前
|
数据采集 人工智能 监控
阿里云百炼模型训练实战流程:从入门到实战应用
【7月更文第2天】阿里云百炼是AI大模型开发平台,提供一站式服务,涵盖模型训练到部署。用户从注册登录、创建应用开始,选择模型框架,配置资源。接着,进行数据准备、预处理,上传至阿里云OSS。模型训练涉及设置参数、启动训练及调优。训练后,模型导出并部署为API,集成到应用中。平台提供监控工具确保服务性能。通过百炼,开发者能高效地进行大模型实战,开启AI创新。
890 2
|
2月前
|
机器学习/深度学习 数据采集 存储
在机器学习和数据科学中,数据预处理是一个至关重要的步骤。数据规范化(或称为特征缩放)是预处理的一种常见技术,它可以帮助我们改进模型的性能。`sklearn.preprocessing`模块提供了多种数据规范化的方法,其中`StandardScaler`和`MinMaxScaler`是最常用的两种。
在机器学习和数据科学中,数据预处理是一个至关重要的步骤。数据规范化(或称为特征缩放)是预处理的一种常见技术,它可以帮助我们改进模型的性能。`sklearn.preprocessing`模块提供了多种数据规范化的方法,其中`StandardScaler`和`MinMaxScaler`是最常用的两种。
|
4月前
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】Spark ML 对数据进行规范化预处理 StandardScaler 与向量拆分
标准化Scaler是数据预处理技术,用于将特征值映射到均值0、方差1的标准正态分布,以消除不同尺度特征的影响,提升模型稳定性和精度。Spark ML中的StandardScaler实现此功能,通过`.setInputCol`、`.setOutputCol`等方法配置并应用到DataFrame数据。示例展示了如何在Spark中使用StandardScaler进行数据规范化,包括创建SparkSession,构建DataFrame,使用VectorAssembler和StandardScaler,以及将向量拆分为列。规范化有助于降低特征重要性,提高模型训练速度和计算效率。
|
4月前
|
机器学习/深度学习 数据采集 算法
【机器学习】朴素贝叶斯分类器的工作流程?
【5月更文挑战第10天】【机器学习】朴素贝叶斯分类器的工作流程?