100天机器学习day2之线性回归

   大家好 我是小k 线性回归 顾名思义就是在回归任务中用一条线来进行拟合 对于单一特征 我们常用一次函数 y = ax + b 来进行预测  在预测前 我们需要训练集数据进行训练 在训练过程中找到最佳参数a,b得到一条最佳直线代表我们的预测 在这个例子中 我用了Avik Jain 100天机器学习的数据集 根据一个学生所学习的小时来预测他的分数  模板内容参照Avik Jain

  数据集样式如下 

下面我们正式进行预测

1:导入库 数据 并划分测试集和训练集

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

data = pd.read_csv(r'D:\python\100daysdata\studentscores.csv')
x = data.iloc[:,:1].values
y = data.iloc[:,1].values

from sklearn.model_selection import train_test_split

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3,random_state=0)

这些步骤和昨天的基本操作差不多

2:使用简单的回归模型来训练

​
from sklearn.linear_model import LinearRegression //导入线性回归模型

regression = LinearRegression()  //创建线性回归模型
regression = regression.fit(x_train,y_train)  //拟合训练集

​主要参数说明:
fit_intercept:boolean类型 默认True,设置模型是否计算截距,false表示不适用截距
normalize:boolean类型 默认False, 设置为True,数据将在回归前进行标准化处理,这个步骤一般我们放在数据预处理的部分
copy_X:boolean类型 默认True, 如果为True,数据x将会被复制,否则会被重写
n_jobs:int类型, 默认是1,如果设为1将启动所有cpu来计算

3:进行预测

y_pred = regression.predict(x_test) //预测测试集
print(y_test)
print(y_pred)  //这里我把原测试集 和预测结果打印出来做对比

[27 35 17 24 20 62 86 42 30] //原测试集

[54.9426309  57.62228196 45.56385216 49.13672025 47.35028621 67.0010607
 75.48662241 55.38923941 52.70958834] //预测值

光看前两个值 感觉预测效果并不是很好 那么我们通过可视化的方法观察观察

4:可视化

可以先看看在训练集的拟合效果
plt.scatter(x_train,y_train,color = 'red') //点
plt.plot(x_train,regression.predict(x_train),color ='blue') //线
plt.show()

再看看测试集可视化的结果
plt.scatter(x_test , y_test, color = 'red')
plt.plot(x_test , regression.predict(x_test), color ='blue')
plt.show()

emmmmmm  好像拟合效果不太好 在这里我认为可能是训练集数量太小了,在后续也可以增加调整参数来提高拟合度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值