怎么做中英文的网站/我想在百度发布信息

怎么做中英文的网站,我想在百度发布信息,郑州龙华小学网站建设,wordpress b2c 商城目录 一、说明 二、简单线性回归 三、线性回归的评估指标 3.1 线性回归中的假设 四、从头开始的简单线性回归代码 五、多元线性回归 六、多元线性回归代码 七、多项式线性回归 八、多项式线性回归代码 九、应用单变量多项式回归 十、改变多项式的次数 十一、多列多项式回归 一、…

目录

一、说明

二、简单线性回归

三、线性回归的评估指标

3.1 线性回归中的假设

四、从头开始的简单线性回归代码

五、多元线性回归

六、多元线性回归代码

七、多项式线性回归

八、多项式线性回归代码

九、应用单变量多项式回归

十、改变多项式的次数

十一、多列多项式回归


一、说明

        数据科学的基础算法在预测连续结果方面起着关键作用。它通过假设独立变量和因变量之间存在线性关系来预测两个变量之间的关系。它寻求最小化预测值和实际值之间平方差之和的最佳直线。该方法应用于经济学和金融学等各个领域,用于分析和预测数据趋势。它可以扩展到涉及多个独立变量的多元线性回归和逻辑回归,适用于二元分类问题。

        任何 ML 模型都遵循以下工作流程:
数据 → 模型 → 成本函数 (J) → J 的优化

        这里我们将讨论三种类型的线性回归:

  1. 简单线性回归
  2. 多元线性回归
  3. 多项式线性回归

二、简单线性回归

        在简单线性回归中,有一个独立变量 (x)一个因变量 (y)。模型估计最佳拟合线的斜率截距,表示变量之间的关系。斜率表示独立变量每变化一个单位,因变量的变化量,而截距表示独立变量为零时因变量的预测值。

模型
为了计算最佳拟合线,线性回归使用传统的斜率截距形式的直线:Y = W*X + b,
其中 Y = 因变量,X = 自变量,W = 斜率,b = 常数/截距。

        成本函数 (J)
        线性回归算法的目标是获得β ₀ 和β ₁ 的最佳值,以找到最佳拟合线。最佳拟合线是误差最小的线,这意味着预测值和实际值之间的误差应该最小。

        随机误差:在回归中,因变量(Yi)的观测值与预测值(Y_predicted)之间的差异称为残差随机误差

error = Y_predicted - Yi

其中Y_prediced = W*X + b
最佳拟合线是与给定散点图最佳拟合的线。从数学上讲,最佳拟合线是通过最小化残差平方和 (RSS) 获得的。

成本函数有助于计算出Wb的最优值,从而为数据点提供最佳拟合线。
        注意 →成本函数应具有连续性、可微性凸性
        在线性回归中,使用均方误差 (MSE),即 Y_predicted 和 Yi 之间发生的平方误差的平均值。

        梯度下降
        梯度下降是一种优化算法,它优化成本函数以达到最佳最小解。为了找到最佳解决方案,我们需要降低所有数据点的成本函数(MSE)。这是通过迭代更新 W 和 b 的值来实现的,直到我们得到最佳解决方案。
回归模型优化梯度下降算法,通过随机选择系数值降低成本函数来更新线的系数,然后迭代更新这些值以达到最小成本函数。

由于我们的成本函数是凸函数,它应该有一个全局最小值,为了达到这个最小值,我们需要采取一些步骤。现在,如果我们采取小步骤,将需要大量时间才能达到最小值,如果我们采取更大的步骤,我们将更快地到达底部,但我们可能会超调。所以在 ML 中,这些步骤被称为学习率,这决定了算法收敛到最小值的速度。

        从数学上讲,我们可以通过推导方程并使其等于零(斜率/梯度 = 0)来达到最小值。因此,我们必须根据我们的参数(W 和 b)推导方程,以更新 W 和 b 的值。

        梯度下降的推导
我们将通过对 W 和 b 的偏导数来获取成本函数 (J) 的梯度。

这里的偏导数就是梯度,用来更新W和b的值,Alpha就是学习率。

三、线性回归的评估指标

        任何线性回归模型的强度都可以使用各种评估指标来评估。这些评估指标通常可以衡量模型生成观察到的输出的效果。

        1. 判定系数或 R 平方 (R2)
        R 平方是一个数字,它解释了所开发的模型所解释/捕获的变化量。它始终介于 0 和 1 之间。总体而言,R 平方的值越高,模型与数据的拟合效果越好。

        残差平方和 (RSS)定义为图/数据中每个数据点的残差平方和。它是预期和实际观测输出之间差异的度量。

        总平方和 (TSS)定义为数据点与响应变量平均值的误差之和。

R 平方的重要性如下图所示,

        2. 均方根误差 (RMSE) 和残差标准误差 (RSE)
均方根误差是残差方差的平方根。它指定模型与数据的绝对拟合度,即观察到的数据点与预测值的接近程度。从数学上讲,它可以表示为,

        为了使该估计无偏,必须将残差平方和除以自由度,而不是模型中的数据点总数。该术语称为残差标准误差 (RSE)。从数学上讲,它可以表示为:

R 平方是比 RMSE 更好的度量。由于均方根误差的值取决于变量的单位(即它不是标准化的度量),因此它可以随着变量单位的变化而变化。

3.1 线性回归中的假设

1. 残差的线性:因变量和自变量之间需要存在线性关系。

2. 残差的独立性:误差项不应相互依赖(例如在时间序列数据中,下一个值依赖于前一个值)。残差项之间不应存在相关性。这种现象的缺失被称为自相关。

3. 残差的正态分布:残差的均值应服从正态分布,均值等于零或接近于零。这样做是为了检查所选线是否真的是最佳拟合线。如果误差项不服从正态分布,则表明存在一些不寻常的数据点,必须仔细研究才能建立更好的模型。

4. 残差方差相等:误差项必须具有恒定方差。这种现象称为同方差性。误差项中存在非常量方差称为异方差性。通常,非常量方差是在存在异常值或极端杠杆值时出现的。

四、从头开始的简单线性回归代码


import numpy as np
from sklearn import datasets
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
X,y = datasets.make_regression(n_samples=100, n_features=1, noise=20, random_state=4)
X_train, X_test ,y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)fig = plt.figure(figsize=(8,6))
plt.scatter(X[:,0], y, color="b", marker="o", s=30)
plt.show()

        第一行生成一个用于简单线性回归问题的合成数据集。它创建X作为输入特征(本例中为单个特征),y作为目标变量。n_samples指定数据点的数量,n_features是数据集中的特征数量(本例中为 1),noise控制数据中的噪声量,random_state确保可重复性。然后,我们使用 scikit-learn 中的train_test_split函数将数据集拆分为训练集和测试集。它采用输入特征 X 和目标变量 y,以及test_size作为要包含在测试拆分中的数据集比例(20%)。我们将使用 Matplotlib 的图形函数创建一个指定大小为8x6 英寸的散点图。X [:,0]从输入特征 X 中选择第一个(也是唯一的)特征。y 是目标变量。color=”b”将标记的颜色设置为蓝色,marker=”o”指定应使用圆形标记,s=30将标记的大小设置为 30 点。
 

class LinearRegression() : def __init__(self, lr = 0.002, n_iters = 1000):self.lr = lrself.n_iters = n_itersself.weights = Noneself.bias = Nonedef fit(self, X, y):n_samples, n_features = X.shapeself.weights = np.zeros(n_features)self.bias = 0for _ in range(self.n_iters):y_pred = np.dot(X, self.weights) + self.biasdw = (1/n_samples) * np.dot(X.T, (y_pred - y))db = (1/n_samples) * np.sum(y_pred - y)self.weights = self.weights - self.lr * dwself.bias = self.bias - self.lr * dbdef predict(self, X):y_pred = np.dot(X, self.weights) + self.biasreturn y_pred
reg = LinearRegression()
reg.fit(X_train, y_train)
pred = reg.predict(X_test)
print(pred)

此类实现了一个简单的线性回归模型。
__init __()是该类的构造函数方法。它使用两个参数初始化线性回归模型:

  • lr:学习率,控制梯度下降时所采取的步长。
  • n_iters:梯度下降算法将运行的迭代次数。

fit()函数将模型与训练数据进行拟合。它接受两个参数:输入特征 (X) 和输出目标变量 (y)。此函数将模型的权重和偏差初始化为零

predict()函数使用学习到的权重和偏差来预测新输入特征“X”的目标变量。

mse = np.mean((y_test - pred)**2)
print(mse) #--> 361.2812896055198
y_pred_line = reg.predict(X)
cmap = plt.get_cmap('viridis')
fig = plt.figure(figsize=(8,6))
m1 = plt.scatter(X_train, y_train, color=cmap(0.9), s=10)
m2 = plt.scatter(X_test, y_test, color=cmap(0.5), s=10)
plt.plot(X, y_pred_line, color='black', linewidth=2, label='Prediction')
plt.show()

五、多元线性回归

        多元线性回归是一种理解单个因变量和多个自变量之间关系的技术。多元线性回归的公式也类似于简单线性回归,但有一个细微的变化,即不再只有一个 beta 变量,而是所有使用的变量都有 beta 值。公式如下:Y = W1*X1 + W2*X2 + … + WmXm + b

        多元线性回归的考虑
因素 简单线性回归的所有四个假设对于多元线性回归仍然成立,并且还有一些新的附加假设。
        1.过度拟合:当向模型中添加越来越多的变量时,模型可能变得过于复杂,通常会记住训练集中的所有数据点。这种现象称为模型的过度拟合。这通常会导致高训练准确率和非常低的测试准确率。
        2.多重共线性:这是一种具有多个独立变量的模型中可能有一些变量相互关联的现象。
        3.特征选择:随着变量的增多,从给定特征池(其中许多可能是多​​余的)中选择最佳预测因子集成为构建相关且更好模型的重要任务。

        多重共线性由于多重共线性很难找出哪个变量实际上对响应变量的预测有贡献,因此它会导致人们错误地得出变量对目标变量的影响的结论。虽然它不会影响预测的精度,但必须正确检测和处理模型中存在的多重共线性,因为从模型中随机删除任何这些相关变量都会导致系数值大幅波动,甚至改变符号。

可以使用以下方法检测多重共线性。1
. 成对相关性:检查不同对独立变量之间的成对相关性可以为检测多重共线性提供有用的见解。2
. 方差膨胀因子 (VIF):成对相关性可能并不总是有用,因为可能只有一个变量无法完全解释其他变量,但一些变量组合起来可能可以做到这一点。因此,要检查变量之间的这种关系,可以使用 VIF。VIF 基本上解释了一个独立变量与所有其他独立变量之间的关系。VIF 由以下公式给出:

VIF = 1/ (1 - R^2)

对于 VIF 值,常见的启发式方法是,如果 VIF > 10,则该值肯定很高,应将其删除。如果 VIF=5,则它可能有效,但应先进行检查。如果 VIF < 5,则认为这是一个好的 vif 值。

线性回归中的过拟合和欠拟合总是存在模型在训练数据上表现良好但在测试数据上表现不佳的情况。在数据集上训练模型时,过拟合和欠拟合是人们面临的最常见问题。

在理解过度拟合和欠拟合之前,必须了解偏差和方差。

偏差:偏差是一种衡量模型对未来未知数据的准确度的指标。假设有足够的训练数据,复杂的模型可以准确地进行预测。而那些过于简单的模型很可能在预测方面表现不佳。简单地说,偏差是训练数据造成的错误。一般来说
,线性算法的偏差较大,这使得它们学习速度快、更容易理解,但总体而言灵活性较差。这意味着对复杂问题的预测性能较低,无法达到预期结果。

方差:方差是模型对训练数据的敏感度,即它量化了输入数据发生变化时模型的反应程度。理想情况下,模型不应该从一个训练数据集到下一个训练数据发生太大变化,这意味着算法擅长找出输入和输出变量之间隐藏的潜在模式。
理想情况下,模型应该具有较低的方差,这意味着模型在改变训练数据后不会发生剧烈变化(它是可推广的)。方差较高会使模型即使在训练数据集发生微小变化时也发生剧烈变化。

偏差方差权衡

为了追求最佳性能,监督式机器学习算法力求在低偏差和低方差之间取得平衡,以提高稳健性。在机器学习领域,偏差和方差之间存在内在关系,其特点是呈反相关。

  • 偏差增加会导致方差减少。
  • 相反,方差增大会导致偏差减小。
    找到偏差和方差之间的平衡至关重要,算法必须权衡利弊才能获得最佳结果。
    在实践中,由于底层目标函数的性质未知,计算精确的偏差和方差误差项具有挑战性。

过度拟合
当模型学习数据中的每个模式和噪声,以至于影响模型在未见的未来数据集上的性能时,这被称为过度拟合。模型与数据的拟合程度很高,以至于它将噪声解释为数据中的模式。

当模型的偏差较低且方差较高时,它最终会记住数据并导致过度拟合。过度拟合会导致模型变得具体而不是通用。这通常会导致训练准确率高但测试准确率非常低。

检测过拟合很有用,但并不能解决实际问题。有几种方法可以防止过拟合,如下所示:

  • 交叉验证
  • 如果训练数据太小,无法训练,则添加更多相关且干净的数据。
  • 如果训练数据太大,请进行一些特征选择并删除不必要的特征。
  • 正则化

欠拟合
欠拟合的讨论频率并不像过拟合那么高。当模型无法从训练数据集中学习,也无法推广到测试数据集时,就称为欠拟合。这种类型的问题可以很容易地通过性能指标检测到。

当模型具有高偏差和低方差时,它最终无法概括数据并导致欠拟合。它无法从数据中找到隐藏的底层模式。这通常会导致训练准确率低和测试准确率极低。防止欠拟合的方法如下,

  • 增加模型复杂度
  • 增加训练数据中的特征数量
  • 消除数据中的噪音

六、多元线性回归代码

X, y = datasets.make_regression(n_samples=100, n_features=3, noise=20, random_state=4)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1234)fig = plt.figure(figsize=(8,6))
plt.scatter(X[:,0], y, color="b", marker="o", s=30)
plt.show()

reg = LinearRegression()
reg.fit(X_train, y_train)pred = reg.predict(X_test)
print(pred)

mse = np.mean((y_test - pred)**2)
print(mse) #--> 698.925115269247
def plot_multiple_linear_regression(X, y, y_pred, title='Multiple Linear Regression'):fig = plt.figure(figsize=(8, 6))ax = fig.add_subplot(111, projection='3d')ax.scatter(X[:, 0], X[:, 1], y, color='blue', label='Actual')ax.scatter(X[:, 0], X[:, 1], y_pred, color='red', label='Predicted')ax.set_xlabel('Feature 1')ax.set_ylabel('Feature 2')ax.set_zlabel('Target')ax.set_title(title)ax.legend()plt.show()
plot_multiple_linear_regression(X_test, y_test, pred)

七、多项式线性回归

        简单的线性回归算法仅在数据之间的关系为线性时才有效。但是假设我们有非线性数据,那么线性回归将无法绘制最佳拟合线。在这种情况下,简单回归分析会失败。考虑下图,它具有非线性关系,您可以看到其上的线性回归结果,其表现不佳,这意味着它与现实不相符。因此,我们引入多项式回归来克服这个问题,这有助于识别独立变量和因变量之间的曲线关系。

        多项式回归如何处理非线性数据?
        多项式回归是线性回归的一种形式,由于因变量和自变量之间存在非线性关系,我们在线性回归中添加一些多项式项以将其转换为多项式回归。
在多项式回归中,因变量和自变量之间的关系被建模为 n 次多项式函数。当多项式的次数为 2 时,它被称为二次模型;当多项式的次数为 3 时,它被称为三次模型,依此类推。
假设我们有一个数据集,其中变量 X 代表独立数据,Y 是因变量。在预处理阶段将数据输入模式之前,我们使用某种程度将输入变量转换为多项式项。

        多项式回归模型通常用最小二乘法拟合。最小二乘法在高斯-马尔可夫定理下最小化系数的方差。

八、多项式线性回归代码

from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
X = 6 * np.random.rand(200, 1) - 3
y = 0.8 * X**2 + 0.9*X + 2 + np.random.randn(200, 1)plt.plot(X, y, 'b.')
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

我们创建一个形状为 (200, 1) 的数组 X,其中包含-3 和 3之间的随机值。np.random.randn()用于生成 0 到 1 之间的随机数,然后缩放并移动它们到 -3 到 3 之间。
然后我们根据方程y = 0.8x^2 + 0.9x + 2生成目标变量 y ,其中 x 是输入变量 X。它首先计算(0.8 * X^2)得到二次项,(0.9*X)得到线性项,并为常数项加 2。然后它添加一些随机噪声np.random.randn(200, 1)以使数据更真实。噪声是从均值为 0 和标准差为 1 的正态(高斯)分布中采样的。

x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=2)
lr = LinearRegression()
lr.fit(x_train, y_train)
y_pred = lr.predict(x_test)
print(r2_score(y_test, y_pred)) #--> 0.2678387104012654
plt.plot(x_train, lr.predict(x_train), color="r")
plt.plot(X, y, "b.")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

九、应用单变量多项式回归

poly = PolynomialFeatures(degree=2, include_bias=True)
x_train_trans = poly.fit_transform(x_train)
x_test_trans = poly.transform(x_test)lr = LinearRegression()
lr.fit(x_train_trans, y_train)
y_pred = lr.predict(x_test_trans)
print(r2_score(y_test, y_pred)) #--> 0.7692773830829487
print(lr.coef_)
print(lr.intercept_)
X_new = np.linspace(-3, 3, 200).reshape(200, 1)
X_new_poly = poly.transform(X_new)
y_new = lr.predict(X_new_poly)
plt.plot(X_new, y_new, "r-", linewidth=2, label="Predictions")
plt.plot(x_train, y_train, "b.",label='Training points')
plt.plot(x_test, y_test, "g.",label='Testing points')
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.show()

十、改变多项式的次数

        现在我们将设计一个函数来帮助我们找到正确的度值。在这里,我们将上面完成的所有预处理步骤应用到一个函数中,并将最终预测图映射到它上面。我们需要做的就是传递度数,它将建立一个模型并绘制特定度数的图形。在这里,我们将创建一个预处理步骤管道,使流程简化。

数据 → 多项式变换 → 线性回归 → 预测

def polynomial_regression(degree):X_new=np.linspace(-3, 3, 100).reshape(100, 1)X_new_poly = poly.transform(X_new)polybig_features = PolynomialFeatures(degree=degree, include_bias=False)std_scaler = StandardScaler()lin_reg = LinearRegression()polynomial_regression = Pipeline([("poly_features", polybig_features),("std_scaler", std_scaler),("lin_reg", lin_reg),])polynomial_regression.fit(X, y)y_newbig = polynomial_regression.predict(X_new)#plotting prediction lineplt.plot(X_new, y_newbig,'r', label="Degree " + str(degree), linewidth=2)plt.plot(x_train, y_train, "b.", linewidth=3)plt.plot(x_test, y_test, "g.", linewidth=3)plt.legend(loc="upper left")plt.xlabel("X")plt.ylabel("y")plt.axis([-3, 3, 0, 10])plt.show()

        当我们运行该函数并传递 10、15 和 20 等高阶数时,模型会尝试过度拟合数据,这意味着预测线会慢慢脱离其原始本质并尝试依赖训练数据点,并且随着训练路径发生一些变化,该线会尝试捕捉该点。

polynomial_regression(10)

polynomial_regression(15)

<polynomial_regression(25)

这是一个高次多项式的问题,我们在实际中可以看到,所以需要选择一个最优的次数值。

十一、多列多项式回归

我们已经了解了单变量多项式回归。大多数情况下,输入数据会有很多列,那么如何应用多项式回归并在三维空间中可视化结果呢?对于大多数初学者来说,这有时感觉是一项繁重的任务,所以让我们来解决这个问题,并了解如何在三维空间中执行多项式回归。

# 3D polynomial regression
x = 7 * np.random.rand(100, 1) - 2.8
y = 7 * np.random.rand(100, 1) - 2.8
z = x**2 + y**2 + 0.2*x + 0.2*y + 0.1*x*y +2 + np.random.randn(100, 1)
import plotly.express as px
df = px.data.iris()
fig = px.scatter_3d(df, x=x.ravel(), y=y.ravel(), z=z.ravel())
fig.show()

X = np.hstack((x, y, x**2, y**2, x*y))
reg = LinearRegression().fit(X, z)# Generate grid points for surface plot
x_input, y_input = np.meshgrid(np.linspace(-2.8, 4.2, 100), np.linspace(-2.8, 4.2, 100))
X_input = np.hstack((x_input.reshape(-1, 1), y_input.reshape(-1, 1), x_input.reshape(-1, 1)**2, y_input.reshape(-1, 1)**2, (x_input.reshape(-1, 1)*y_input.reshape(-1, 1))))
z_final = reg.predict(X_input)
import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Scatter3d(x=x.ravel(), y=y.ravel(), z=z.ravel(), mode='markers', marker=dict(size=3), name='Data'))
fig.add_trace(go.Surface(x=x_input, y=y_input, z=z_final.reshape(x_input.shape), name='Fitted Surface'))
fig.update_layout(scene=dict(xaxis_title='X', yaxis_title='Y', zaxis_title='Z'), title='3D Polynomial Regression')
fig.show()

您可以从github查看此处解释的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlmap详解

一.sqlmap -u URL --forms sqlmap -u http://192.168.11.136:1337//978345210/index.php --forms 针对特定的 URL 进行 SQL 注入测试&#xff0c;特别是针对表单&#xff08;form&#xff09;的 POST 注入 forms&#xff1a;这个参数告诉 sqlmap 解析并测试目标 URL 中的表单…

OBS + SRS:打造专业级直播环境的入门指南

OBS SRS&#xff1a;打造专业级直播环境的入门指南 1. OBS简介2. OBS核心功能详解2.1 场景&#xff08;Scenes&#xff09;管理2.2 源&#xff08;Sources&#xff09;控制2.3 混音器功能2.4 滤镜与特效2.5 直播控制面板 3. OBS推流到SRS服务器配置指南3.1 环境准备3.2 OBS推流…

Vue组件相关记录

Vue组件开发 非单文件组件 创建组件api Vue.extend({}) const student Vue.extend({template: <div>{{studentName}} - {{age}}</div>,data() {return {studentName: jjking,age: 12}}})new Vue({el: #app,//局部注册components: {student: student}})不能使用e…

【潜意识Java】深入理解 Java 面向对象编程(OOP)

目录 什么是面向对象编程&#xff08;OOP&#xff09;&#xff1f; 1. 封装&#xff08;Encapsulation&#xff09; Java 中的封装 2. 继承&#xff08;Inheritance&#xff09; Java 中的继承 3. 多态&#xff08;Polymorphism&#xff09; Java 中的多态 4. 抽象&…

【Linux SH脚本】LinuxCheck 应急检查信息脚本

LinuxCheck 1.下载地址 【Linux SH脚本】LinuxCheck 应急检查信息脚本 2.简介 LinuxCheck 是一个开源的自动化检查脚本&#xff0c;旨在快速检测 Linux 系统的安全配置和潜在问题。它支持多种发行版&#xff0c;能够扫描并生成详细的报告&#xff0c;涵盖用户管理、权限配置…

docker 部署 redis

docker 部署 redis 1. 下载 redis 镜像 # docker images | grep redis bitnami/redis 7.2.4-debian-11-r5 45de196aef7e 10 months ago 95.2MB2. docker-compose 部署 version: "3" services:redis:image: bitnami/redis:7.2.4-debian-11-…

相机测距原理

基础概念的回顾 焦距的定义 焦距是指透镜或镜头的光学中心&#xff08;通常是透镜的几何中心&#xff09;到其焦点的距离。 焦点是光线的交点&#xff0c;它指的是透镜或镜头聚焦所有入射光线后汇聚的位置。焦点的位置与透镜的曲率和光线的入射角度相关。就是说所有光线经过…

Python粉色圣诞树

系列文章 序号直达链接表白系列1Python制作一个无法拒绝的表白界面2Python满屏飘字表白代码3Python无限弹窗满屏表白代码4Python李峋同款可写字版跳动的爱心5Python流星雨代码6Python漂浮爱心代码7Python爱心光波代码8Python普通的玫瑰花代码9Python炫酷的玫瑰花代码10Python多…

数据分析学习Day1-使用matplotlib生成2小时每分钟的气温可视化分析图

注意&#xff1a;需要提前下载matplotlib包 pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple import matplotlib.pyplot as plt import random from matplotlib import font_manager # 数据准备 x list(range(121)) # 使用 list() 转换为列表 y [rando…

uniapp uni-table最简单固定表头

需求&#xff1a;固定表头数据&#xff0c;在网上找了半天&#xff0c;啥都有&#xff0c;就是一直实现不了&#xff0c;最后更改代码实现 1.效果 2.主要代码讲解完整代码 表格的父级一定要设置高度&#xff0c;不然会错位&#xff0c;我看网上说设置position&#xff1a;fixed…

HTML、CSS表格的斜表头样式设置title 画对角线

我里面有用到layui框架的影响&#xff0c;实际根据你自己的框架来小调下就可以 效果如下 上代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-wi…

【人工智能】OpenAI O1模型:超越GPT-4的长上下文RAG性能详解与优化指南

在人工智能&#xff08;AI&#xff09;领域&#xff0c;长上下文生成与检索&#xff08;RAG&#xff09; 已成为提升自然语言处理&#xff08;NLP&#xff09;模型性能的关键技术之一。随着数据规模与应用场景的不断扩展&#xff0c;如何高效地处理海量上下文信息&#xff0c;成…

学习笔记069——Java集合框架

文章目录 集合1、List 接口2、Set 接口3、Map3.1、Map 常用实现类 集合 需要创建多个对象&#xff0c;但是数量和类型不确定。 集合是 Java 提供的一种类型&#xff0c;功能和数组类似&#xff0c;但是长度和数据类型都是动态。 集合框架&#xff08;包括很多类和接口&#…

Baumer工业相机的EMVA1288 数据报告简介

项目场景&#xff1a; Baumer工业相机堡盟VCX系列和VLX系列为堡盟全系列相机中的主流常用相机和高端相机&#xff0c;性能强大、坚固可靠&#xff0c;易于集成&#xff0c;常用与一般行业的检测定位识别使用。 对应的高端相机系列具有极为丰富的强大技术功能&#xff0c;可轻…

游戏引擎学习第45天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们刚刚开始研究运动方程&#xff0c;展示了如何处理当人物遇到障碍物时的情况。有一种版本是角色会从障碍物上反弹&#xff0c;而另一版本是角色会完全停下来。这种方式感觉不太自然&#xff0c;因为在游戏中&#xff0c;…

Django基础之模板

一.前言 前面我们讲了视图&#xff0c;我们今天来讲一下模板&#xff0c;模板其实也就是视图中render返回的html进行的渲染&#xff0c;然后展示到浏览器页面上去&#xff0c;那我们今天就来和大家来说一下模板的基本用法 二.寻找html模板 这个也就是我们前面说了的找html&a…

每天40分玩转Django:简介和环境搭建

Django简介和环境搭建 一、课程概述 学习项目具体内容预计用时Django概念Django框架介绍、MVC/MTV模式、Django特点60分钟环境搭建Python安装、pip配置、Django安装、IDE选择45分钟创建项目项目结构、基本配置、运行测试75分钟实战练习创建个人博客项目框架60分钟 二、Djang…

elasticsearch设置默认账号密码

1.进入elasticsearch的bin目录下&#xff0c;输入命令&#xff1a; elasticsearch-setup-passwords interactive 2.输入对应的账号密码&#xff0c;然后重启elasticsearch&#xff0c;用对应的账号密码登录访问即可

用拉普拉斯变换的方差算法实现相机自动对焦

使用拉普拉斯变换的方差来计算图像的清晰度的主要原因是拉普拉斯算子可以有效检测图像的边缘和高频细节。图像的清晰度与边缘强度和高频分量的丰富程度密切相关,以下是更详细的解释: 1. 拉普拉斯算子的作用 拉普拉斯算子是一种二阶导数算子,定义为: 它可以在图像中检测快…

基于Sharding-jdbc实现水平分库、垂直分库、读写分离

一、实现水平分库 需求说明 水平分库是把同一个表的数据按一定规则拆到不同的数据库中&#xff0c;每个库可以放在不同的服务器上。 接下来咱们继续对快速入门中的例子进行完善。 实现步骤 将原有order_db库拆分为order_db_1、order_db_2 CREATE DATABASE order_db_1 CHAR…