Python编程语言在SEOs中越来越受欢迎,因为它可以方便地自动化日常例行任务。它可以节省时间,并产生一些花哨的机器学习来解决更重要的问题,最终有助于你的品牌和职业生涯。除了自动化之外,本文还将帮助那些希望更多地了解数据科学以及Python如何提供帮助的人。
在下面的示例中,我使用一个电子商务数据集来构建一个回归模型。我还解释了如何确定模型是否揭示了任何具有统计意义的东西,以及异常值如何可能扭曲结果。
我使用Python 3和木星笔记本生成图形和方程与线性回归Kaggle数据。我检查了它们的相关性,并用这个数据集建立了一个基本的机器学习模型。通过这样的设置,我现在有了一个方程来预测我的目标变量。
在构建我的模型之前,我想先提供一个简单易懂的线性回归定义,以及它对分析数据的重要性。
什么是线性回归?
线性回归是一种基本的机器学习算法,用于根据一个变量与其他自变量之间的线性关系来预测一个变量。让我们看一个简单的线性回归图:
如果你知道这个方程,你也可以知道y对x的值。a是x的系数也是直线的斜率,b是截距也就是说,当x = 0时,b = y。
我的电子商务数据集
我使用了来自Kaggle的数据集。这不是一个非常复杂或详细的一个,但足以研究线性回归的概念。
如果你是新人,以前没有用过木星笔记本,这里有一个快速的建议:
启动终端并写入命令:jupyter notebook
一旦输入,这个命令将自动启动默认的web浏览器和一个新的笔记本电脑。单击New和python3。
现在是时候使用一些花哨的Python代码了。
导入库
进口matplotlib。pyplot作为plt
输入numpy为np
以pd形式导入熊猫
从sklearn。linear_model进口LinearRegression
从sklearn。model_selection进口train_test_split
从sklearn。指标导入mean_absolute_error
进口statsmodels。api sm
从statsmodels.tools。eval_measures导入mse, rmse
以sns形式海运进口
pd.options.display。float_format = {: .5f} .format
进口警告
导入数学
进口scipy。统计数据作为统计数据
进口scipy
从sklearn。预处理进口规模
warnings.filterwarnings(“忽略”)
读取数据
df = pd.read_csv(“Ecom_Customers.csv”)
df.head ()
我的目标变量是每年的花费,我将尝试找出它与其他变量之间的关系。如果我能说如果在App上的时间多增加1分钟,用户就会花这么多时间,那就太好了。这是本研究的主要目的。
探索性数据分析
首先让我们看看相关热图:
df_kor = df.corr ()
plt.figure (figsize = (10,10))
sns。(df_kor, vmin=-1, vmax=1, cmap=”viridis”, annot=True, linewidth=0.1)
这个热图通过赋予每个变量-1到+1的权重来显示它们之间的相关性。
紫色代表负相关,黄色代表正相关接近1或-1意味着你有一些有意义的东西,分析一下。例如:
会员资格的长短与年消费额有较高的正相关关系。(81%)
在App上的时间也有相关性,但不像会员资格的长短那样强大。(50%)
让我们详细看看这些关系。我最喜欢的情节是双情节。只要一行代码,您就可以看到所有发行版。
sns.pairplot (df)
这个图表显示了每个变量之间的所有分布,为您绘制了所有图表。为了了解它们包含哪些数据,请勾选左轴和底轴名称。(如果它们是相同的,你会看到一个简单的分布条形图。)
看看最后一行,年度花费(左轴是我的目标)图表与其他变量的对比。
会员的长度有非常完美的线性度,很明显如果我能提高顾客的忠诚度,他们会花更多的钱!但多少钱?有什么数字或系数来表示它吗?我们能预测吗?我们会想办法的。
检查缺失值
在构建任何模型之前,您应该检查数据集中是否有空单元格。由于许多机器学习算法不支持使用这些NaN值的数据,因此不可能继续使用这些NaN值。
这是我的代码看缺失的价值:
.sum df.isnull () ()
isnull()检测NaN值,sum()对它们进行计数。
我没有好的NaN值。如果我有,我应该填满或者扔掉它们。
例如,要删除所有NaN值,可以使用以下命令:
df.dropna(原地= True)
可以使用fillna():
df(应用“时间”)。fillna(df[” App上的时间”].mean(), inplace=True)
我的建议是阅读这篇关于如何处理数据集中缺失值的文章。这是另一个需要解决的问题,需要不同的方法。
建立线性回归模型
所以