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

2023-05-16

大家好,这里是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,有一些复杂一点的题目,是需要建立多个不同模型的,一样的道理嘛,分开来建立不同的模型就好了💜
好啦,今天的日结到这里就结束了,别忘了点赞、收藏、关注噢💘

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐