首页 > 其他分享 >3.Sklearn-一元线性回归

3.Sklearn-一元线性回归

时间:2023-11-04 15:23:43浏览次数:29  
标签:一元 datasets linear fit plt 参数 线性 model Sklearn

1. 导入包

import numpy as np
import matplotlib.pyplot as plt

from sklearn import linear_model

2. 加载训练数据

# 建立datasets_X和datasets_Y用来存储数据中的房屋尺寸和房屋成交价格。
datasets_X = []
datasets_Y =[]
fr = open('prices.txt','r')
lines = fr.readlines()
for line in lines:
    items = line.strip().split(',')  # 去除数据文件中的逗号
    datasets_X.append(int(items[0]))
    datasets_Y.append(int(items[1]))

length = len(datasets_X)
datasets_X = np.array(datasets_X).reshape([length,1])  #将dataset_X转化为数组,并变为二维,以符合线性回归拟合函数输人参数要求。
datasets_Y = np.array(datasets_Y)

3. 建立回归方程

# 以数据datasets_X的最大值和最小值为范围,建立等差数列,方便后续画图。
minX = min(datasets_X)
maxX = max(datasets_X)

X = np.arange(minX,maxX).reshape([-1,1])
linear = linear_model.LinearRegression()
linear.fit(datasets_X, datasets_Y)

调用sklearn.linear_model.LinearRegression()所需参数:

  • fit_intercept :布尔型参数,表示是否计算该模型截距。可选参数。
  • normalize : 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。

线性回归fit函数用于拟合输人输出数据,调用形式为linear.fit(X,y, sample weight=None) :
X:为训练向量;
y:为相对于X的目标向量
sample_weight:分配给各个样本的权重数组,一般不需要使用,可省略。

可以使用以下属性来查看模型的参数:
coef_ 属性存储线性回归模型的系数(斜率),它是一个数组,每个特征对应一个系数。
intercept_ 属性存储截距。

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)

slope = model.coef_
intercept = model.intercept_

一旦模型被训练,你可以使用 predict(X)方法来进行预测,其中 X 是要进行预测的特征矩阵。该方法返回预测的目标变量值。

y_pred = model.predict(X)

4. 可视化处理

plt.scatter(datasets_X, datasets_Y, color = 'red')
plt.plot(X,linear.predict(X), color = 'blue')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()

标签:一元,datasets,linear,fit,plt,参数,线性,model,Sklearn
From: https://www.cnblogs.com/ratillase/p/17809381.html

相关文章

  • 2.Sklearn库标准数据集及基本功能
    1.sklearn数据集波士顿房价数据集波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋周围的详细信息。其中包括城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿房价数据集能够应用到回归问题上。使用sklearn.dataset......
  • 【数值分析】第6章-解线性方程组的迭代法
    第6章-解线性方程组的迭代法\[A\vec{x}=\vec{b}\Leftrightarrow\vec{x}=B\vec{x}+\vec{f}\]建立迭代\[\vec{x}^{(k+1)}=B\vec{x}^{(k)}+\vec{f}\]B称为迭代矩阵Jacobi迭代的矩阵形式\[\begin{align}A\vec{x}=\vec{b}&\Leftrightarrow(D+L+U)\vec{x}=......
  • 2. 电力负荷预测-一元回归
    1.负荷预测思路电力负荷的时间序列通常可以由三部分组成。\[Y(t)=f(t)+p(t)+X(t)\]\(X(t)\)随机项一般假设为白噪声,即标准正态分布,不改变均值。\(p(t)\)周期项有两种假设方法在数据预处理时进行去周期处理,然后在得到预测结果后,再还原周期。直接带入表示周期项的参数......
  • sklearn-决策树
    目录决策树算法关键特征维度&判别条件决策树算法:选择决策条件纯度的概念信息增益增益率:基尼指数:纯度度量方法1)纯度函数%20%E7%BA%AF%E5%BA%A6%E5%87%BD%E6%95%B0)2)纯度度量函数%20%E7%BA%AF%E5%BA%A6%E5%BA%A6%E9%87%8F%E5%87%BD%E6%95%B0)编辑决策树算法关键了解了“if-else”......
  • 线性代数解决什么问题?
    线性代数是数学的一个分支,研究向量空间和线性映射的性质和结构。它在许多领域中都有广泛的应用,包括物理学、工程学、计算机科学、经济学等。线性代数解决以下几类问题线性方程组求解:线性代数提供了求解线性方程组的方法和技巧。线性方程组是一组关于未知量的线性方程,例如:2x+......
  • 一元二次方程求根公式推导和运用
    一元二次方程:只有一个未知数,且未知数的最高次数为2一元二次方程的一般形式:<svgxmlns="http://www.w3.org/2000/svg"width="2.207ex"height="2.025ex"viewBox="0-883.9975.6894.9"xmlns:xlink="http://www.w3.org/1999/xlink"aria-hidden=&qu......
  • 线性代数 - 已知点求直线方程
    直线的表示方法点斜式:y=kx+t, 其中k为直线斜率,t为直线在y轴上的截距一般式:ax+by+c=0 求直线方程1) 已知直线上的两个点(x1,y1),(x2,y2),求直线ax+by+c=0a) 我们先转换成点斜式:b) 斜率可以根据已知的两点计算出来,所以a=y2-y1,b=x1-x2或a=y1-y2,b=x2-x1c) 因......
  • 线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现
    (搬运外网的代码,非原创;原网址)(其实是专业课作业,但感觉国内博客没有合适的代码实现,所以就搬运到自己博客了)背景-Cholesky分解:若A为n阶实对称正定矩阵,则存在非奇异下三角矩阵L,使得A=LL^T。是特殊的LU分解(下三角上三角分解)。若限定L的对角元素为正,则这种分解......
  • 【数值分析】非线性方程求根
    第7章-非线性方程求根不动点:对于\(f(x)\),若存在\(a\)使得\(f(a)=a\),则称\(x=a\)为\(f(x)\)的不动点。参考链接:§1.2.6不动点7.1.2简单迭代法(Jacobi迭代)\[f(x)=0\iffx=\phi(x)\]利用\(x_{k+1}=\phi(x_k)\)迭代求解不动点,即得方程的根。【例】求\(f(x)=x^3-x-1=0......
  • R语言有限混合模型聚类FMM、广义线性回归模型GLM混合应用分析威士忌市场和研究专利申
    最近我们被客户要求撰写关于有限混合模型聚类FMM的研究报告,包括一些图形和统计输出。摘要有限混合模型是对未观察到的异质性建模或近似一般分布函数的流行方法。它们应用于许多不同的领域,例如天文学、生物学、医学或营销。本文给出了这些模型的概述以及许多应用示例。介绍有限混合......