100 Days Of ML Code 学习笔记-Day 2

这篇博客记录了100 Days Of ML Code学习的第二天内容——简单线性回归。博主首先介绍了数据来源studentscores.csv,并解释了1D和2D数组的区别。接着,博主说明了数据预处理步骤,采用Day 1的方法处理数据。然后,使用LinearRegression模块进行模型拟合,并通过predict方法预测结果。最后,利用matplotlib.pyplot绘制了训练集和测试集的图像。
摘要由CSDN通过智能技术生成

简单线性回归

先看下数据:studentscores.csv, 相应的数据可以在:https://github.com/Avik-Jain/100-Days-Of-ML-Code/blob/master/datasets/studentscores.csv 中下载(右击“Raw”然后另存为即可),简单线性回归方程式:y=ax+b

1.数据预处理:仿照Day1去处理;

import numpy
import pandas
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
#sklearn.cross_validation这个模块被弃用,我现在用的是model_selection模块

dataset = pandas.read_csv('/Users/agnes/Downloads/100Days/studentscores.csv')
X = dataset.iloc[:,:1].values  #别写成[:,0].values了,不然后面regressor.fit会出错,原因就是它接受的是2D数组,具体解释看下面的备注吧
Y = dataset.iloc[:,1].values   #取第二列
#训练组和测试组比例4:1
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.2,random_state=0)

备注:
像这样的叫1D数组:
[2.5 5.1 3.2 8.5 3.5]
2D数组长这样,相当于在每个数据的外面加了list:
[[2.5]
[5.1]
[3.2]
[8.5]
[3.5]]
2.将简单线性回归模型拟合到训练集:我们用LinearRegression 模块;

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,Y_train)

3.预测结果:我们用LinearRegression 模块中的predict方法;

Y_train_pred = regressor.predict(X_train)
Y_test_pred = regressor.predict(X_test)

4.将结果形象化:利用matplotlib.pyplot 模块画出训练集和测试集的结果。

plt.scatter(X_train,Y_train,color ='red')
plt.plot(X_train, Y_train_pred,color = 'blue')
plt.title('Training Set')   #图片名称
plt.xlabel('Hours')   #x轴的名称
plt.ylabel('Scores')  #y轴的名称
#将生成的图片保存在我的路径里边,记得要将这步骤放在show函数的前边,否则生成的图片是空白的
plt.savefig('/Users/agnes/Downloads/100Days/day2_train.jpg')
plt.show()

plt.scatter(X_test,Y_test,color ='black')
plt.plot(X_test,Y_test_pred,color ='green')
plt.title('Testing Set')
plt.xlabel('Hours')
plt.ylabel('Scores')
plt.savefig('/Users/agnes/Downloads/100Days/day2_test.jpg')
plt.show()

运行,之后打开图片所保存的路径,可以看到所生成的两个图片:
这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值