Data Science 简明教程
Data Science - Lifecycle
What is Data Science Lifecycle?
数据科学生命周期是一种寻找数据问题的解决方案的系统方法,它显示了开发、交付/部署和维护数据科学项目所需的步骤。我们可以假设一个通用数据科学生命周期,其中包含一些最重要的常见步骤,如下面的图片所示,但由于每个项目不同,因此某些步骤可能因项目而异,因为并非每个数据科学项目都是以相同的方式构建的
一种标准数据科学生命周期方法包括使用机器学习算法和统计程序,这些程序会产生更准确的预测模型。数据提取、准备、清理、建模、评估等,是数据科学中最重要的阶段。这种技术在数据科学领域被称为“数据挖掘的跨行业标准程序”。
How many phases are there in the Data Science Life Cycle?
数据科学生命周期主要有六个阶段−
Identifying Problem and Understanding the Business
数据科学生命周期从“为什么?”开始,就像任何其他业务生命周期一样。数据科学过程中最重要的部分之一是找出问题所在。这有助于找到一个明确的目标,可以围绕该目标制定所有其他步骤。简而言之,尽早了解业务目标非常重要,因为它将决定分析的最终目标。
此阶段应评估业务趋势、评估可比分析的案例研究,并研究行业领域。该组将根据可用的员工、设备、时间和技术评估项目的可行性。一旦发现并评估了这些因素,将制定一个初步假设来解决现有环境造成的业务问题。本阶段应−
-
明确必须立即解决问题的原因并且需要答案。
-
明确业务项目的潜在价值。
-
识别与该项目相关的危险,包括道德问题。
-
创建和传达一个灵活、高度集成的项目计划。
Data Collection
数据科学生命周期的下一步是数据收集,这意味着从适当且可靠的来源获取原始数据。收集的数据可以是有序的,也可以是无序的。数据可以从网站日志、社交媒体数据、在线数据存储库中收集,甚至可以使用 API、网络抓取或可能存在于 Excel 或其他来源中的数据从在线来源流式传输数据。
从事这项工作的人员应该了解可用的不同数据集之间的差异,以及组织如何投资其数据。专业人士很难追踪每条数据的来源,以及它是否是最新的。在数据科学项目整个生命周期内,追踪这些信息非常重要,因为它可以帮助验证假设或运行任何其他新实验。
信息可以通过调查或更流行的自动数据收集方法(如互联网 Cookie)收集,互联网 Cookie 是未经分析的数据的主要来源。
我们还可以使用开放源数据集等辅助数据。我们可以从许多可用网站收集数据,例如
-
Kaggle (https://www.kaggle.com/datasets),
-
Google Public Datasets (https://cloud.google.com/bigquery/public-data/)
Python 中有一些预定义的数据集。让我们从 Python 中导入鸢尾花数据集,并使用它来定义数据科学的阶段。
from sklearn.datasets import load_iris
import pandas as pd
# Load Data
iris = load_iris()
# Create a dataframe
df = pd.DataFrame(iris.data, columns = iris.feature_names)
df['target'] = iris.target
X = iris.data
Data Processing
从可靠的来源收集到高质量的数据后,下一步是对其进行处理。数据处理的目的是确保所获取的数据中是否存在任何问题,以便在进入下一阶段之前解决这些问题。如果没有这一步,我们可能会产生错误或不准确的发现。
所获得的数据可能存在若干困难。例如,数据可能有多行或多列缺少若干值。它可能包含若干离群值、不准确的数字、具有不同时区的 timestamp 等。数据可能潜在地存在日期范围问题。在某些国家/地区,日期的格式为 DD/MM/YYYY,而在其他国家/地区,日期的格式为 MM/DD/YYYY。在数据收集过程中可能会出现许多问题,例如,如果从多个温度计中收集数据且其中任何一个出现故障,则可能需要丢弃或重新收集数据。
在此阶段,必须解决与数据相关的各种问题。其中一些问题有多种解决方案,例如,如果数据包含缺失值,我们可以用零或列的平均值替换它们。不过,如果该列缺少大量值,则最好完全移除该列,因为它拥有太少数据而无法用于求解问题的数据科学生命周期的方法。
当时区混乱时,我们无法使用这些列中的数据,可能必须将其移除,直至我们能够定义提供的时间戳中使用的时区。如果知道收集每个时间戳所用的时区,我们可能会将所有时间戳数据转换为某个时区。此种方式有许多策略可以解决所获取数据中可能存在的各种问题。
接下来我们将使用 Python 访问数据,然后将其存储在数据框内。
from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
# Load Data
iris = load_iris()
# Create a dataframe
df = pd.DataFrame(iris.data, columns = iris.feature_names)
df['target'] = iris.target
X = iris.data
机器学习模型的所有数据都必须以数字表示。这意味着,如果数据集包含分类数据,则必须将其转换为数字值,然后才能执行模型。因此,我们将实施标签编码。
Label Encoding
species = []
for i in range(len(df['target'])):
if df['target'][i] == 0:
species.append("setosa")
elif df['target'][i] == 1:
species.append('versicolor')
else:
species.append('virginica')
df['species'] = species
labels = np.asarray(df.species)
df.sample(10)
labels = np.asarray(df.species)
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
le.fit(labels)
labels = le.transform(labels)
df_selected1 = df.drop(['sepal length (cm)', 'sepal width (cm)', "species"], axis=1)
Data Analysis
数据分析 探索性数据分析 (EDA) 是一组用于分析数据的可视化技术。采用此方法,我们可能会获取有关数据统计摘要的具体详细信息。此外,我们将能够处理重复数字、离群值,并在集合内找出趋势或模式。
在此阶段,我们尝试对所获取和已处理的数据有更深入的理解。我们应用统计和分析技术对数据做出结论,并确定我们数据集中的多列之间的联系。借助图片、图表、流程图、绘图等,我们可以使用可视化来更好地理解和描述数据。
专业人员使用均值和中位数等数据统计技术来更好地理解数据。他们还使用直方图、频谱分析和总体分布来可视化数据并评估其分布模式。数据将根据问题进行分析。
Example
以下代码用于检查数据集中是否存在任何空值:
df.isnull().sum()
Output
sepal length (cm) 0
sepal width (cm) 0
petal length (cm) 0
petal width (cm) 0
target 0
species 0
dtype: int64
从上述输出中我们可以得出结论,数据集中没有空值,因为列中所有空值的总和为 0。
我们将使用 shape 参数来检查数据集的形状(行、列)。
Example
df.shape
Output
(150, 5)
接下来我们将使用 info() 检查列及其数据类型:
Example
df.info()
Output
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 sepal length (cm) 150 non-null float64
1 sepal width (cm) 150 non-null float64
2 petal length (cm) 150 non-null float64
3 petal width (cm) 150 non-null float64
4 target 150 non-null int64
dtypes: float64(4), int64(1)
memory usage: 6.0 KB
只有一列包含分类数据,而其他列包含非空数字值。
现在我们将在数据上使用 describe()。describe() 方法对数据集执行基础统计计算,例如极值、数据点数量、标准偏差等。任何缺失值或 NaN 值都会立即被忽略。describe() 方法准确描绘了数据的分布。
Example
df.describe()
Output
Data Visualization
Target column - 我们的目标列将是 Species 列,因为我们最终只需要基于物种的结果即可。
我们将使用 Matplotlib 和 seaborn 库进行数据可视化。
以下是物种计量图−
Example
import seaborn as sns
import matplotlib.pyplot as plt
sns.countplot(x='species', data=df, )
plt.show()
Output
数据科学中还有许多其他可视化图。要了解更多信息,请参阅 https://www.tutorialspoint.com/machine_learning_with_python
Who are all involved in Data Science lifecycle?
数据正在从个人层面到组织层面,在大量的服务器和数据仓库中生成、收集和存储。但是您将如何访问这个庞大的数据存储库?这就是数据科学家介入的地方,因为他们专门从非结构化文本和统计数据中提取见解和模式。
下文,我们将介绍参加数据科学生命周期的许多数据科学团队工作简介。
S.No |
Job Profile & Role |
1 |
*业务分析师*了解业务需求并找到目标客户。 |
2 |
*数据分析师*格式化并清理原始数据,解释并对其进行可视化以执行分析并提供技术摘要。 |
3 |
*数据科学家*提高机器学习模型的质量。 |
4 |
*数据工程师*他们负责从社交网络、网站、博客和其他内部和外部 Web 源收集数据,以便进一步分析。 |
5 |
*数据架构师*连接、集中、保护和跟上组织的数据源。 |
6 |
*机器学习工程师*设计和实施与机器学习相关的算法和应用程序。 |