5.7 支持向量机

支持向量机(SVM)是一种特别强大且灵活的监督算法,用于分类和回归。 在本节中,我们将探索支持向量机背后的直觉,及其在分类问题中的应用。

我们以标准导入开始:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats# use seaborn plotting defaults
import seaborn as sns; sns.set()

支持向量机的动机

作为贝叶斯分类讨论的一部分(见朴素贝叶斯分类),我们学习了一个简单模型,它描述每个底层类的分布,并使用这些生成模型,依概率确定新的点的标签。 这是生成分类的一个例子。 这里我们将考虑区分性分类:我们不对每个类进行建模,只需找到一条或两条直线(在两个维度上),或者流形(在多个维度上),将类彼此划分。

作为一个例子,考虑分类任务的简单情况,其中两个类别的点是良好分隔的:

from sklearn.datasets.samples_generator import make_blobs
X, y = make_blobs(n_samples=50, centers=2,random_state=0, cluster_std=0.60)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn');

线性判别分类器将尝试绘制分离两组数据的直线,从而创建分类模型。 对于这里所示的二维数据,这是我们可以手动完成的任务。 但是立刻我们看到一个问题:有两个以上的可能的分界线可以完美地区分两个类!

我们可以画出如下:

线性判别分类器尝试绘制分离两组数据的直线,从而创建分类模型。 对于这里所示的二维数据,这是我们可以手动完成的任务。 但是我们立刻看到一个问题:有两个以上的可能的分界线,可以完美地区分两个类!

我们可以这样绘制:

xfit = np.linspace(-1, 3.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')
plt.plot([0.6], [2.1], 'x', color='red', markeredgewidth=2, markersize=10)for m, b in [(1, 0.65), (0.5, 1.6), (-0.2, 2.9)]:plt.plot(xfit, m * xfit + b, '-k')plt.xlim(-1, 3.5);

这些是三个非常不同的分隔直线,然而,这些分隔直线能够完全区分这些样例。 根据你的选择,为新数据点(例如,该图中由“X”标记的数据点)分配不同的标签! 显然,我们简单的直觉,“在分类之间划线”是不够的,我们需要进一步思考。

支持向量机:间距最大化

支持向量机提供了一种改进方法。 直觉是这样的:我们并非在分类之间,简单绘制一个零宽度的直线,而是画出边距为一定宽度的直线,直到最近的点。 这是一个例子:

xfit = np.linspace(-1, 3.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')for m, b, d in [(1, 0.65, 0.33), (0.5, 1.6, 0.55), (-0.2, 2.9, 0.2)]:yfit = m * xfit + bplt.plot(xfit, yfit, '-k')plt.fill_between(xfit, yfit - d, yfit + d, edgecolor='none',color='#AAAAAA', alpha=0.4)plt.xlim(-1, 3.5);

在支持向量机中,边距最大化的直线是我们将选择的最优模型。 支持向量机是这种最大边距估计器的一个例子。

拟合支持向量机

我们来看看这个数据的实际结果:我们将使用 Scikit-Learn 的支持向量分类器,对这些数据训练 SVM 模型。 目前,我们将使用一个线性核并将C参数设置为一个非常大的数值(我们之后深入讨论这些参数的含义)。

from sklearn.svm import SVC # "Support vector classifier"
model = SVC(kernel='linear', C=1E10)
model.fit(X, y)
SVC(C=10000000000.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='linear',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)

为了更好展现这里发生的事情,让我们创建一个辅助函数,为我们绘制 SVM 的决策边界。

def plot_svc_decision_function(model, ax=None, plot_support=True):"""Plot the decision function for a 2D SVC"""if ax is None:ax = plt.gca()xlim = ax.get_xlim()ylim = ax.get_ylim()# create grid to evaluate modelx = np.linspace(xlim[0], xlim[1], 30)y = np.linspace(ylim[0], ylim[1], 30)Y, X = np.meshgrid(y, x)xy = np.vstack([X.ravel(), Y.ravel()]).TP = model.decision_function(xy).reshape(X.shape)# plot decision boundary and marginsax.contour(X, Y, P, colors='k',levels=[-1, 0, 1], alpha=0.5,linestyles=['--', '-', '--'])# plot support vectorsif plot_support:ax.scatter(model.support_vectors_[:, 0],model.support_vectors_[:, 1],s=300, linewidth=1, facecolors='none');ax.set_xlim(xlim)ax.set_ylim(ylim)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')
plot_svc_decision_function(model);

这是最大化两组点之间的间距的分界线。 请注意,一些训练点只是碰到了边缘:它们由该图中的黑色圆圈表示。 这些点是这种拟合的关键要素,被称为支持向量,并提供了算法的名称。 在 Scikit-Learn 中,这些点存储在分类器的support_vectors_属性中:

model.support_vectors_
array([[ 0.44359863,  3.11530945],[ 2.33812285,  3.43116792],[ 2.06156753,  1.96918596]])

这个分类器的成功的关键在于,为了拟合,只有支持向量的位置是重要的;任何远离边距的点,都不会影响拟合。 从技术上讲,这是因为这些要点不用于拟合模型的损失函数,所以只要不超过边距,它们的位置和数值就不重要了。

我们可以看到这一点,例如,如果我们绘制该数据集的前 60 个点和前120个点获得的模型:

def plot_svm(N=10, ax=None):X, y = make_blobs(n_samples=200, centers=2,random_state=0, cluster_std=0.60)X = X[:N]y = y[:N]model = SVC(kernel='linear', C=1E10)model.fit(X, y)ax = ax or plt.gca()ax.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')ax.set_xlim(-1, 4)ax.set_ylim(-1, 6)plot_svc_decision_function(model, ax)fig, ax = plt.subplots(1, 2, figsize=(16, 6))
fig.subplots_adjust(left=0.0625, right=0.95, wspace=0.1)
for axi, N in zip(ax, [60, 120]):plot_svm(N, axi)axi.set_title('N = {0}'.format(N))

在左图中,我们看到了 60 个训练点的模型和支持向量。 在右图中,我们将训练点数量翻了一番,但是模型没有改变:左图的三个支持向量仍然是右图的支持向量。 远程点的确切行为的这种不敏感性,是 SVM 模型的优点之一。

如果你正在运行这个笔记,可以使用 IPython 的交互式小部件,以交互方式查看 SVM 模型的此功能:

from ipywidgets import interact, fixed
interact(plot_svm, N=[10, 200], ax=fixed(None));

超越支持向量机:核

SVM 与核结合在一起,就会变得非常强大。 之前,我们已经看到了一个核的版本,就是“线性回归”中的基函数。 在那里,我们将数据投影到更高维空间中,由多项式和高斯基函数定义,从而能够将线性分类器用于非线性关系。

在 SVM 模型中,我们可以使用相同想法的一个版本。 为了阐述核的动机,我们来看一些不是线性分离的数据:

from sklearn.datasets.samples_generator import make_circles
X, y = make_circles(100, factor=.1, noise=.1)clf = SVC(kernel='linear').fit(X, y)plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')
plot_svc_decision_function(clf, plot_support=False);

很明显,这些数据不可能线性分隔。 但是,我们可以从线性回归中的基函数回归中吸取经验,并考虑如何将数据投影到更高的维度,使得线性分隔就足够了。 例如,我们可以使用的一个简单的投影是径向基函数,中心是中间那一堆点:

r = np.exp(-(X ** 2).sum(1))

我们可以使用三维图形来显示这个额外的数据维度 - 如果你正在运行笔记本,则可以使用滑块来旋转图形:

from mpl_toolkits import mplot3ddef plot_3D(elev=30, azim=30, X=X, y=y):ax = plt.subplot(projection='3d')ax.scatter3D(X[:, 0], X[:, 1], r, c=y, s=50, cmap='autumn')ax.view_init(elev=elev, azim=azim)ax.set_xlabel('x')ax.set_ylabel('y')ax.set_zlabel('r')interact(plot_3D, elev=[-90, 90], azip=(-180, 180),X=fixed(X), y=fixed(y));

我们可以看到,使用这个附加维度,通过在r = 0.7处绘制分离平面,数据可以线性分离。

在这里,我们必须选择并仔细调整我们的预测:如果我们没有将径向基函数置于正确的位置,我们就不会看到这样清晰的线性可分离结果。一般来说,做出这样的选择的需求是一个问题:我们想以某种方式自动找到最佳的基函数来使用。

为此,一个策略是计算以数据集中每个点为中心的基函数,并使 SVM 算法筛选出结果。这种类型的基函数变换被称为核变换,因为它基于每对点之间的相似关系(或核)。

这种策略的潜在问题 - 将N个点投影到N个维度 - 就是随着N增长,它的计算开销可能会变得非常大。然而,由于一个被称为核技巧的简洁的小过程,内核转换数据上的拟合可以隐式完成,也就是说,不需要为核投影构建完全的N维数据表示!这个核技巧内置在 SVM 中,也是该方法如此强大的原因之一。

在 Scikit-Learn 中,我们可以通过使用kernel模型超参数,将线性核更改为 RBF(径向基函数)核来应用核化 SVM:

clf = SVC(kernel='rbf', C=1E6)
clf.fit(X, y)
SVC(C=1000000.0, cache_size=200, class_weight=None, coef0=0.0,decision_function_shape=None, degree=3, gamma='auto', kernel='rbf',max_iter=-1, probability=False, random_state=None, shrinking=True,tol=0.001, verbose=False)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')
plot_svc_decision_function(clf)
plt.scatter(clf.support_vectors_[:, 0], clf.support_vectors_[:, 1],s=300, lw=1, facecolors='none');

使用这个核化的 SVM,我们得到了合适的非线性决策边界。这个核的转换策略,通常用在机器学习中,将线性方法快速调整为非线性方法,尤其是可以使用核技巧的模型。

调整 SVM:软边距

我们迄今为止的讨论集中在非常干净的数据集,其中存在完美的决策边界。 但是如果你的数据有一定的重叠呢? 例如,你可能拥有如下数据:

X, y = make_blobs(n_samples=100, centers=2,random_state=0, cluster_std=1.2)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn');

为了处理这种情况,SVM 实现了软化因子,即“软化”边距:也就是说,如果允许更好的匹配,它允许某些点进入边距。 边缘的硬度由调整参数控制,通常称为C。 对于非常大的C,边距是硬的,点不能进入。 对于较小的C,边缘较软,可以扩展并包含一些点。

下图显示了参数的变化C,如何影响最终拟合,通过软化边缘:

X, y = make_blobs(n_samples=100, centers=2,random_state=0, cluster_std=0.8)fig, ax = plt.subplots(1, 2, figsize=(16, 6))
fig.subplots_adjust(left=0.0625, right=0.95, wspace=0.1)for axi, C in zip(ax, [10.0, 0.1]):model = SVC(kernel='linear', C=C).fit(X, y)axi.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='autumn')plot_svc_decision_function(model, axi)axi.scatter(model.support_vectors_[:, 0],model.support_vectors_[:, 1],s=300, lw=1, facecolors='none');axi.set_title('C = {0:.1f}'.format(C), size=14)

参数C的最佳值将取决于你的数据集,并应使用交叉验证或类似的过程进行调整(请参阅超参数和模型验证)。

示例:人脸识别

作为支持向量机的一个例子,我们来看看人脸识别问题。 我们将使用 Wild 数据集中的标记人脸,其中包含数千张各种公众人物的整理照片。 数据集的获取器内置于 Scikit-Learn中:

from sklearn.datasets import fetch_lfw_people
faces = fetch_lfw_people(min_faces_per_person=60)
print(faces.target_names)
print(faces.images.shape)
['Ariel Sharon' 'Colin Powell' 'Donald Rumsfeld' 'George W Bush''Gerhard Schroeder' 'Hugo Chavez' 'Junichiro Koizumi' 'Tony Blair']
(1348, 62, 47)

让我们绘制这些人脸来看看我们要处理什么:

fig, ax = plt.subplots(3, 5)
for i, axi in enumerate(ax.flat):axi.imshow(faces.images[i], cmap='bone')axi.set(xticks=[], yticks=[],xlabel=faces.target_names[faces.target[i]])

每个图像包含[62×47]或近 3,000 个像素。 我们可以简单地使用每个像素值作为特征,但是通常使用某种预处理器,来提取更有意义的特征更有效;在这里,我们将使用主成分分析(参见主成分分析)来提取150个基本成分,并扔给我们的支持向量机分类器。 我们可以将预处理器和分类器打包成单个管道,来最直接地执行此操作:

from sklearn.svm import SVC
from sklearn.decomposition import RandomizedPCA
from sklearn.pipeline import make_pipelinepca = RandomizedPCA(n_components=150, whiten=True, random_state=42)
svc = SVC(kernel='rbf', class_weight='balanced')
model = make_pipeline(pca, svc)

出于测试我们的分类器输出的目的,我们将数据分割成训练集和测试集。

from sklearn.cross_validation import train_test_split
Xtrain, Xtest, ytrain, ytest = train_test_split(faces.data, faces.target,random_state=42)

最后,我们可以使用网格搜索的交叉验证来探索参数的组合。 这里我们将调整C(控制边缘硬度)和gamma(其控制径向基函数核的大小),并确定最佳模型:

from sklearn.grid_search import GridSearchCV
param_grid = {'svc__C': [1, 5, 10, 50],'svc__gamma': [0.0001, 0.0005, 0.001, 0.005]}
grid = GridSearchCV(model, param_grid)%time grid.fit(Xtrain, ytrain)
print(grid.best_params_)
CPU times: user 47.8 s, sys: 4.08 s, total: 51.8 s
Wall time: 26 s
{'svc__gamma': 0.001, 'svc__C': 10}

最优值落在我们网格中间;如果他们落在边缘,我们需要扩大网格,来确保我们找到了真正的最优值。

现在有了这种交叉验证的模型,我们可以预测测试数据的标签,该模型还没有看到:

model = grid.best_estimator_
yfit = model.predict(Xtest)

让我们看一看一些测试图像,以及它们的预测值。

fig, ax = plt.subplots(4, 6)
for i, axi in enumerate(ax.flat):axi.imshow(Xtest[i].reshape(62, 47), cmap='bone')axi.set(xticks=[], yticks=[])axi.set_ylabel(faces.target_names[yfit[i]].split()[-1],color='black' if yfit[i] == ytest[i] else 'red')
fig.suptitle('Predicted Names; Incorrect Labels in Red', size=14);

在这个小样本中,我们的最佳估计器只错误标记一个人脸(底部的行中,布什的脸错误标记为布莱尔)。 我们可以使用分类报告更好了解我们的估计器的表现,该分类报告按标签列出了恢复统计量:

from sklearn.metrics import classification_report
print(classification_report(ytest, yfit,target_names=faces.target_names))
                   precision    recall  f1-score   supportAriel Sharon       0.65      0.73      0.69        15Colin Powell       0.81      0.87      0.84        68Donald Rumsfeld       0.75      0.87      0.81        31George W Bush       0.93      0.83      0.88       126
Gerhard Schroeder       0.86      0.78      0.82        23Hugo Chavez       0.93      0.70      0.80        20
Junichiro Koizumi       0.80      1.00      0.89        12Tony Blair       0.83      0.93      0.88        42avg / total       0.85      0.85      0.85       337

我们也可以展示这些分类之间的混淆矩阵:

from sklearn.metrics import confusion_matrix
mat = confusion_matrix(ytest, yfit)
sns.heatmap(mat.T, square=True, annot=True, fmt='d', cbar=False,xticklabels=faces.target_names,yticklabels=faces.target_names)
plt.xlabel('true label')
plt.ylabel('predicted label');

这有助于我们了解哪些标签可能被估算器混淆。

对于真实的人脸识别任务,其中照片不会被预先裁剪成漂亮的网格,人脸分类方案的唯一区别是特征选择:您需要使用更复杂的算法来查找人脸, 并提取独立于像素的特征。 对于这种应用,一个很好的选择是使用 OpenCV,除了别的以外,它包括用于一般图像的,以及专用于人脸的现代化特征提取工具。

支持向量机总结

我们在这里看到了支持向量机背后的原则的简单直观的介绍。这些方法是强大的分类方法,原因有很多:

  • 他们依赖相对较少的支持向量,意味着它们是非常紧凑的模型,并且占用很少的内存。
  • 一旦训练了模型,预测阶段非常快。
  • 因为它们仅受边缘附近的点的影响,它们适用于高维数据,甚至维度大于样本的数据,这对于其他算法来说是一个挑战。
  • 内核方法的集成使得它们非常通用,能够适应许多类型的数据。

然而,SVM也有几个缺点:

  • 在最差的情况下,样本数N的复杂度为O(N^3),对于高效的实现,是O(N^2)。对于大量的训练样本,这种计算成本可能令人望而却步。
  • 结果强烈依赖于软化参数C的合适选择。这必须通过交叉验证仔细选择,随着数据集增大,开销也增大。
  • 结果没有直接的概率解释。这可以通过内部交叉验证来估计(参见SVC的概率参数),但这种额外的估计是昂贵的。

考虑到这些特性,一般来说,只要其他更简单,更快,并且不需要调优的方法不足以满足我的需求,我一般只会考虑 SVM。然而,如果你投入了足够的 CPU 周期,使用 SVM 训练和验证你的数据,这个方法有很好的效果。

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

相关文章

  1. 把DXF导入到Altium Designer的完美方法

    硬件工程师跟结构工程师交互的文件,就只有结构图了,也就是PCB板框,这类文件一般是由AutoCAD导出的DWG、DXF文件,当然,也有只给你3D图的(如SolidWorks、Pro-E等),让你自己导。这里以DWG、DXF以例,演示导入到Altium Designer中。首先用AutoCAD打开DWG或DXF文件,保存为低…...

    2024/5/5 8:38:42
  2. tomcat配置成https访问(强制https)

    命令行执行%JAVA_HOME%\bin\keytool -genkey -aliastomcat -keyalg RSA 执行过程中会询问你一些信息,比如国家代码,省市等,其中需要填写两个密码,一次在开头,一次在最后,请保持两个密码相同。比如,我将密码都设成aas@123456。 如果不同,启动会报错,大概是下面这样的 j…...

    2024/5/6 20:29:30
  3. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析

    前面我们已经学习过Android应用程序与SurfaceFlinger服务的连接过程了。连接上SurfaceFlinger服务之后,Android应用程序就可以请求SurfaceFlinger服务创建Surface。而当有了Surface后,Android应用程序就可以用来渲染自己的UI了。在本文中,我们将详细分析Android应用程序请求…...

    2024/4/17 18:17:35
  4. 2018年最新Java视频课程免费分享(微软专家陆敏技主讲)

    今天分享的这套课程是微软专家陆敏主讲的Java视频课程,持续更新。陆敏技老师在2017年创办了IT培训机构最课程,全程面授培训优秀的IT工程师,主要开设有Java和软件测试课程。...

    2024/4/15 17:58:42
  5. matlab2016a中drtoolbox工具箱安装

    数据降维基本原理是将样本点从输入空间通过线性或非线性变换映射到一个低维空间,从而获得一个关于原数据集紧致的低维表示。 win7环境,安装之前在网上搜了很多“教程”,总也搞不好。。。 后来自己七拼八凑,移花接木。。。搞好了,记录下。 首先下载好drtoolbox工具箱,我是…...

    2024/4/20 6:33:28
  6. 阿里云服务器tomcat配置好外网无法访问

    今天我配置阿里云服务器,装上了tomcat。结果我的本地电脑楞是无法访问那个初始页面。后来通过将tomcat conf文件夹下的 server.xml的port从8080改为80,然后外网就可以访问了。我估计是和我一开始选择只开放80和22少量端口有关。...

    2024/5/3 11:49:47
  7. 正在爆发的互联网革命(30余位互联网大腕、100余家电视台等媒体鼎力推荐)

    正在爆发的互联网革命(30余位互联网大腕、100余家电视台等媒体鼎力推荐) 【作  者】西门柳上;马国良;刘清华 [同作者作品] [作译者介绍] 【出 版 社】 机械工业出版社 【书 号】 9787111282259 【上架时间】 2009-9-9 【出版日期】 2009 年9月 【开 本】 16开 网上预订:http…...

    2024/5/2 22:19:25
  8. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing...

    ~~因为不太会使用opencv、matlab工具,所以在找一些比较简单的工具。 .一、NLP标注工具 来源:《构想:中文文本标注工具(附开源文本标注工具列表)》 Chinese-Annotator来源:https://github.com/crownpku/Chinese-Annotator 能不能构建一个中文文本的标注工具,可以达到以下…...

    2024/5/3 1:20:52
  9. Layout-pcb之天线设计

    一:天线的定义天线是一种变换器,它把传输线上传播的导行波,变换成在无界媒介(通常是自由空间)中传播的电磁波,或者进行相反的变换。在无线电设备中用来发射或接收电磁波的部件。无线电通信、广播、电视、雷达、导航、电子对抗、遥感、射电天文等工程系统,凡是利用电磁波…...

    2024/4/17 18:18:05
  10. 【实习周报】2019年4月 前端开发实习工作周报汇总

    以下记录的是今年4月笔者在公司进行web前端工作的每周工作总结,其中隐去了项目的具体名称、人名、公司名等。2019.4.1-2019.4.3本周工作内容: 本周主要完成了训练场(Training)页面的静态显示;实现了其拖拽用户元素的效果不足之处:本周笔者在工作上的不足之处主要是css布局…...

    2024/5/2 21:58:54
  11. tomcat的安装与配置

    想用Tomcat作为服务器,必须分以下两步。首先要配置好JDK的环境变量,再去下载Tomcat的压缩包。 一,下载、安装JDK,并且配置好环境变量。1,下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2,先接受协议,再根据自己的电脑…...

    2024/5/3 2:39:37
  12. Java采用Http方式实现大文件下载

    Java采用Http方式实现大文件下载java实现大文件下载,基于http方式,控件神马的就不说了。思路:下载文件无非要读取文件然后写文件,主要这两个步骤,主要难点:1.读文件,就是硬盘到内存的过程,由于jdk内存限制,不能读的太大。2.写文件,就是响应到浏览器端的过程,http协议…...

    2024/4/17 18:19:05
  13. 推荐一些具有真正实操意义的专家讲师视频学习课程及blog地址

    我其实性子直爽,不太喜欢转弯抹角的,算是直来直去的,非常随性的人吧。做技术这块呢,懂一点技术,主要以实干,体现价值为主,像什么搞开发,搞高档的自动化运维就离我十分的遥远的,而路由,交换,软硬件这块算是我的强项,因为可操作性还是很强的啊,只要是中小型公司,这…...

    2024/4/17 18:18:35
  14. 前端开发学习常用网站网址及api接口(都是免费的)

    在开发的时候,想记住所有的单词基本是不可能的,所以就需要进入文档,只要理清需求能做出来,就很不差了!! 1.百度,俗称度娘,有不懂的就问百度,有问必答,跳转 2.百度翻译,不懂的单词,复制粘贴就懂了,跳转 3.微信小程序开发文档,跳转 4.微信公众平台,跳转 5.我的 CS…...

    2024/5/3 2:45:18
  15. Ansys16.0单机多核并行计算的设置问题

    许多朋友进行ansys仿真的时候对于计算速度的要求不是很明确,但是当要进行多个计算任务,网格数量巨大的时候,使用serial(单核)计算显得乏力,浪费大量的时间。ansys’这款软件强大的地方在于可以设置多核并行计算,让我们的计算速度得到质的飞跃。现在就说一下如何设置多核…...

    2024/4/17 18:18:11
  16. Java面试题视频找工作不用愁

    考虑到现在企业java面试题繁杂,并且没有专门的视频讲解。为了帮助大家顺利通过面试,高新就业,做好优质的教育培训服务。本套为专门的java技术面试的课程,希望对大家有所帮助。本视频首家java技术面试视频,涉及j2ee开发各个方面,该视频面试题是从众多企业搜集而来,紧贴企…...

    2024/4/20 17:45:02
  17. 百款 TWS蓝牙耳机 蓝牙天线拆机分析与仿真

    上一篇:贴片陶瓷天线原理 与 HFSS模型建立和仿真分析总结(原创文章,转载请与作者联系)0.前言TWS是英文True Wireless Stereo的缩写,即真正无线立体声的意思,TWS技术同样也是基于蓝牙芯片技术的发展。按其工作原理来说是指手机通过连接主耳机,再由主耳机通过无线方式快速…...

    2024/4/17 18:19:22
  18. Python-opencv3 SIFT算法做特征匹配

    最近接触一个项目:根据设计师定出的psd格式文件(photoshop),生成不同尺寸的海报。这里面牵扯到了尺度不变而对特征做变换的问题。这里简单介绍一下SIFT的概念,并知晓如何找到SIFT中的Keypoints和Descriptors,最后展示一个Demo。一点推荐 作为CSDN的忠实用户,最近发现CSD…...

    2024/4/17 18:19:46
  19. Spring Boot中为Tomcat配置多个监听端口

    今天有同事问”Spring Boot依赖的Embedded的Tomcat能不能同时监听多个端口?“stand-alone的tomcat当然是可以的,Tomcat的架构中,一个Connecter监听一个端口。 如果是stand-alone的Tomcat,只需要在server.xml中添加一个即可,如下:<Connector port="8080" red…...

    2024/5/3 1:10:56
  20. 优秀的计算机编程类博客 和 文章 转

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010321471/article/details/78635435 优秀的计算机编程类博客 和 文章 介绍 优秀的计算机编程类博客是一些关于计算机方面的优秀博客。欢迎大家将经常看的优秀博客或博客文章共享出来,您可以…...

    2024/4/17 18:17:08

最新文章

  1. typescript学习笔记3

    类型推断&#xff08;Type Inference&#xff09; TypeScript 编译器会在编译过程中进行类型推断。这意味着在很多情况下&#xff0c;你不需要明确地为变量或表达式指定类型&#xff0c;TypeScript 会根据上下文自动推断出最合适的类型。 typescript let x 10; // TypeScript…...

    2024/5/7 5:26:10
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. Docker Desktop+WSL2安装到自定义路径

    现在大多数软件实在太“流氓”了&#xff0c;在安装过程中&#xff0c;根本不让你选择安装路径&#xff0c;默认安装到$HOME下&#xff08;windows C盘&#xff09;&#xff0c;随着软件的使用增多&#xff0c;可能磁盘空间不够&#xff0c;这个时候就想着&#xff0c;看看某些…...

    2024/5/6 2:23:47
  4. app上架-您的应用存在最近任务列表隐藏风险活动的行为,不符合华为应用市场审核标准。

    上架提示 您的应用存在最近任务列表隐藏风险活动的行为&#xff0c;不符合华为应用市场审核标准。 修改建议&#xff1a;请参考测试结果进行修改。 请参考《审核指南》第2.19相关审核要求&#xff1a;https://developer.huawei.com/consumer/cn/doc/app/50104-02 造成原因 …...

    2024/5/6 18:41:47
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57