我在探索使用逻辑回归模型来预测射门得分的概率。我有两个预测变量,但为了简化起见,我们假设只有一个预测变量:离球门距离。在进行数据探索时,我决定调查距离与射门结果之间的关系。我通过将数据分成大小相等的箱子来图形化地进行这一操作,然后计算每个箱子内所有结果(0表示未进球,1表示进球)的平均值。接着,我绘制了每个箱子的平均距离与进球概率的关系图。我使用Python完成了这一操作
#use the seaborn library to inspect the distribution of the shots by result (goal or no goal) fig, axes = plt.subplots(1, 2,figsize=(11, 5))#first we want to create bins to calc our probability#pandas has a function qcut that evenly distibutes the data #into n bins based on a desired column valuedf['Goal']=df['Goal'].astype(int)df['Distance_Bins'] = pd.qcut(df['Distance'],q=50)#now we want to find the mean of the Goal column(our prob density) for each bin#and the mean of the distance for each bindist_prob = df.groupby('Distance_Bins',as_index=False)['Goal'].mean()['Goal']dist_mean = df.groupby('Distance_Bins',as_index=False)['Distance'].mean()['Distance']dist_trend = sns.scatterplot(x=dist_mean,y=dist_prob,ax=axes[0])dist_trend.set(xlabel="Avg. Distance of Bin", ylabel="Probabilty of Goal", title="Probability of Scoring Based on Distance")
所以我的问题是,为什么我们要经历创建逻辑回归模型的过程,当我可以对图像中的曲线进行拟合时?这样不是可以提供一个能够预测距离x的射门概率的函数吗?
我想问题可能是我们将大约40,000个数据点减少到50个,但我不是很确定为什么这会对预测未来的射门有问题。我们可以增加箱子的数量吗,还是这只会增加变异性?这是偏差-方差权衡的问题吗?我只是有点困惑于为什么这种方法不如逻辑模型好。
回答:
分箱方法比逻辑回归更需要细致调整,因为你需要尝试不同类型的图表来拟合曲线(例如,逆关系、对数、平方等),而对于逻辑回归,你只需要调整学习率就能看到结果。
如果你只使用一个特征(你的“距离”预测变量),我认为分箱方法和逻辑回归之间不会有太大区别。然而,当你使用两个或更多特征时(我在你提供的图像中看到了“距离”和“角度”),你将如何计划组合每个特征的概率来做出最终的0/1分类?这可能会很棘手。例如,“距离”可能比“角度”更有用。然而,逻辑回归可以为你调整权重来解决这个问题。
关于你的分箱方法,如果你使用较少的箱子,可能会看到更多的偏差,因为数据可能比你想象的更复杂,但这不太可能,因为你的数据初看相当简单。然而,如果你使用更多的箱子,这不会显著增加变异性,假设你拟合曲线时没有改变曲线的阶数。如果你改变了拟合曲线的阶数,那么是的,这会增加变异性。不过,你的数据似乎适合使用这种方法进行非常简单的拟合。