多元线性回归实现代码

#兼容 pythone2,3
from __future__ import print_function

**#导入相关python库**
import os
import numpy as np
import pandas as pd

#使用matplotlib库画图
import matplotlib
import seaborn
import matplotlib.pyplot as plot
from sklearn import datasets

#设定随机数种子
np.random.seed(36)

**#读取数据**
housing = pd.read_csv(r'D:\si-tech\AI_2\CPU\my_solution\LR\house_predict\kc_train.csv',header=None)
target=housing.xs(1,axis=1)  #提取销售价格列
#训练集
housing=housing.drop(1,axis=1) #要预测的就是销售价格,所以在训练过程中是不需要销售价格的,把第二列删除掉
#测试数据
t=pd.read_csv(r'D:\si-tech\AI_2\CPU\my_solution\LR\house_predict\kc_test.csv',header=None)  

**#数据预处理**

#housing.info()    #查看是否有缺失值

housing.describe(include='all').T #查看数据特征

**#特征缩放**

from sklearn.preprocessing import MinMaxScaler

minmax_scaler=MinMaxScaler()

minmax_scaler.fit(housing)   #进行内部拟合,内部参数会发生变化

scaler_housing=minmax_scaler.transform(housing)

scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)

mm=MinMaxScaler()

mm.fit(t)

scaler_t=mm.transform(t)

scaler_t=pd.DataFrame(scaler_t,columns=t.columns)

**#选择基于梯度下降的线性回归模型**

from sklearn.linear_model import LinearRegression

LR_reg=LinearRegression()

#进行拟合

LR_reg.fit(scaler_housing,target)


**#使用均方误差用于评价模型好坏**

from sklearn.metrics import mean_squared_error

preds=LR_reg.predict(scaler_housing)   #输入数据进行预测得到结果

mse=mean_squared_error(preds,target)   #使用均方误差来评价模型好坏,可以输出mse进行查看评价值

**绘图进行比较**

plot.figure(figsize=(10,7))       #画布大小

num=100

x=np.arange(1,num+1)              #取100个点进行比较

plot.plot(x,target[:num],label='target')      #目标取值

plot.plot(x,preds[:num],label='preds')        #预测取值

plot.legend(loc='upper right')  #线条显示位置

plot.show()

**#输出测试数据**

result=LR_reg.predict(scaler_t)

df_result=pd.DataFrame(result)

#df_result.to_csv("result.csv")
num=100
x=np.arange(1,num+1)
plot.figure(figsize=(10,7)) 

plot.plot(x,df_result[:num])

参考:https://github.com/mantchs/machine_learning_model/tree/master/Linear%20Regression
数据集可在这里下载。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值