一、简介
- 博主是一个普普通通的大学生,没有很厉害的技术,写的内容都是不太正经的偏小白简单的,写的也是学校教过的知识消化后自己的见解,不是很学术研究的博文。
- 用Python外部扩展模块NumPy中数组的操作,并用NumPy、sklearn模块进行一元线性回归分析。
- 配置:Window 7旗舰版+64位操作系统+Anaconda3 Spyder(64-bit)
- 这篇博文是博主的实验报告,之所以以图片形式上传就是避免抄袭。如果有博主的师弟师妹找到这篇博文,博主想和你说这份实验报告很简单,好好看看老师给的PPT,所以不要抄!!
二、实验内容
三、实验步骤和结果
- Advertising.txt中的数据是数值型的,而readlines() 函数返回的是一个字符串列表,NumPy中可以将其中的字符串转换为浮点型,如函数numpy.float()。
- 实验代码:
import matplotlib.pyplot as mp
from sklearn import linear_model
import numpy as np
data_X = []
data_Y = []
fr = open('Advertising.txt')
lines = fr.readlines()
for line in lines:
items = line.strip().split(',')
data_X.append(np.float(items[0]))
data_Y.append(np.float(items[1]))
length = len(data_X)
data_X = np.array(data_X).reshape([length,1])
data_Y=np.array(data_Y)
minX = min(data_X)
maxX = max(data_X)
X = np.arange(minX,maxX).reshape([-1,1])
linear = linear_model.LinearRegression()
linear.fit(data_X,data_Y)
mp.scatter(data_X,data_Y,color = 'yellow')
mp.plot(X,linear.predict(X),color = 'green')
mp.xlabel('money')
mp.ylabel('sale')
mp.show()
print('Coefficient:',linear.coef_)
print('intercept:',linear.intercept_)
x = 200
y = x*linear.coef_ + linear.intercept_
print("当TV广告投入为200时,产品销售额是:",y)
- 结果
四、实验总结
线性回归fit函数用于拟合输入输出数据,调用形式为linear.fit(X,y, sample_weight=None):
X : x为训练向量;
Y : y为相对于X的目标向量;