楼主: 陈亚男1993
1058 5

[问答] python做回归 [推广有奖]

  • 0关注
  • 0粉丝

大专生

21%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
1.0031
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
70 点
帖子
2
精华
0
在线时间
90 小时
注册时间
2017-11-16
最后登录
2021-2-23

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问如何提取其中一个回归系数?
二维码

扫码加我 拉你入群

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

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

关键词:python 回归系数 如何提取

沙发
yunnandlg 在职认证  学生认证  发表于 2019-6-18 16:14:39 |只看作者 |坛友微信交流群
#导入需要的包

import pandas as pd

import numpy as np

import statsmodels.api as sm

import matplotlib.pyplot as plt

%matplotlib inline

#读入数据

data = pd.read_csv("Wage.csv")

data.head()

使用道具

藤椅
yunnandlg 在职认证  学生认证  发表于 2019-6-18 16:15:00 |只看作者 |坛友微信交流群
data_x = data['age']

data_y = data['wage']

#将数据划分为训练集和验证集

from sklearn.model_selection import train_test_split

train_x, valid_x, train_y, valid_y = train_test_split(data_x, data_y, test_size=0.33, random_state = 1)

#对年龄和工资的关系进行可视化

import matplotlib.pyplot as plt

plt.scatter(train_x, train_y, facecolor='None', edgecolor='k', alpha=0.3)plt.show()

使用道具

板凳
yunnandlg 在职认证  学生认证  发表于 2019-6-18 16:15:35 |只看作者 |坛友微信交流群
rom sklearn.linear_model import LinearRegression

#拟合线性回归模型
x = train_x.reshape(-1,1)
model = LinearRegression()
model.fit(x,train_y)
print(model.coef_)
print(model.intercept_)
-> array([0.72190831])

-> 80.65287740759283
#在验证集上进行预测
valid_x = valid_x.reshape(-1,1)
pred = model.predict(valid_x)

#可视化
#我们将使用valid_x的最小值和最大值之间的70个点进行绘制
xp = np.linspace(valid_x.min(),valid_x.max(),70)
xp = xp.reshape(-1,1)
pred_plot = model.predict(xp)
plt.scatter(valid_x, valid_y, facecolor='None', edgecolor='k', alpha=0.3)
plt.plot(xp, pred_plot)
plt.show()

使用道具

报纸
yunnandlg 在职认证  学生认证  发表于 2019-6-18 16:16:13 |只看作者 |坛友微信交流群
现在对预测出的结果算一下RMSE:
from sklearn.metrics import mean_squared_error
from math import sqrt
rms = sqrt(mean_squared_error(valid_y, pred))
print(rms)

使用道具

地板
yunnandlg 在职认证  学生认证  发表于 2019-6-18 16:16:51 |只看作者 |坛友微信交流群
#为回归函数生成权重,设degree=2

weights = np.polyfit(train_x, train_y, 2)

print(weights)
-> array([ -0.05194765,   5.22868974, -10.03406116])
#根据给定的权重生成模型
model = np.poly1d(weights)
#在验证集上进行预测
pred = model(valid_x)
#我们只画出其中的70个点
xp = np.linspace(valid_x.min(),valid_x.max(),70)
pred_plot = model(xp)
plt.scatter(valid_x, valid_y, facecolor='None', edgecolor='k', alpha=0.3)
plt.plot(xp, pred_plot)
plt.show()

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 08:44