使用 Python 和 Scikit Learn 进行数据预处理的技巧

使用 Python、Scikit Learn 的 1 加 2 关键数据预处理步骤。您可以开始进行机器学习、数据分析项目

数据是机器学习的血液,但不是数据的数量。因此,在开始开发机器学习模型之前,适当和最佳的数据预处理非常重要。因此,在本文中,我将使用 Python 和 Scikit Learn 完成 1 加 2 个关键数据预处理步骤。在本文结束时,您可以开始使用实用的提示和技巧来开展自己的机器学习、数据分析项目

目录:使用 Python 和 Scikit Learn 进行数据预处理的技巧

一:提出问题

首先,我建议问为什么需要利用机器学习。我之前遇到的大多数人可能会说他们喜欢使用机器学习进行数据分析。数据分析是一种方法,但不是目的。从我的角度来看,商业方面基本上有三种类型:

  • 寻找新的、可优化的元素,以提高业务和运营绩效
  • 通过机器做出的操作决策自动执行操作任务。
  • 建立和开发内部利基人工智能模型

二:数据来源的重要性——内部和外部抓取

现在,您可能会清楚地与您的团队保持一致,该模型的目的是什么。那么,数据发现和收集就是下一件大事。

为了评估数据源,质量始终是评估数据集是否可用于构建机器学习模型的最重要指标。因为它会误导机器学习过程并以错误的方式引导,从而扭曲学习结果。

根据我的项目经验,质量的定义有两个基本选项供您参考。它们是内部且可抓取的数据。只是不要尝试从第三方购买数据集

如果您的公司没有足够的内部数据,则抓取数据是收集数据的最佳方法之一。这是因为我们可以识别数据来自哪里并收集我们专门需要的数据。我们可以利用 BuyfromLo 等抓取工具提供商,或者内部开发抓取应用程序。

www.buyfromlo.com/api

www.buyfromlo.com/app

三:使用Python清理数据

一旦解决了数据集和数据源方面的问题,就该讨论如何清理和构建数据了。无论是抓取数据还是内部数据,它们的格式都可能不适合机器学习模型,例如 Scikit 学习线性回归。以下是您检查和清理数据的提示。

第 1 步:将数据集转换为 DataFrame

DataFrame类型是机器学习中身体灵魂的一部分。无论您使用csv输入数据还是使用API​​获取数据列表,这里都是代码行FYI

Read CSV

import pandas as pd

dataset = pd.read_csv ( 'planprice3.csv' )

Data List

List = [1, 2, 3, 4]

Dataset = pd.DataFrame(List)

对于CSV数据集,有时标题可能不是您设置的标题,而您设置的标题则取决于第二个角色。因此,这是解决这个问题的方法。

dataset = pd.read_csv ( 'planprice3.csv' )

dataset.columns = dataset.iloc [ 0 ]

dataset = dataset [ 1 :]

Step2:了解数据集中包含哪些信息

pp_dataset.shape

(84359, 13)

这告诉我们数据集的形状。这里的形状意味着有多少个特征或所谓的变量(依赖加自变量),以及数据集有多少个实例。

print ( dataset.info ())

这是超级有用的方法,它可以告诉您有关数据集的更多详细信息

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 84359 entries, 1 to 84359

Data columns (total 13 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 Purchase Date 84359 non-null object

1 Campaign 84359 non-null object

2 Source Desc 84359 non-null object

3 Source Type 84359 non-null object

4 Country 84359 non-null object

5 Company Name 84358 non-null object

6 Amount ($) 84359 non-null object

7 Base Price ($) 84359 non-null object

8 Gender 84359 non-null object

9 Plan Type 84359 non-null object

10 Activity 84359 non-null object

11 Created By Name 84359 non-null object

12 Created by ID 84359 non-null object

dtypes: object(13)

memory usage: 8.4+ MB

如果你的数据集都是整数数据类型,你也可以使用这一行来查看数字的大图

dataset.describe ()

步骤 3:解决值缺失问题

正如您在上面看到的,实例数量可能不同,并且某些功能的实例可能比其他功能少。这不利于锻炼,所以这是使事情保持一致的方法。

dataset.dropna ( inplace= True )

步骤 4:对所有数据进行数字化

机器学习无法读取字符串,只能读取整数和数字。事实上,现实世界的数据集中包含如此多的字符串。所以我们需要将字符串转换为数字。这是完成它的 scikit 库和代码。

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder ()

label = le.fit_transform ( dataset [ 'Country' ])

dataset [ 'Country1' ] = label

dataset.drop ( "Country" , axis= 1 , inplace= True )

适用于需要转换多个功能的情况

dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] = dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] .apply ( le.fit_transform )

步骤 5:将数字转换为整数数据类型

有些值可能看起来像数字,但实际上它们可能是字符串数据类型。在这种情况下,我们需要将它们转换为整数数据类型。这是代码示例:

dataset [ 'Amount ($)' ] = dataset [ 'Amount ($)' ] .astype ( int )

免费的Scraping API和完整的数据清理Python脚本

如果您对使用 Python 和 Scikit Learn 进行数据预处理的技巧感兴趣,请添加消息“DS + 完整脚本和抓取 API 免费令牌”来订阅我们的新闻通讯。当最新的应用程序脚本上线时,我们会向您发送脚本。

我希望您喜欢阅读使用 Python 和 Scikit Learn 进行数据预处理的技巧。如果您这样做了,请通过执行下列操作之一来支持我们,因为这总是对我们的频道有所帮助。

数据科学与机器学习 Coursera 课程推荐