python线性回归_Python - 线性回归(Linear Regression) 的 Python 实现

背景

学习 Linear Regression in Python – Real Python,前面几篇文章分别讲了“regression怎么理解“,”线性回归怎么理解“,现在该是实现的时候了。

线性回归的 Python 实现:基本思路

导入 Python 包: 有哪些包推荐呢?

Numpy:数据源

statsmodels: 比 scikit-learn 功能更强大

准备数据

建模拟合

验证模型的拟合度

预测:用模型来预测新的数据

实现细节

以最简单的线性回归为例,代码参考的是原文。

重点是掌握基本思路,以及关键的几个函数。影响拟合度的因素很多,数据源首当其冲,模型的选择也是关键,这些在实际应用中具体讨论,这里就简单的对应前面的基本思路将 sample 代码及运行结果贴一下,稍加解释。

安装并导入包

根据自己的需要导入

pip install scikit-learn

pip install numpy

pip install statsmodels

from sklearn.preprocessing import PolynomialFeatures

import numpy as np

from sklearn.linear_model import LinearRegression

import statsmodels.api as sm

准备数据

""" prepare data

x: regressor

y: predictor

reshape: make it two dimentional - one column and many rows

y can also be 2 dimensional

"""

x = np.array([5, 15, 25, 35, 45, 55]).reshape((-1, 1))

"""

[[ 5]

[15]

[25]

[35]

[45]

[55]]

"""

y = np.array([5, 20, 14, 32, 22, 38])

print(x, y)

# [ 5 20 14 32 22 38]

建模

'''create a model and fit it'''

model = LinearRegression()

model = model.fit(x, y)

print(model)

# LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)

验证模型的拟合度

'''get result

y = b0 + b1x

'''

r_sq = model.score(x, y)

print('coefficient of determination(𝑅²) :', r_sq)

# coefficient of determination(𝑅²) : 0.715875613747954

print('intercept:', model.intercept_)

# (标量) 系数b0 intercept: 5.633333333333329 -------this will be an array when y is also 2-dimensional

print('slope:', model.coef_)

# (数组)斜率b1 slope: [0.54] ---------this will be 2-d array when y is also 2-dimensional

预测

'''predict response

given x, get y from the model y = b0+b1x

'''

y_pred = model.predict(x)

print('predicted response:', y_pred, sep='\n')

#predicted response:

#[8.33333333 13.73333333 19.13333333 24.53333333 29.93333333 35.33333333]

'''forecast'''

z = np.arange(5).reshape((-1, 1))

y = model.predict(z)

print(y)

#[5.63333333 6.17333333 6.71333333 7.25333333 7.79333333]

问题

Reference

Changelog

2020-01-14 init

本文由博客一文多发平台 OpenWrite 发布!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于使用 Python 实现线性回归算法,我可以给你一些基本的思路和代码实现。 首先,线性回归是一种用于建立两个变量之间线性关系的统计学方法。在机器学习中,我们通常使用线性回归来进行预测。下面是一个简单的例子。 假设我们有一个数据集,其中包含了房屋的面积和价格。我们想要通过这个数据集来预测房屋的价格。首先,我们需要将数据集导入到 Python 程序中,可以使用 Pandas 库来读取 CSV 文件。 ``` import pandas as pd data = pd.read_csv('data.csv') ``` 接着,我们需要将数据集分成两个部分:训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。 ``` from sklearn.model_selection import train_test_split train_data, test_data = train_test_split(data, test_size=0.2) ``` 然后,我们需要定义一个模型,用于预测房屋的价格。在这里,我们使用 scikit-learn 库提供的线性回归模型。 ``` from sklearn.linear_model import LinearRegression model = LinearRegression() ``` 接着,我们需要将训练集的特征和标签分开,并用它们来训练模型。 ``` X_train = train_data[['area']] y_train = train_data[['price']] model.fit(X_train, y_train) ``` 最后,我们可以使用测试集来评估模型的性能。 ``` X_test = test_data[['area']] y_test = test_data[['price']] score = model.score(X_test, y_test) ``` 这里的 score 表示模型的拟合程度,越接近 1 表示模型的性能越好。 以上就是使用 Python 实现线性回归算法的基本思路和代码实现。当然,实际应用中还有很多细节需要注意,例如特征工程、数据清洗等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值