首页 > 编程知识 正文

python回归方程代码,用python做多元线性回归

时间:2023-05-04 16:17:37 阅读:124749 作者:1179

#概念篇:

#以下是我自己结合教材理解的,如果理解有问题,希望看到的人能亲切地告诉我。 感激不尽~

#1.什么样的数据建模? 从原始数据中找出其规律,并归纳为模型

#2.什么是模型概念? 通过有规律总结的模型,预测自变量的结果。

#3.什么是回归分析? 这是用于说明自变量和因变量之间关系的方法。

#4.什么是线性回归? 回归分析的一种,评价自变量和因子是线性关系的方法之一。

#5.什么是一元线性回归? 只有一个自变量的线性回归。

#6.什么是多元线性回归? 自变量是多个线性回归。

#7.什么是拟合? 回归分析的具体实现方式(构建最能连接现实情况的算法公式) ) ) ) ) )。

#8.什么是模型参数? 是能够说明自变量和要因变量关系的参数。

#代码显示篇:

#一元线性回归程序:

#1.基本工具的部署。

import numpy as np

调科学计算软件包中线性模块中的线性回归函数

froms klearn.linear _ modelimportlinearregression

#条选择用于通过科学计算包中的方法划分模块中测试集和训练集的函数

froms klearn.model _ selectionimporttrain _ test _ split

#2.建设数据

如果预先设定随机数种子,就可以固定值。

#PS:0可理解为该随机数组的编号,如果在下面填写相同的编号,则获得的数值是相同随机数组的数值。

NP.Random.seed(0) )。

-10到10之间的100个等差数列(属于连续性阵列) ) ) ) ) ) ) ) ) ) ) )。

x=NP.linspace (-10,10,100 ) )。

#设定线性回归方程

y=0.85*x - 0.72

建立#数为100、平均值为0、标准差为0.5的随机序列。

e=NP.random.normal(loc=0,scale=0.5,size=x.shape ) )。

#变量y加上该变量e

y =e

将#x转换为二维数组。 这是因为在fit法中需要将x设为二维结构。

x=x.reshape (-1,1 ) ) )。

lr=LinearRegression (

#x:划分的特征集、y:划分的标签、test_size:个样本的占有率(整数表示样本的数量)、random_state:随机数种子编号

X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=0)

拟合数据函数:

lr.fit(x_train,y_train ) )。

#拟合后,可以利用lr.coef和lr.intercept ((w ) ) ) )取出切片。

print ('权重',lr.coef_ ) )。

print (切片)、lr.intercept_ ) )。

#从训练集中学习模型的参数(w和b )并确定方程后,即可进行预测。

定义预测函数

y_hat=lr.predict(x_test )。

#将预测的y值与实际的y值进行比较

print (实际值: )、y_test.ravel ) [:10] ) ) ) ) ) ) ) )。

(打印(预测值: )、y_hat[:10] ) ) ) ) ) ) )。

导入矩阵as mpl

import matplotlib.pyplot as plt

#画布初始设定:

mpl.rcparams [ ' font.family ' ]=' simhei '

mpl.rcparams [ ' axes.unicode _ MINUS ' ]=false

#用散点形式表达训练集和测试集

PLT.Scatter(x_train,y_train,s=15,label='训练集') ) ) ) ) ) ) )。

PLT.Scatter(x_test,y_test,s=15,label='测试集') ) ) ) )。

#用直线画预测结果

PLT.plot(x,lr.predict(x ) x ),' r-' ) )

#显示说明

plt.legend (

#用图标表示真值和预测值

PLT.figure (fig size=(15,5 ) )

PLT.plot(y_test,label='真值',color='r ',marker='o ' )

PLT.plot(y_hat,label='预测值',color='g ',marker='o ' )

plt.xlabel (“测试集数据序列号”)

plt.ylabel (数据值) )。

plt.legend (

#线性回归模型评价

froms klearn.metricsimportmean _ squared _ error,mean_absolute_error,r2_score

print (均方差(MSE ) : (,mean_squared_error ) y_test,y_hat ) )

print (根均方误差(RMSE ) : (,mean_absolute_error ) y_test,y_hat ) )

(打印(平均绝对值误差(MAE ) : )、R2 _ score (y _ test,y_hat ) ) ) ) ) 652 )

froms klearn.linear _ modelimportlinearregression

froms klearn.metricsimportmean _ absolute _ error

froms klearn.model _ selectionimporttrain _ test _ split

#make_regression用于生成回归模型的示例数据

froms klearn.datasetsimportmake _ regression

# n_sampless:生成样本个体的数量

#n_features:特征数(x的数量) () ) ) ) ) ) ) ) ) )。

#bias:偏移值。

#random_state :随机种子

#噪音:

#生成线性回归的样本数据

# n_sampless:生成样本个体的数量

#n_features:特征数(x的数量) () ) ) ) ) ) ) ) ) )。

#coef:返回权重. ture,不返回false吗

#bias:偏移值。

#random_state :随机种子

x,y,coef=make _ regression (n _ samples=1000,n_features=2,coef=True,bias=5.5,random_state=0)

X_train,X_test,y_train,y_test=train_test_split(x,y,test_size=0.25,random_state=0)

print (实际权重: )、coef ) )。

lr=LinearRegression (

lr.fit(x_train,y_train ) )。

打印(模型权重:lr.coef_ ) ) )。

print (切片: )、lr.intercept_ )。

y_hat=lr.predict(x_test )。

(打印(均方误差: )、mean_absolute_error ) y_test,y_hat ) ) ) ) 65 )

打印(训练集r(2: ),lr.score (y_train,y _ train ) ) ) ) ) ) )。

打印(训练集r(2: ),lr.score (y_test,y _ test ) ) ) ) ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。