2021大三机器学习简单的线性回归课程任务示例+超详细说明

大家好,这里是X,好久不见喽,今天带来机器学习有关简单线性回归的问题示例解析,望大家学的开心😎😎😎也算是补了这个星期的机器学习内容了,大家加油哦

在这里插入图片描述

题目🤑

数据文件是两支斗地主队伍(A/B)的模拟比赛结果。每支队伍有三位成员,分别负责地主(L)、地主上家(U)、地主下家(D)智能。每局比赛同样的发牌结果比赛两次,一次用A队的L与B队的U、D组成比赛,一次用B队的L与A队的U、D组成比赛,计算两队的得分差作为当局结果。每100局记录一次累计结果,现在想要预测10000局时候的分数🤯

分析、构建模型😏

简单的线性回归其实一般来说就只牵涉到两个变量:x和y
那么做题的时候呢就要去找到这两个变量,然后才能进行拟合和预测🐱‍🏍在这道题上,问题的最终目标是想要预测10000局的分数,显然这里已经有两个变量存在了:一个是局数、一个是分数
一般来说,要求什么,就立什么为y(当然这个东西是不一定的啊,看个人,这里是X的习惯,因为要求什么,那么这个东西就是一个结果,结果的话一般就是y值嘛)
在这里插入图片描述
那么在这里就让局数表示为x,让y表示目前得到的分数

问题一(太简单了就过啦)

你要写一个函数train(file_name),对于传进来的数据文件file_name,打开数据文件,并返回有多少行数据。注意 第一行是说明文字,不算数据。

# @coding: utf-8

def train(file_name):
   with open(file_name,"r") as f:
     return len(f.readlines())-1

问题二

你要写一个函数train(file_name),对于传进来的数据文件file_name,打开数据文件,并返回所有数据的平均值。注意 第一行是说明文字,不算数据。

解题的方法有很多种,大家按照自己的习惯来就行🤠
在这里插入图片描述

# @coding: utf-8

def train(file_name):
    import numpy as np
    f = open(file_name,"r")
    lines = f.readlines()
    sum = 0
    for i in range(1,len(lines)):
        sum += int(lines[i])        
    return sum/(len(lines)-1)        
    f.close()

问题三(重点)

你要写一个函数train(file_name),对于传进来的数据文件file_name,打开数据文件,用LinearRegression拟合并预测10000局对局后的累计积分差。注意 第一行是说明文字,不算数据。

ppp❗❗❗❗❗❗❗❗

这里有一个很恶心的问题,就是大家要注意一开始的标题:他说的是每一百局才会记录一个数据,也就是说你的x轴的数据不是[1,2,3,…],而应该是[100,200,300,400,…]如果不这样的话,最终测出来的数据跟真正的结果会差很大的❕❕❕❕

# @coding: utf-8

def train(file_name):
    import numpy as np
    from sklearn.linear_model import LinearRegression
    f = open(file_name,"r")
    lines = f.readlines()   
    x = []
    y = []
    #让X记录每局的局数,y记录每100局的分数
    for i in range(1, len(lines)):
        y.append(int(lines[i])) 
    for i in range(1, len(y)+1):
        x.append(int(i*100))  #别忘了乘100噢
    X = np.array([x]).reshape(-1,1) #相当于“改变、构建”数组的形状
    model = LinearRegression()  ##创建一个估计器
    model.fit(X,y) ##用训练数据拟合
    test_model = np.array([[10000]]) # 输入待测的数值(也就是输入x,得到y的那种感觉)
    predicted_model = model.predict(test_model)[0]# 预测结果取第一个
    return predicted_model
    f.close()

在这里插入图片描述
机器学习其实并没有那么难,找到x,找到y,然后运用已知的技术,其实答案就已经出来了,重点就是能不能够找对这个x,y,有一些复杂一点的题目,是需要建立多个不同模型的,一样的道理嘛,分开来建立不同的模型就好了💜
好啦,今天的日结到这里就结束了,别忘了点赞、收藏、关注噢💘

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是X大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值