楼主: ysj9981
2795 1

[新手尝试] [新人发帖]用Python做线性回归和误差分析 [推广有奖]

  • 0关注
  • 1粉丝

已卖:245份资源

硕士生

1%

还不是VIP/贵宾

-

威望
0
论坛币
4383 个
通用积分
18.5369
学术水平
18 点
热心指数
18 点
信用等级
18 点
经验
4584 点
帖子
40
精华
0
在线时间
198 小时
注册时间
2016-6-1
最后登录
2024-10-7

楼主
ysj9981 在职认证  发表于 2016-10-16 00:41:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
import matplotlib.pyplot as plt  
import numpy as np  
import scipy as sp  
import seaborn as sns
from scipy.stats import norm  
from sklearn.pipeline import Pipeline  
from sklearn.linear_model import LinearRegression  
from sklearn.preprocessing import PolynomialFeatures  
from sklearn import linear_model

''''' 数据生成 '''  
x = np.arange(0, 1, 0.002)  
y = norm.rvs(0, size=500, scale=0.1)  
y = y + x**2  
  
''''' 均方误差根 '''  
def rmse(y_test, y):  
    return sp.sqrt(sp.mean((y_test - y) ** 2))  
  
''''' 与均值相比的优秀程度,介于[0~1]。0表示不如均值。1表示完美预测.这个版本的实现是参考scikit-learn官网文档  '''  
def R2(y_test, y_true):  
    return 1 - ((y_test - y_true)**2).sum() / ((y_true - y_true.mean())**2).sum()  
  
  
''''' 这是Conway&White《机器学习使用案例解析》里的版本 '''  
def R22(y_test, y_true):  
    y_mean = np.array(y_true)  
    y_mean[:] = y_mean.mean()  
    return 1 - rmse(y_test, y_true) / rmse(y_mean, y_true)  
  
  
plt.scatter(x, y, s=5)  
degree = [1,2,100]  
y_test = []  
y_test = np.array(y_test)  
  
  
for d in degree:  
    clf = Pipeline([('poly', PolynomialFeatures(degree=d)),  
                    ('linear', LinearRegression(fit_intercept=False))])  
    clf.fit(x[:, np.newaxis], y)  
    y_test = clf.predict(x[:, np.newaxis])  
  
    print(clf.named_steps['linear'].coef_)  
    print('rmse=%.2f, R2=%.2f, R22=%.2f, clf.score=%.2f' %  
      (rmse(y_test, y),  
       R2(y_test, y),  
       R22(y_test, y),  
       clf.score(x[:, np.newaxis], y)))      
      
    plt.plot(x, y_test, linewidth=2)  
      
plt.grid()  
plt.legend(['1','2','100'], loc='upper left')  
plt.show()   
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 新人发帖 线性回归 误差分析 scikit-learn return import

已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
liujianfang + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

沙发
z520391 发表于 2016-10-16 10:29:04
新人回复  好厉害的分析。 抱大腿

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-5 13:15