sklearn线性回归拟合一次项函数

这样一个式子

y = ax+b

y = 0.5x+6 + 随机数噪音

数据分为训练集和测试集

train_set 70%

test_set 30%

直接上代码

import random
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import accuracy_score, mean_squared_error, r2_score,mean_squared_log_error
from sklearn.utils.multiclass import type_of_target
import matplotlib.pyplot as plt
plt.figure()

#data prepare
X = np.linspace(1,200,100)
y = 0.5*X+6+np.random.normal(0,3,100)

# plt.scatter(x=X,y=y, marker='o',c='b')
# plt.show()
#model establish
model = LinearRegression()
X = X.reshape([-1,1])
# y = y.reshape([-1,1])

X_train = X[:70]
y_train = y[:70]
X_test = X[70:]
y_test = y[70:]

model.fit(X_train,y_train)
y_pred = model.predict(X)

# check y_ture data_type,type:continuous
print(type_of_target(y_test))

# 分类采用这个, 线性回归使用MSE或R2
# acc = accuracy_score(y_test,y_pred)

mse = mean_squared_log_error(y,y_pred)
r2 = r2_score(y,y_pred)
print(mse,r2)

y_pred2 = model.predict(X_test)

print(model.coef_,model.intercept_)

plt.scatter(x=X,y=y_pred,c='b',marker='x')
plt.scatter(x=X,y=y,c='r',marker='o')
plt.scatter(x=X_test,y=y_pred2,c='g')
plt.show()


得出结果:

C:\Users\e0080855\AppData\Local\Continuum\anaconda3\python.exe C:/data/E0080855/test/machine_ln/ml1.py
continuous
0.007628725703060707
0.9896478576033121
[0.49886533] 6.390841972813895

得出图像

红点代表原数据样本,绿点代表模型预测结果 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值