线性与非线性回归模型

线性回归模型

 

 

重要名词解释

数据符号网站

因变量与自变量

哑变量:在生成算法模型的时候有些变量可能并不是数字无法直接带入公式计算

此时可以构造哑变量>>>C(State)

如何判断两个变量之间是否存在线性关系与非线性关系

1.散点图

2.公式计算

大于等于0.8表示高度相关
绝对值大于0.5小于等于0.8表示中度相关
绝对值大于等于0.3大于等于0.3小于0.5表示弱相关
绝对值小于0.3表示几乎不相关(需要注意这里的不相干指的是没有线性关系 可能两者之间有其他的关系)

eg:

import numpy
import pandas
X = [52,19,7,33,2]
Y = [162,61,22,100,6]
# 1.公式计算均值
XMean = numpy.mean(X)
YMean = numpy.mean(Y)
# 标准差
XSD = numpy.std(X)
YSD = numpy.std(Y)
# z分数
ZX = (X-XMean)/XSD
ZY = (Y-YMean)/YSD
# 相对系数
r = numpy.sum(ZX*ZY)/(len(X))

2.numpy中的corrcoef方法直接计算

t = numpy.corrcoef(X,Y)

3.pandas中的corr方法来计算

data = pandas.DataFrame({'X':X,'Y':Y})
t2 = data.corr()

训练集与测试集

训练集用于模型的训练创建 测试集用于模型的测试检验

一般情况下训练集占总数据的80%、测试集占总数占20%

常见数学符号大全

 

 自定义哑变量

# 生成由State变量衍生的哑变量
dummies = pd.get_dummies(Profit.State)

# 将哑变量与原始数据集水平合并
Profit_New = pd.concat([Profit,dummies], axis = 1)

# 删除State变量和California变量(因为State变量已被分解为哑变量,New York变量需要作为参照组)
Profit_New.drop(labels = ['State','New York'], axis = 1, inplace = True)

# 拆分数据集Profit_New
train, test = model_selection.train_test_split(Profit_New, test_size = 0.2, random_state=1234)

# 建模
model2 = sm.formula.ols('Profit~RD_Spend+Administration+Marketing_Spend+Florida+California', data = train).fit()
print('模型的偏回归系数分别为:\n', model2.params)

 

 

posted @ 2021-10-21 20:25  lovewx35  阅读(374)  评论(0)    收藏  举报