# 一、最小二乘法拟合直线

## 1、拟合直线

### 生成样本点

import numpy as np
import matplotlib.pyplot as plt

X = np.arange(0, 5, 0.1)
Z = [3 + 5 * x for x in X]
Y = [np.random.normal(z, 0.5) for z in Z]

plt.plot(X, Y, 'ro')
plt.show()


### 拟合直线

numpy 的 linalg 模块中有一个 solve 函数，它可以根据方程组的系数矩阵和方程右端构成的向量来求解未知量。

def linear_regression(x, y):
N = len(x)
sumx = sum(x)
sumy = sum(y)
sumx2 = sum(x**2)
sumxy = sum(x*y)

A = np.mat([[N, sumx], [sumx, sumx2]])
b = np.array([sumy, sumxy])

return np.linalg.solve(A, b)

a0, a1 = linear_regression(X, Y)



_X = [0, 5]
_Y = [a0 + a1 * x for x in _X]

plt.plot(X, Y, 'ro', _X, _Y, 'b', linewidth=2)
plt.title("y = {} + {}x".format(a0, a1))
plt.show()


## 2、最小二乘法拟合曲线

### 生成样本点

import numpy as np
import matplotlib.pyplot as plt

X = np.arange(0, 5, 0.1)
Z = [2 + 3 * x + 4 * x ** 2 for x in X]
Y = np.array([np.random.normal(z,3) for z in Z])

plt.plot(X, Y, 'ro')
plt.show()


### 拟合曲线


N = len(X)
A = []
b = []

for i in range(m+1):
b.append(sum(X ** i * Y))

a = []
for j in range(m+1):
a.append(sum(X ** (i + j)))
A.append(a)
return np.linalg.solve(A, b)

a0, a1, a2 = quadratic_fitting(X, Y, 2)


绘制曲线

_X = np.arange(0, 5, 0.1)
_Y = np.array([a0 + a1*x + a2*x**2 for x in _X])

plt.plot(X, Y, 'ro', _X, _Y, 'b', linewidth=2)
plt.title("y = {} + {}x + {}$x^2$ ".format(a0, a1, a2))
plt.show()


## 3、完成代码

def Lleast_squares_fitting():
pass

def cubic_polynomial():
pass

import numpy as np
import matplotlib.pyplot as plt

def linear_fitting(x, y):
N = len(x)
sumx = sum(x)
sumy = sum(y)
sumx2 = sum(x ** 2)
sumxy = sum(x * y)

A = np.mat([[N, sumx], [sumx, sumx2]])
b = np.array([sumy, sumxy])

return np.linalg.solve(A, b)

def line_polynomial():

X = np.arange(0, 5, 0.1)
Z = [3 + 5 * x for x in X]
Y = [np.random.normal(z, 0.5) for z in Z]

a0, a1 = linear_fitting(X, Y)
_X = [0, 5]
_Y = [a0 + a1 * x for x in _X]

plt.plot(X, Y, 'ro', _X, _Y, 'b', linewidth=2)
plt.title("y = {} + {}x".format(a0, a1))

N = len(X)
A = []
b = []

for i in range(m+1):
b.append(sum(X ** i * Y))

a = []
for j in range(m+1):
a.append(sum(X ** (i + j)))
A.append(a)
return np.linalg.solve(A, b)

X = np.arange(0, 5, 0.1)
Z = [2 + 3 * x + 4 * x ** 2 for x in X]
Y = np.array([np.random.normal(z, 3) for z in Z])

a0, a1, a2 = quadratic_fitting(X, Y, 2)

_X = np.arange(0, 5, 0.1)
_Y = np.array([a0 + a1 * x + a2 * x ** 2 for x in _X])
plt.plot(X, Y, 'ro', _X, _Y, 'b', linewidth=2)
plt.title("y = {} + {}x + {}$x^2$ ".format(a0, a1, a2))

if __name__ == '__main__':

plt.show()


Original: https://blog.csdn.net/weixin_45414444/article/details/120311747
Author: cyb_cqu
Title: python中matplotlib实现最小二乘法拟合的过程详解

## Title: Python：opencv画点、圆、线、多边形、矩形

cv2.circle(img, 点坐标, 点大小, 颜色, 边框线条大小)

cv2.circle(img, 圆心坐标, 半径, 颜色, 边框线条大小)

cv2.line(img, (起始坐标), (结束坐标), color=(255, 0, 0), thickness=边框线条大小)

cv2.line(img, (200, 200), (200, 300), color=(255, 0, 255), thickness=2)
cv2.line(img, (200, 300), (300, 300), color=(255, 0, 255), thickness=2)
cv2.line(img, (300, 300), (200, 200), color=(255, 0, 255), thickness=2)

cv2.rectangle(img, (左上角), (右下角), color=(0, 0, 255), thickness=2)


import cv2.cv2 as cv2

point_size = 1
point_color = (0, 0, 255)
thickness = 2

point = (100, 50)
cv2.circle(img, point, point_size, point_color, thickness)

circle_point = (100, 100)
cv2.circle(img, circle_point, 20, point_color, thickness)

cv2.line(img, (0, 0), (100, 100), color=(255, 0, 0), thickness=2)

cv2.line(img, (200, 200), (200, 300), color=(255, 0, 255), thickness=2)
cv2.line(img, (200, 300), (300, 300), color=(255, 0, 255), thickness=2)
cv2.line(img, (300, 300), (200, 200), color=(255, 0, 255), thickness=2)

cv2.rectangle(img, (715, 415), (830, 600), color=(0, 0, 255), thickness=2)

cv2.imshow("img", img)
cv2.imwrite("label_data.png", img)
cv2.waitKey(4000)
cv2.destroyAllWindows()


Original: https://blog.csdn.net/hzblucky1314/article/details/123896460
Author: 玩转测试开发
Title: Python：opencv画点、圆、线、多边形、矩形

(0)

### 大家都在看

• #### Numpy&Pandas的区别和联系

目录 一、Numpy 二、Pandas 一、Numpy numpy是以矩阵为基础的数学计算模块，提供高性能的矩阵运算，数组结构为 ndarray。 首先需要明确 数组与列表的区别：…

Python 2023年1月10日
022

一.表单 1.基础 1.1 下载 格式： pip install flask-wtf 1.2 安全配置 格式： app.config[‘SECRET_KEY’] = ‘passwd…

Python 2023年1月5日
034
• #### python DataFrame常用描述性统计分析方法，熬夜整理华为最新Python笔试题

print(df) 关于DataFrame的append()方法 DataFrame增添一行可以使用append()方法。设置参数，ignore_index=True可以忽略掉索引…

Python 2023年1月8日
032
• #### Bert+CNN文本分类（含代码实现）

目录 一、什么是CNN？ CNN的特点 二、 CNN模型构造过程 2.1 Convolution（卷积） 2.2 Max Pooling（池化） 2.3 Flatten 三、Tex…

Python 2022年12月25日
046
• #### python-xlrd

参考：https://www.cnblogs.com/zhang-jun-jie/p/9273721.html 待补充 Original: https://www.cnblogs….

Python 2022年8月18日
099
• #### 由pip默认安装位置引起的bug——conda中创建一个空环境后，使用pip list发现空环境里面有很多自己之前装的包？

又是写bug的一天~ 文章目录 环境 问题 解决方案 其他 环境 windows10 + python3.7 + Anaconda3 问题 在conda中创建一个空环境后，使用pi…

Python 2023年1月16日
045

2022年8月28日
0227
• #### pytest+allure+requests的接口框架DEMO

1 完成 目标拆解项 目标拆解 1内容项完成情况2选型项目进行Demo演示–乐学项目1-153request的脚本开发以前历史存在的脚本4pytest的基础框架运用 1…

Python 2023年1月19日
024
• #### python中等高线填充颜色_Matplotlib等高线图颜色b

我正在将我的数据绘制到等高线地图中。计算是在转换后的值上进行的，因此我需要将其恢复为原始值。在代码的第四行中，有重新翻译的过程。 [En] I am drawing my data…

Python 2023年1月15日
038
• #### Python中偶尔遇到的细节疑问（二）：UnicodeDecodeError，警告与忽略警告warnings

使用base64解码时，出现：UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xed …

Python 2022年8月14日
0152
• #### 【Python刷题篇】Python从0到入门2|列表复习、循环语句、条件语句

Python从0到入门2目录 前言 Q1：列表-投递简历 Q2：排序与反转 Q3：循环-字符列表的长度 Q4：循环-程序员节 Q5：条件-找到HR Q6：条件-判断列表是否为空 总…

Python 2022年12月25日
037
• #### 学会Python开发的第一步：写一个桌面小程序

前言 嗨喽，大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 当使用桌面应用程序的时候，有没有那么一瞬间， 想学习一下桌面应用程序开发？ 建议此次课程大家稍作了解不要浪…

Python 2022年12月23日
060
• #### python pandas数据清洗_常用pandas清洗数据命令

pandas清洗数据常用命令 安装jupyter notebook 启动 jupyter 可以在里面编写python代码 1、 加载数据df = pd.DataFrame(pd.r…

Python 2022年12月30日
040
• #### Python笔记之paramiko模块安装和使用示例

一、paramiko模块简介 paramiko是一个用于做远程控制的模块，使用该模块可以对远程服务器进行命令或文件操作，基于linux中的ssh服务 。paramiko是第三方模块…

2022年8月31日
0151
• #### pandas上

pandas上 1 什么是Pandas 2 Series * （1）Series对象的创建与类型 （2）修改类型 （2）取值 （3）索引 （4）索引和值 （5）unique()的功…

Python 2023年1月8日
026
• #### numpy基础入门

相关资料 100 练习 T5： 如何从命令行得到numpy中add函数的说明文档? (★☆☆) import numpy as np np.info(np.add) T8：反转一个…

Python 2023年1月11日
032