对您的第一个数据科学项目感到紧张!这是6个简单的入门步骤!
我们都听说过流行语“数据科学”。我们大多数人都对“这是什么?”很感兴趣。那里为我存储了什么?我可以成为
数据分析师或数据科学家吗?我需要什么技能?我想开始一个数据科学项目,但我没有一个正确的开始。”
我们大多数人都上过MOOC或在线课程,以了解这一领域,我们对课程中定义的作业和项目感到满意。但是,在开始分析全新的数据集或未知的数据集时,我们迷路了。为了对分析以我们的方式出现的任何数据集充满信心,我们需要实践。所以每个人都需要开始一天。如果我们不遵守纪律的方法,我们可能会迷失在过程中。
数据科学项目的工作量和生命周期
第一个数据科学项目的步骤
在本文中,让我们来看一些可以用于个人数据科学项目的技巧。
1.选择一个数据集
如果您是第一次参加数据科学项目,请选择您感兴趣的数据集。它可能与体育,电影或音乐有关-您感兴趣的任何事物。获取数据的最常见网站是:
Kaggle数据集
UCI资料库
数据世界
政府网站
自己刮取数据
对于已经完成一个或两个项目的人员,按照上述准则进行端对端的操作可以针对分析来自特定领域(例如零售,金融或医疗保健)的复杂数据集,从而获得实时项目的感觉。
首先,我选择了健康保险数据集来进行预测分析。我从Kaggle网站提取了数据集
! pip install -q kaggle
#from google.colab import files
#files.upload()
! mkdir ~/.kaggle
! cp kaggle.json ~/.kaggle/
! chmod 600 ~/.kaggle/kaggle.json
#! kaggle datasets download -d mirichoi0218/insurance
#! unzip insurance.zip -d health-insurance
! kaggle datasets download -d mirichoi0218/insurance
! unzip insurance.zip -d health-insurance
2.选择一个IDE
选择最适合的IDE。如果您正在使用Python作为一种语言,这里有几个examp莱
Pycharm –这是一个旨在编写Python代码的IDE。它提供了多种生产功能,例如照顾例程,智能代码完成,错误检查和代码修复。通过提供与版本控制功能的集成,可以轻松维护项目,支持Web开发以及数据科学
Jupyter Notebook –这是一个开源Web应用程序,可让您创建和共享包含实时代码,方程式和可视化效果的文档。它有助于简化工作并使协作更轻松
Google Colab –它允许用户编写和执行Python代码。它非常适合机器学习和数据科学项目,因为它免费提供计算资源。您可以在此处轻松运行繁重的
机器学习算法,而不必担心基础架构或成本。
带有.py扩展名的简单文本文件–尽管上述选项易于使用并且易于使用,但是如果您最习惯使用记事本编写代码,则可以使用它并以.py扩展名保存文件。然后,您可以使用语法为“ python << filename >>。py”的命令行运行相同的命令。这将执行您的程序,但是对于数据科学而言,这可能不是最佳选择,因为您无法即时查看代码或可视化的输出。
我选择Google Colab作为工作环境
3.清楚列出活动
在开始之前,列出要在数据集中执行的活动的列表,以获取明确的路径。我们在数据科学项目上执行的常见活动是数据摄取,数据清理,数据转换,探索性数据分析,模型构建,模型评估和模型部署。这是所有这些步骤的简要说明。
数据提取–这是将数据读入数据帧的过程
### Panda包使将文件读入数据框变得容易
#导入库
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.cbook import boxplot_stats
import statsmodels.api as sm
from sklearn.model_selection import train_test_split
from statsmodels.stats.outliers_influence import variance_inflation_factor
from sklearn.tree import DecisionTreeRegressor
from sklearn import ensemble
import numpy as np
import pickle
#Reading and summarizing the data
health_ins_df = pd.read_csv("health-insurance/insurance.csv")
health_ins_df.columns
health_ins_df.shape
health_ins_df.describe()
数据清理–这是识别和消除数据集中异常的过程
数据转换–涉及更改列的数据类型,创建派生的列或删除重复的数据,仅举几例
探索性数据分析–对数据集执行单变量和多变量分析,以在其中找到隐藏的见解和模式
我在不同的日子进行了数据清理和对数值和分类变量的探索性数据分析,以关注细节
#Visualizing age column with a histogram
fig
sns.histplot( health_ins_df['age']
sns.histplot( health_ins_df['bmi']
plt.show()
#Visualizing age column with a boxplot
fig
sns.boxplot(x = 'age'
sns.boxplot(x = 'bmi'
plt.show()
#Finding the outlier values in the bmi column
outlier_list = boxplot_stats(health_ins_df.bmi).pop(0)['fliers'].tolist()
print(outlier_list)
#Finding the number of rows containing outliers
outlier_bmi_rows = health_ins_df[health_ins_df.bmi.isin(outlier_list)].shape[0]
print("Number of rows contaning outliers in bmi : "
#Percentage of rows which are outliers
percent_bmi_outlier = (outlier_bmi_rows/health_ins_df.shape[0])*100
print("Percentage of outliers in bmi columns : "
#Converting age into age brackets
print("Minimum value for age : "
#Age between 18 to 40 years will fall under young
#Age between 41 to 58 years will fall under mid-age
#Age above 58 years will fall under old age
health_ins_df.loc[(health_ins_df['age'] >=18) & (health_ins_df['age'] <= 40)
health_ins_df.loc[(health_ins_df['age'] >= 41) & (health_ins_df['age'] <= 58)
health_ins_df.loc[health_ins_df['age'] > 58
fig
sns.countplot(x = 'sex'
sns.countplot(x = 'children'
sns.countplot(x = 'smoker'
sns.countplot(x = 'region'
sns.countplot(x = 'age_group'
heatmap = sns.heatmap(health_ins_df_clean.corr()
sns.relplot(x="bmi"
sns.boxplot(x="smoker"
建立模型–在根据业务/技术约束选择正确的模型之前,尝试并测试数据集上的所有可能模型。在此阶段,您也可以尝试一些套袋或加强技巧
在尝试对数据集进行任何高级模型之前,我首先开发了基本模型
#Data Pre-processing
#Converting categorical values into dummies using one-hot encoding technique
health_ins_df_processed = pd.get_dummies(health_ins_df_clean
health_ins_df_processed.drop(['age']
#Building linear regression model
X = health_ins_df_processed.loc[:
y = health_ins_df_processed['charges']
X_train
X = sm.add_constant(X) # adding a constant
model = sm.OLS(y
predictions = model.predict(X)
print_model = model.summary()
print(print_model)
#Final model after eliminating variable with least significance and high vif
X = health_ins_df_processed[['bmi'
y = health_ins_df_processed['charges']
X_train
X = sm.add_constant(X) # adding a constant
model = sm.OLS(y
predictions = model.predict(X)
print_model = model.summary()
print(print_model)
模型评估–在此阶段,我们测试模型是否足够好以得到预期的结果。我们根据使用的模型来测量准确性,特异性,敏感性或调整后的R平方
这是基本模型的最终评估指标,显示了74%的准确性和7个重要变量(p值<显着性值)
数据科学项目-模型评估
4.一个接一个地处理任务
到现在为止,您已经对项目中要执行的活动有所了解。您可以一一处理。不一定,您必须在一天内完成所有工作。您可能需要花费1天的时间来决定要使用的数据集以及适合的环境。
您可以将第二天的时间用于了解数据并进行数据清理活动。同样,您可以在7到8天的时间内完成项目。
我在4天内完成了这个项目。我已经计划尝试一些更高级的模型来提高预测性能
数据科学项目-目录
5.准备摘要
维护文档以简要说明该项目以及完成该项目所采取的步骤。尝试总结您设计的业务问题说明和数据科学解决方案。您还可以提及有关该项目的生动细节,以供将来参考。
您可以使用简单的Word文档或PowerPoint演示文稿来准备摘要。它可以有5个部分。在第一部分中,简要解释什么是问题陈述。在第二部分中,提及您用于预测分析的数据集是什么,以及数据的来源是什么。在第三部分中,您执行了哪些数据清理,数据转换和探索性数据分析?在下一部分中,简要提及您尝试和测试的不同预测模型的概念验证。在上一节中,您可以提及最终结果和业务问题的解决方案。
请注意,本文档可用于将来重访您的工作。您还可以将其与其他数据科学爱好者共享,以展示您进行的案例研究。它还可以帮助您在面试中总结您的工作。
这个项目完成后,我将准备一个简短的摘要
6.在开源平台上共享
选择一个要发布项目摘要或代码的开源平台,以便您可以在数据科学社区中获得可见性并与其他爱好者联系。如今,GitHub是最常用的。像Kaggle,Google Colab这样的网站很少能提供在线内核供您编写代码并执行它们,而不必担心基础架构。您也可以利用这些平台。
分步进行项目的优势
1.没有压力在一天内完成整个项目
2.您一天可以专心完成一项特定的任务,并且可以高效地完成同一任务
3.它将使您始终专注于任务,直到结束
4.将来可以在准备面试或进行类似类型的项目时参考该项目的摘要
5.您可以利用此项目与其他数据科学爱好者联系并分享创意
题库