Python-线性回归模型预测绝地求生玩家排名

比赛官网:Kaggle绝地求生数据集

比赛描述:在PUBG游戏(绝地求生)中,每场比赛最多有100名玩家,玩家可以在团队上根据有多少其他团队在被淘汰时还活着而在游戏结束时排名。在游戏中,玩家可以获得不同的弹药,恢复被击倒但未被击杀的队友,驾驶车辆,游泳,跑步,射击等等。

官网给的数据集包含大量匿名的PUBG游戏统计数据,数据格式为每行包含一个玩家的赛后统计数据。数据来自所有类型的比赛:单排,双排,小队和自定义(不保证每场比赛有100名玩家,每个小组最多4名玩家)。

比赛要求必须创建一个模型,根据他们的最终统计数据预测玩家的比赛排名,从1(第一名)到0(最后一名)。

工具:Python3

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn import metrics
from sklearn.model_selection import cross_val_predict
import matplotlib.pyplot as plt

filePath01 = r'F://temp_data/train_V2.csv'
data01 = pd.read_csv(filePath01)
data01.head()  # 读取前五行数据,如果是最后五行,用data.tail()
print(data01.shape)  # 看数据的维度
X = data01.drop(['rank'], axis=1)
y = data01[:, ['rank']]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=2333)

linreg = LinearRegression()
linreg.fit(X_train, y_train)
# 查看需要的模型系数结果
print(linreg.intercept_)
print(linreg.coef_)

# 模型拟合测试集
y_pred = linreg.predict(X_test)

# 用scikit-learn计算均方差MSE
print("MSE:", metrics.mean_squared_error(y_test, y_pred))
# 用scikit-learn计算均方根差RMSE
print("RMSE:", np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
# 得到了MSE或者RMSE,如果我们用其他方法得到了不同的系数,需要选择模型时,就用MSE较小时对应的参数。

# 通过交叉验证来持续优化模型,这里采用10折交叉验证,即cv=10
predicted = cross_val_predict(linreg, X, y, cv=10)
# 用scikit-learn计算MSE
print("MSE:", metrics.mean_squared_error(y, predicted))
# 用scikit-learn计算RMSE
print("RMSE:", np.sqrt(metrics.mean_squared_error(y, predicted)))

# 画图观察结果  真实值和预测值的变化关系
fig, ax = plt.subplots()
ax.scatter(y, predicted)
ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show()


如有疑问请联系我,欢迎骚扰:

                                                             

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值