03_有监督学习--简单线性回归模型(调用 sklearn 库代码实现)

有监督学习--简单线性回归模型(调用 sklearn 库代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.导入机器学习库 sklearn4.测试:运行算法,从训练好的模型中提取出系数和截距5.画出拟合曲线6.附录-测试数据


有监督学习--简单线性回归模型(调用 sklearn 库代码实现)

0.引入依赖

import numpy as npimport matplotlib.pyplot as plt

1.导入数据(data.csv)

points = np.genfromtxt(‘data.csv‘, delimiter=‘,‘)

# points# 提取 points 中的两对数据,分别作为 x, y# points[0][0]  等价于# points[0,0]  # 第一行第一列数据# points[0,0:1] # array([32.50234527])# points[0,0:2] # 第一行数据 array([32.50234527, 31.70700585])# points[0,0:] # 第一行数据 array([32.50234527, 31.70700585])x = points[:,0] # 第一列数据y = points[:,1] # 第二列数据

# 用 scatter 画出散点图plt.scatter(x, y)plt.show()

作图如下:

2.定义损失函数

# 损失函数是模型系数的函数,还需要传入数据的 x,ydef compute_cost(w, b, points):    total_cost = 0    M = len(points)    # 逐点计算【实际数据 yi 与 模型数据 f(xi) 的差值】的平方,然后求平均    for i in range(M):        x = points[i, 0]        y = points[i, 1]        total_cost += (y - w * x - b) ** 2

    return total_cost / M

3.导入机器学习库 sklearn

from sklearn.linear_model import LinearRegressionlr = LinearRegression()

x_new = x.reshape(-1, 1)y_new = y.reshape(-1, 1)

lr.fit(x_new, y_new)

输出结果如下:

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

4.测试:运行算法,从训练好的模型中提取出系数和截距

# 从训练好的模型中提取出系数和截距w = lr.coef_[0][0]b = lr.intercept_[0]

print(‘w is:‘, w)print(‘b is:‘, b)

cost = compute_cost(w, b, points)print(‘cost is:‘, cost)

输出结果如下:

w is: 1.3224310227553597b is: 7.991020982270399cost is: 110.25738346621318

5.画出拟合曲线

# 先用 scatter 画出2维散点图plt.scatter(x, y)

# 针对每一个x,计算出预测的值pred_y = w * x + b# 再用 plot 画出2维直线图plt.plot(x, pred_y, c=‘r‘)plt.show()

作图如下:

6.附录-测试数据

测试数据 data.csv 如下:

32.502345269453031,31.7070058465699253.426804033275019,68.7775959816389161.530358025636438,62.56238229794580347.475639634786098,71.54663223356777759.813207869512318,87.23092513368739355.142188413943821,78.21151827079923252.211796692214001,79.6419730498087439.299566694317065,59.17148932186950848.10504169176825,75.33124229706305652.550014442733818,71.30087988685035345.419730144973755,55.16567714595912354.351634881228918,82.47884675749791944.164049496773352,62.00892324572582558.16847071685779,75.39287042599495756.727208057096611,81.4361921588786448.955888566093719,60.72360244067396544.687196231480904,82.89250373145371560.297326851333466,97.37989686216607845.618643772955828,48.84715331735507238.816817537445637,56.87721318626850666.189816606752601,83.87856466460276365.41605174513407,118.5912173025224947.48120860786787,57.25181946226896941.57564261748702,51.39174407983230751.84518690563943,75.38065166531235759.370822011089523,74.76556403215137457.31000343834809,95.45505292257473763.615561251453308,95.22936601755530746.737619407976972,79.05240616956558650.556760148547767,83.43207142132371252.223996085553047,63.35879031749787835.567830047746632,41.41288530370056342.436476944055642,76.61734128007404458.16454011019286,96.76956642610819957.504447615341789,74.08413011660252345.440530725319981,66.58814441422859461.89622268029126,77.76848241779302433.093831736163963,50.71958891231208436.436009511386871,62.12457081807178137.675654860850742,60.81024664990221144.555608383275356,52.68298336638778143.318282631865721,58.56982471769286750.073145632289034,82.90598148507051243.870612645218372,61.42470980433912362.997480747553091,115.2441528007952932.669043763467187,45.57058882337608540.166899008703702,54.08405479622361253.575077531673656,87.99445275811041333.864214971778239,52.72549437590042564.707138666121296,93.57611869265824138.119824026822805,80.16627544737096444.502538064645101,65.10171157056032640.599538384552318,65.56230126040037541.720676356341293,65.28088692082282351.088634678336796,73.43464154632430155.078095904923202,71.1397278586189441.377726534895203,79.10282968354985762.494697427269791,86.52053844034715349.203887540826003,84.74269780782621841.102685187349664,59.35885024862493341.182016105169822,61.68403752483362750.186389494880601,69.84760415824918352.378446219236217,86.09829120577410350.135485486286122,59.10883926769964333.644706006191782,69.8996816436276339.557901222906828,44.86249071116439856.130388816875467,85.49806777884022357.362052133238237,95.53668684646721960.269214393997906,70.25193441977158735.678093889410732,52.72173496477498831.588116998132829,50.39267013507989653.66093226167304,63.64239877565775346.682228649471917,72.24725106866236543.107820219102464,57.81251297618140270.34607561504933,104.2571015854382244.492855880854073,86.64202031882200657.50453330326841,91.48677800011013536.930076609191808,55.23166088621283655.805733357942742,79.55043667850760938.954769073377065,44.84712424246760156.901214702247074,80.20752313968276356.868900661384046,83.1427497920434634.33312470421609,55.72348926054391459.04974121466681,77.63418251167786457.788223993230673,99.05141484174826954.282328705967409,79.12064627468002751.088719898979143,69.58889785111847550.282836348230731,69.51050331149438944.211741752090113,73.68756431831728538.005488008060688,61.36690453724013132.940479942618296,67.17065576899511853.691639571070056,85.66820314500154268.76573426962166,114.8538712339139446.230966498310252,90.12357206996742368.319360818255362,97.91982103524284850.030174340312143,81.53699078301502849.239765342753763,72.11183246961566350.039575939875988,85.23200734232567348.149858891028863,66.22495788805463225.128484647772304,53.454394214850524

原文地址:https://www.cnblogs.com/chenmingjun/p/10884544.html

时间: 2024-11-06 23:28:09

03_有监督学习--简单线性回归模型(调用 sklearn 库代码实现)的相关文章

02_有监督学习--简单线性回归模型(梯度下降法代码实现)

有监督学习--简单线性回归模型(梯度下降法代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.定义模型的超参数4.定义核心梯度下降模型函数5.测试:运行梯度下降算法,计算最优的 w 和 b6.画出拟合曲线7.附录-测试数据 有监督学习--简单线性回归模型(梯度下降法代码实现) 0.引入依赖 import numpy as npimport matplotlib.pyplot as plt 1.导入数据(data.csv) points = np.genfromtxt('da

01_有监督学习--简单线性回归模型(最小二乘法代码实现)

有监督学习--简单线性回归模型(最小二乘法代码实现)0.引入依赖1.导入数据(data.csv)2.定义损失函数3.定义模型拟合函数4.测试:运行最小二乘算法,计算 w 和 b5.画出拟合曲线6.附录-测试数据 有监督学习--简单线性回归模型(最小二乘法代码实现) 0.引入依赖 import numpy as npimport matplotlib.pyplot as plt 1.导入数据(data.csv) points = np.genfromtxt('data.csv', delimite

一个简单的连续调用脚本部署代码的案例

先简单描述一下环境,Jenkins部署在私有云,从git拉取代码并编译后会调用脚本将jar包部署到阿里云的应用服务器.阿里云应用服务器无公网IP,通过跳板机登录.就产生了连续调用脚本,穿透跳板机部署到阿里云内网的需求. 服务器信息:**主机名称 IP ** git server 10.150.27.51 jenkins server 10.150.27.52 jump server 1.1.1.1/192.168.2.20 app server1 192.168.2.21 app server1

简单线性回归(sklearn + tensorflow)

概述 最近学习机器学习(和深度学习),入门第一个接触的便是简单线性回归.所谓线性回归,是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.其形式可表示为:y = w1x1 + w2x2 + w3x3 + ... + w_nx_n + b而简单线性回归,是其最简单的形式:y = wx + b,即我们所熟知的一次函数,理解为给定权重w和偏置(或称为截距)b,结果y随变量x的变化而变化. 简单线性回归 机器学习中的简单线性回归,个人理解为给定一系列的x值和对应的y

机器学习——简单线性回归(原理推导+算法描述+代码实现)

实验环境:Python 3.6 编辑器:Jupyter Notebook 6.0.1 实验要求:可以调用numpy.pandas基础拓展程序包,不可以调用sklearn机器学 ——————————————————我是分割线喵———————————————————— ————————————(如果想要代码可以直接下拉到最后)———————————— 线性模型的一般形式:   向量形式: 线性模型的优点: 1.形式简单.易于建模 2.可解释性 3.是非线性模型的基础,可以在线性模型的基础上引入层级结

简单线性回归

协方差:两个变量总体误差的期望. 简单的说就是度量Y和X之间关系的方向和强度. X :预测变量Y :响应变量 Y和X的协方差:[来度量各个维度偏离其均值的程度] 备注:[之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的协方差,即统计上所谓的"无偏估计".而方差则仅仅是标准差的平方] 如果结果为正值,则说明两者是正相关的(从协方差可以引出"相关系数"的定义), 如果结果为负值就说明负相关的 如果为0,也是就是统计上说的"相互独立

线性模型(3)——多重线性回归模型

前面介绍了简单线性回归模型,接下来讲多重线性回归模型. 简单线性回归是针对一个因变量和一个自变量之间的线性回归关系,而多重线性回归是指一个因变量和多个自变量之间的线性回归关系.相对于简单线性回归,多重线性回归更具有实际意义,因为在实际生活中,多因素相互作用非常普遍,同时对因变量造成影响的往往不止一个自变量. 多重线性回归主要解决的问题是1.估计自变量与因变量之间的线性关系(估计回归方程)2.确定哪些自变量对因变量有影响(影响因素分析)3.确定哪个自变量对因变量最影响最大,哪个最小(自变量重要性分

机器学习六--回归--简单线性回归Simple Linear Regression

一.回归和分类 回归(regression)y变量为连续数值型(continuous numerical variable),如房价,降雨量. 分类(classification)y变量为类别型categorical variable.如颜色类别,电脑品牌等. 二.统计量:描述数据特征 2.1集中趋势衡量:均值(mean),中位数,众数. 2.2离散程度衡量:方差       标准差S 三.简单线性回归介绍 1.简单线性回归包含一个自变量(x)和一个因变量(y) 2.以上两个变量的关系用一条直线

ML_简单线性回归

1. 前提介绍: 为什么需要统计量? 统计量:描述数据特征 1.1 集中趋势衡量 1.1.1 均值(平均数.平均值)(mean) {6 2 9 1 2} (6+2+9+1+2)/5=4 1.1.2 中位数(medain):将数据中的各个数值按照大小顺序排列,居于中间位置的变量 1.1.3 众数(mode):数据中出现次数最多的数 1.2 1.2.1 离散程度衡量 1.2.1.1 方差(variance) 1.2.1.2 标准差(standard  deviation) 1. 介绍:回归(regr