线性回归 西瓜数据集 Python--sklearn

由西瓜的密度、含糖量推断西瓜的成熟度(0代表生,1代表熟)。

  1. 编程实现多变量线性回归,给出在西瓜数据集(见表1)上的结果(即 模型参数)。
  2. 在判断西瓜成熟度这个问题上,请解释密度跟含糖量哪个指标更重要
    要求:提交代码(Python),请包含相关语句注释,以及执行结果截图。
    在这里插入图片描述
  3. 编程实现多变量回归,给出在西瓜数据集(表1)上的结果(模型参数)。
    假如我们想通过色泽、根蒂和敲击声来判断一下西瓜的成熟度。学习任务变为多变量回归。将不同的指标量化得到上述数据集,过程如下图
    在这里插入图片描述
    因此可以对此数值化后的数据集进行线性回归:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

因此直接根据公式计算的代码如下:

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
xlname=r"C:\Users\34780\Desktop\大二下\机器学习\作业\实验一\西瓜数据
集.xlsx"
data=pd.read_excel(xlname,sheet_name="Sheet1")
data=np.array(data)
data_y=data[:,3]
data_x=np.hstack((data[:,1:3],np.ones((data.shape[0],1))))
w=np.matmul(np.matmul(np.linalg.pinv(np.matmul(np.transpose(data_x),dat
a_x)),np.transpose(data_x),data_y)  #核心公式的代码表示
x=data[:,1]   #特征一
y=data[:,2]   #特征二
z=data[:,3]   #成熟度
zz=w[0]*x+w[1]*y+w[2] #拟合的线性模型
fig = plt.figure()
ax = Axes3D(fig)

ax.scatter(x, y, z,'blue')
ax.scatter(x,y,zz,'red')
ax.set_zlabel('Z',fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y',fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X',fontdict={'size': 15, 'color': 'red'}) 
plt.show()

在这里插入图片描述

当然,如果直接调用sklearn库的库函数,代码如下

from sklearn.linear_model import LinearRegression as lr
reg=lr().fit(data_x,data_y)
score=reg.score(data_x,data_y)

得到的结果如下,
在这里插入图片描述其得分score=0.5709708011721539

  1. 在判断西瓜成熟度这个问题上,请解释密度跟含糖量哪个指标更重要
    由计算结果可知,西瓜密度,含糖量的权重分别为0.656,0.66即含糖量的权重是大于密度的,因此在西瓜成熟度这个问题上,含糖量更重要。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值