ML9: 线性回归

from __future__ import unicode_literals
import pickle
import numpy as np 
import sklearn.linear_model as lm 
import sklearn.metrics as sm 
import matplotlib.pyplot as mp 

#读取训练集
x,y = [],[]
with open('/Users/youkechaung/Desktop/算法/数据分析/AI/day02/day02/data/single.txt','r') as f:
    for line in f.readlines():
        data = [float(substr)
        for substr in line.split(',')]
        x.append(data[:-1])
        y.append(data[-1])
x = np.array(x)
y = np.array(y)
#创建线性分类器
model = lm.LinearRegression()
#训练线性回归其
model.fit(x,y)
#预测输出
pred_y = model.predict(x)
#评估模型的正确的
print(sm.mean_absolute_error(y,pred_y))
print(sm.mean_squared_error(y,pred_y))
print(sm.median_absolute_error(y,pred_y))
print(sm.r2.score(y,pred_y)) #针对回归模型的常用指标
with open('/Users/youkechaung/Desktop/算法/数据分析/AI/day02/day02/data/linear.pkl','wb') as f:
    pickle.dump(model,f)
mp.figure(num='LinearRegression',fontsize=20)
mp.xtable('x',fontsize=14)
mp.ylable('y',fontsize=14)
mp.tick_params(lablesize=10)
mp.scatter(x,y,c='dodgerblue',s=60,label='sample')
mp.plot(x,pred_y,'o-',c='orangered',label='prediciton')
mp.legend()
mp.show()   

猜你喜欢

转载自blog.csdn.net/weixin_38246633/article/details/80588537