关于运动员伤病预测数据集的探索(下)

简介: 关于运动员伤病预测数据集的探索(下)

关于运动员伤病预测数据集的探索(上)https://developer.aliyun.com/article/1507871?spm=a2c6h.13148508.setting.17.1b484f0euQtoBM

具体可看附录部分

从上面的条形图中,我们可以得到关于特征重要性的信息:

  1. Player_Weight:这个特征的重要性得分最高,这意味着在预测运动员受伤可能性时,体重可能是最重要的因素之一。
  2. Player_Height:这个特征的重要性得分也很高,排在第二位。这表明身高也可能是预测受伤可能性时的一个重要因素。
  3. Player_Age:年龄特征的重要性得分相对较高,排在第三位。这意味着年龄也可能是预测受伤可能性时的一个重要因素。
  4. Training_IntensityPrevious_Injuries:这两个特征的重要性得分相对较低。尽管我们在之前的分析中观察到Previous_InjuriesLikelihood_of_Injury之间存在一定的相关性,但在随机森林模型中,它的重要性不如其他特征。
  5. Recovery_Time:这个特征的重要性得分最低,意味着在预测受伤可能性时,它可能是最不重要的因素。

需要注意的是,特征重要性得分是基于随机森林模型的,它反映了特征在模型中的预测能力。不同的模型可能会给出不同的特征重要性得分。 此外,特征重要性得分也不能完全代表特征在实际问题中的重要性。因此,在做出任何结论之前,我们可能还需要进行更深入的分析或考虑其他类型的模型。

5、展示更多的特征组合

从上面的配对图中,我们可以得到关于特征之间关系的信息:

  1. Player_Age vs Player_Height:这两个特征之间存在较强的正相关关系,这与我们之前的观察一致。随着年龄的增长,身高通常也会增长。
  2. Player_Weight vs Player_Height:这两个特征之间也存在较强的正相关关系。通常情况下,身高较高的个体体重也较重。
  3. Training_Intensity vs Likelihood_of_Injury:从散点图中我们可以看到,随着训练强度的增加,受伤的可能性也有所增加,但这种关系不是很强。
  4. Previous_Injuries vs Likelihood_of_Injury:有先前受伤历史的运动员的受伤可能性略高于没有先前受伤历史的运动员。
  5. Recovery_Time vs Likelihood_of_Injury:从散点图中我们看不出明显的趋势,表明恢复时间与受伤可能性之间没有明显的直接关系。

这些观察结果与我们之前的分析结果相符。配对图提供了一个更全面的视角来观察特征之间的关系,帮助我们更好地理解数据。

需要注意的是,配对图只能展示特征之间的两两关系,并不能提供关于它们之间更复杂交互作用的详细信息。 在实际应用中,我们可能还需要考虑特征之间的交互作用,或者使用更复杂的模型来捕获这些关系。

总结

为了帮助调整训练计划以降低受伤风险,我们可以基于现有的数据集来提供一些建议。以下是一些可能有助于降低受伤风险的建议:

  1. 监控训练强度:分析显示:训练强度与受伤可能性之间存在微弱的正相关关系。
    建议运动员和教练团队密切监控训练强度,避免过度训练。可以考虑使用心率监测器和其他可穿戴设备来跟踪训练强度,并据此调整训练计划。
  2. 注意体重和身高:分析显示:体重和身高是预测受伤可能性的重要因素。运动员应该确保他们的体重和身高比例适当,避免过重或过高的体重增加受伤风险。
  3. 考虑年龄因素:分析显示:随着年龄的增长,运动员的身体恢复能力和适应性可能会下降。
    建议年长的运动员可能需要更加注意训练强度和恢复时间,以降低受伤风险。
  4. 预防先前受伤的再次发生:分析显示:有先前受伤历史的运动员受伤的可能性略高。
    建议运动员在训练前进行适当的热身和拉伸,以预防先前受伤的再次发生。
  5. 适当增加恢复时间:分析显示:恢复时间与受伤可能性之间没有明显的直接关系,但适当的恢复对于避免过度训练和减少受伤风险仍然非常重要。
    但还是建议运动员确保在训练之间有足够的恢复时间。

附录

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
injury_data = pd.read_csv('injury_data.csv')
injury_data.head()
missing_values = injury_data.isnull().sum()
statistical_summary = injury_data.describe()
missing_values
statistical_summary

1、探索这些特征与受伤可能性之间的关系

具体可看正文部分

#为seaborn打造风格
sns.set_style("whitegrid")

#创建子地块
fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(15, 15))

#年龄与受伤可能性
sns.boxplot(x="Likelihood_of_Injury", y="Player_Age", data=injury_data, ax=axes[0, 0])
axes[0, 0].set_title("Age vs Likelihood of Injury")

#重量与受伤可能性
sns.boxplot(x="Likelihood_of_Injury", y="Player_Weight", data=injury_data, ax=axes[0, 1])
axes[0, 1].set_title("Weight vs Likelihood of Injury")

#身高与受伤可能性
sns.boxplot(x="Likelihood_of_Injury", y="Player_Height", data=injury_data, ax=axes[1, 0])
axes[1, 0].set_title("Height vs Likelihood of Injury")

#既往受伤与受伤可能性
sns.barplot(x="Previous_Injuries", y="Likelihood_of_Injury", data=injury_data, ax=axes[1, 1])
axes[1, 1].set_title("Previous Injuries vs Likelihood of Injury")

#训练强度与受伤可能性
sns.boxplot(x="Likelihood_of_Injury", y="Training_Intensity", data=injury_data, ax=axes[2, 0])
axes[2, 0].set_title("Training Intensity vs Likelihood of Injury")

#恢复时间与受伤可能性
sns.boxplot(x="Likelihood_of_Injury", y="Recovery_Time", data=injury_data, ax=axes[2, 1])
axes[2, 1].set_title("Recovery Time vs Likelihood of Injury")

plt.tight_layout()
plt.show()

2、创建一个成对图以可视化要素之间的关系

具体可看正文部分

# 计算相关性矩阵
correlation_matrix = injury_data.corr()

# 创建热力图可视化相关性矩阵
plt.figure(figsize=(15, 12))  # 调整图形大小
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', center=0)
plt.title("Correlation Heatmap of Features")
plt.show()

3、特征相关性分析

具体可看正文部分

correlation_with_target = injury_data.corr()["Likelihood_of_Injury"].drop("Likelihood_of_Injury")

plt.figure(figsize=(10, 6))
correlation_with_target.sort_values().plot(kind='bar')

plt.title("Correlation of Features with Likelihood of Injury")
plt.xlabel("Features")
plt.ylabel("Correlation Coefficient")
plt.xticks(rotation=45)
plt.grid(axis='y')
plt.show()

4、特征重要性分析

具体可看正文部分

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
#将数据拆分为训练集和测试集
X = injury_data.drop("Likelihood_of_Injury", axis=1)
y = injury_data["Likelihood_of_Injury"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
#初始化随机林分类器
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
#训练分类器
rf_classifier.fit(X_train, y_train)
#获取功能重要性
feature_importances = rf_classifier.feature_importances_

#创建条形图以可视化功能重要性
plt.figure(figsize=(10, 6))
sorted_idx = feature_importances.argsort()
plt.barh(range(len(sorted_idx)), feature_importances[sorted_idx], align='center')
plt.yticks(range(len(sorted_idx)), [X.columns[i] for i in sorted_idx])
plt.xlabel("Feature Importance")
plt.title("Feature Importances from Random Forest")
plt.grid(axis='x')
plt.show()

5、展示更多的特征组合

具体可看正文部分

sns.pairplot(injury_data, hue="Likelihood_of_Injury", diag_kind="kde")
plt.suptitle("Pairplot of Features with Likelihood of Injury", y=1.02)
plt.show()


相关文章
|
4月前
|
机器学习/深度学习 算法 数据处理
《零基础实践深度学习》波士顿房价预测任务1.3.3.4训练过程
这篇文章详细阐述了如何使用线性回归对波士顿房价进行预测,包括构建神经网络模型、数据处理、模型设计、训练过程、梯度下降法以及随机梯度下降法(SGD)的应用,并提供了完整的Python代码实现。
|
7月前
|
机器学习/深度学习 监控 数据可视化
关于运动员伤病预测数据集的探索(上)
关于运动员伤病预测数据集的探索
|
7月前
|
机器学习/深度学习 算法
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
【视频】R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险|数据分享
|
7月前
|
机器学习/深度学习 传感器 自然语言处理
时间序列预测的零样本学习是未来还是炒作:TimeGPT和TiDE的综合比较
最近时间序列预测预测领域的最新进展受到了各个领域(包括文本、图像和语音)成功开发基础模型的影响,例如文本(如ChatGPT)、文本到图像(如Midjourney)和文本到语音(如Eleven Labs)。这些模型的广泛采用导致了像TimeGPT[1]这样的模型的出现,这些模型利用了类似于它们在文本、图像和语音方面获得成功的方法和架构。
135 1
|
7月前
|
算法 Python
利用贝叶斯算法对简单应用实现预测分类
利用贝叶斯算法对简单应用实现预测分类
|
7月前
|
存储 机器学习/深度学习 数据采集
基于LightGBM的肺癌分类模型:从预测到个体化治疗
基于LightGBM的肺癌分类模型:从预测到个体化治疗
295 1
|
7月前
|
机器学习/深度学习
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
|
机器学习/深度学习 算法框架/工具
【深度学习】实验01 波士顿房价预测
【深度学习】实验01 波士顿房价预测
202 0
|
机器学习/深度学习 算法 数据可视化
机器学习决策树算法泰坦尼克号乘客生存预测
机器学习决策树算法泰坦尼克号乘客生存预测
159 0
|
机器学习/深度学习 自然语言处理 算法
机器学习算法(五):基于企鹅数据集的决策树分类预测
机器学习算法(五):基于企鹅数据集的决策树分类预测

热门文章

最新文章