回归分析
回归分析(Regression Analysis)是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法 ,是一种预测性的建模技术。
线性回归:
简单而言,就是将输入项分别乘以一些常量,再将结果加起来得到输出。线性回归包括一元线性回归和多元线性回归。
一元线性回归
线型回归分析中,如果仅有一个自变量与一个因变量,且其关系大致上可用一条直线表示,则称之为简单回归分析(一元线性回归)。
如果发现因变量Y和自变量X之间存在高度的正相关,可以确定一条直线的方程,使得所有的数据点尽可能接近这条拟合的直线。简单回归分析的模型可以用以下方程表示:Y=a+bx。其中:Y为因变量,a为截距,b为相关系数,x为自变量。
用python实现一元线性回归:
一个简单的线性回归例子:预测房价,通过房子面积预测房子价值
假设收集到数据如下表:square_feet:平方英尺、price:价格(元/平方英尺)
square_feet | price | |
1 | 150 | 6450 |
2 | 200 | 7450 |
3 | 250 | 8450 |
4 | 300 | 9450 |
5 | 350 | 11450 |
6 | 400 | 15450 |
7 | 600 | 18450 |
(1)在一元线性回归中,必须在数据中找出一种线性关系y(X)=a+bX。
其中y(X)是关于特定平方英尺的价格值(需要预测的值),a是一个常数,b是回归系数
(2)将文件保存为CSV文件,命名为input_data.csv(可以用Excel来做,要加上列名,要和代码.py文件在一个目录下)
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets, linear_model
#读取数据
def get_date(file_name):
data = pd.read_csv(file_name)
X_parameter = []
Y_parameter = []
#遍历数据
for single_square_feet,single_price_feet in zip(data['square_feet'],data['price']):
X_parameter.append([float(single_square_feet)])
Y_parameter.append([float(single_price_feet)])
return X_parameter,Y_parameter
X,Y = get_date('input_data.csv')
print(X)
print(Y)
#输出如下:
[[150.0], [200.0], [250.0], [300.0], [350.0], [400.0], [600.0]]
[[6450.0], [7450.0], [8450.0], [9450.0], [11450.0], [15450.0], [18450.0]]
(3)把X_parameter,Y_parameter拟合为线性回归模型。需要写一个函数输入X_parameter,Y_parameter和需要进行预测的房子面积值(平方英尺值:square_feet),返回a(常数),b(回归系数)和预测的价格。这里使用scikit-learn机器学习算法。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets, linear_model
#读取数据
def get_date(file_name):
data = pd.read_csv(file_name)
X_parameter = []
Y_param