python实现一元线性回归分析实例------R(2)

  1. 预测一下房价:(csv数据文件):

在这里插入图片描述

.2. 一元回归分析是啥
在这里插入图片描述

  1. 上代码

三个库都需要 pip下载:
Python机器学习库sklearn的安装
scikit-learn是Python的一个开源机器学习模块,它建立在NumPy,SciPy和matplotlib(绘图)模块之上能够为用户提供各种机器学习算法接口,可以让用户简单、高效地进行数据挖掘和数据分析。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
查看所有已安装的库:pip list
在这里插入图片描述

panda库
Pandas是Python的一个大数据处理模块。Pandas使用一个二维的数据结构DataFrame来表示表格式的数据,相比较于Numpy,Pandas可以存储混合的数据结构,同时使用NaN来表示缺失的数据,而不用像Numpy一样要手工处理缺失的数据,并且Pandas使用轴标签来表示行和列。
在这里插入图片描述

# -*- coding:utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import array
# 从csv文件中读取数据,分别为:X列表和对应的Y列表
def get_data(file_name):
    # 1. 用pandas读取csv
    data = pd.read_csv(file_name)

    # 2. 构造X列表和Y列表
    X_parameter = []
    Y_parameter = []
    for single_square_feet,single_price_value in zip(data['square_feet'],data['price']):
        X_parameter.append([float(single_square_feet)])
        Y_parameter.append(float(single_price_value))
    print (X_parameter)
    print (Y_parameter)
    return X_parameter,Y_parameter



# 线性回归分析,其中predict_square_feet为要预测的平方英尺数,函数返回对应的房价
def linear_model_main(X_parameter,Y_parameter,predict_square_feet):
    # 1. 构造回归对象
    regr = LinearRegression()
    regr.fit(X_parameter,Y_parameter)

    # 2. 获取预测值
    predict_outcome = regr.predict(predict_square_feet)

    # 3. 构造返回字典
    predictions = {}
    # 3.1 截距值
    predictions['截距值intercept'] = regr.intercept_
    # 3.2 回归系数(斜率值)
    predictions['回归系数(斜率值)coefficient'] = regr.coef_
    # 3.3 预测值
    predictions['预测值predict_value'] = predict_outcome

    return predictions

# 绘出图像
def show_linear_line(X_parameter,Y_parameter):
    # 1. 构造回归对象
    regr = LinearRegression()
    regr.fit(X_parameter,Y_parameter)

    # 2. 绘出已知数据散点图
    plt.scatter(X_parameter,Y_parameter,color = 'blue')

    # 3. 绘出预测直线
    plt.plot(X_parameter,regr.predict(X_parameter),color = 'red',linewidth = 4)

    plt.title('Predict the house price')
    plt.xlabel('square feet')
    plt.ylabel('price')
    plt.show()



def main():
    # 1. 读取数据
    X,Y = get_data('C:/study/huiguidata.csv')
    # print (X,Y)
    # 2. 获取预测值,在这里我们预测700平方英尺大小的房子的房价
    predict_square_feet = [700]
    # print (X)
    # print (Y)
    result = linear_model_main(X, Y, [predict_square_feet])
    for key, value in result.items():
        print ('{0}:{1}'.format(key, value))
    # 3. 绘图
    show_linear_line(X, Y)



if __name__ == '__main__':
    main()


代码运行输出结果:
在这里插入图片描述

以及绘图效果 :
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值