python sklearn 线性回归 报错_Sklearn线性回归

Sklearn线性回归

原理

线性回归是最为简单而经典的回归模型,用了最小二乘法的思想,用一个n-1维的超平面拟合n维数据

数学形式

\[y(w,x)=w_0+w_1x_1+w_2x_2+…+w_nx_n

\]

其中称\(w=(w_1,w_2,w_3,...w_n)\)为系数矩阵(coef_),称\(w_0\)为截距(intercept_)

基本步骤

准备数据集

使用线性回归

训练模型

使用训练后的模型预测

模型评估

下面以二维数据举例

例子

#coding=utf-8

import pandas as pd

from sklearn import linear_model

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

def main():

#数据预处理

ad = pd.read_csv('./Advertising.csv',index_col=0)

#为了方便,只取一列作为研究

X = ad[['TV']] #注意此时X的数据类型是dataFrame,如果只有一个括号,类型为Series会报错

Y = ad[['Sales']]

#这里采用交叉验证法划分数据集

X_train, X_test, Y_train, Y_test =train_test_split(X, Y)

#创建回归模型对象

lr = linear_model.LinearRegression()

lr.fit(X_train.values.reshape(-1, 1), Y_train.values.reshape(-1, 1))

#显示训练结果

print lr.intercept_,lr.coef_

print lr.score(X_test, Y_test) #用R^2评估

plt.plot(X,lr.predict(X))

plt.scatter(X,Y)

plt.show()

if __name__ == '__main__':

main()

'''

输出结果

[ 7.21071682] [[ 0.0460963]]

0.713025893451

'''

关于模型评估

这里采用的是\(R^2\)拟合优度检验,是一个属于0~1的值,\(R^2\)越大表示拟合程度越好

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值