深圳设计网站培训班企业网站建设公司注意哪些问题

diannao/2026/1/26 5:39:01/文章来源:
深圳设计网站培训班,企业网站建设公司注意哪些问题,广告设计公司的未来,使馆网站建设所有代码块都是在Jupyter Notebook下进行调试运行#xff0c;前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅#xff0c;这里我只写下每行代码所实现的功能#xff0c;参数的调整读者可以多进行试验调试。多动手…所有代码块都是在Jupyter Notebook下进行调试运行前后之间都相互关联。 文中所有代码块所涉及到的函数里面的详细参数均可通过scikit-learn官网API文档进行查阅这里我只写下每行代码所实现的功能参数的调整读者可以多进行试验调试。多动手 一、K-Means算法 #导包 import numpy as np import os %matplotlib inline import matplotlib import matplotlib.pyplot as plt plt.rcParams[axes.labelsize] 14 plt.rcParams[xtick.labelsize] 12 plt.rcParams[ytick.labelsize] 12 import warnings warnings.filterwarnings(ignore) np.random.seed(42)ⅠK-Means算法 from sklearn.datasets import make_blobs#指定五个中心点以这五个点为中心开始发散从而构建五个簇 blob_centers np.array([[0.2,2.3],[-1.5,2.3],[-2.8,1.8],[-2.8,2.8],[-2.8,1.3]])blob_std np.array([0.4,0.3,0.1,0.1,0.1]) #指定发散程度X,y make_blobs(n_samples2000,centersblob_centers,cluster_std blob_std,random_state7)#指定样本个数2000中心点为上步设置的中心点以中心点为圆心向两边发散#绘图展示 def plot_clusters(X, yNone):plt.scatter(X[:, 0], X[:, 1], cy, s1)plt.xlabel($x_1$, fontsize14)plt.ylabel($x_2$, fontsize14, rotation0) plt.figure(figsize(8, 4)) plot_clusters(X) plt.show()①决策边界 from sklearn.cluster import KMeans#导包 k 5#指定当前簇的个数 kmeans KMeans(n_clusters k,random_state42)#实例化 y_pred kmeans.fit_predict(X)#训练模型获取预测结果y_pred#一共2000个样本点每个样本点归于哪一个簇一共五个簇01234array([0, 4, 1, ..., 2, 1, 4])kmeans.labels_ #调用下预测结果属性array([0, 4, 1, ..., 2, 1, 4])很显然fit_predict(X)与kmeans.labels_ 得到预测结果是一致的 kmeans.cluster_centers_#获取当前五个中心点array([[-2.80037642, 1.30082566],[ 0.20876306, 2.25551336],[-2.79290307, 2.79641063],[-1.46679593, 2.28585348],[-2.80389616, 1.80117999]])X_new np.array([[0,2],[3,2],[-3,3],[-3,2.5]])#随便构造4个测试数据 kmeans.predict(X_new)#预测一下结果值看下每个测试数据对应的簇是第几个array([1, 1, 2, 2])kmeans.transform(X_new)#计算 四个测试样本 分别到 五个中心点的距离array([[2.88633901, 0.32995317, 2.9042344 , 1.49439034, 2.81093633],[5.84236351, 2.80290755, 5.84739223, 4.4759332 , 5.80730058],[1.71086031, 3.29399768, 0.29040966, 1.69136631, 1.21475352],[1.21567622, 3.21806371, 0.36159148, 1.54808703, 0.72581411]])#展示数据 def plot_data(X):plt.plot(X[:, 0], X[:, 1], k., markersize2)#展示中心点 def plot_centroids(centroids, weightsNone, circle_colorw, cross_colork):if weights is not None:centroids centroids[weights weights.max() / 10]plt.scatter(centroids[:, 0], centroids[:, 1],markero, s30, linewidths8,colorcircle_color, zorder10, alpha0.9)plt.scatter(centroids[:, 0], centroids[:, 1],markerx, s50, linewidths50,colorcross_color, zorder11, alpha1)#展示决策边界 def plot_decision_boundaries(clusterer, X, resolution1000, show_centroidsTrue,show_xlabelsTrue, show_ylabelsTrue):mins X.min(axis0) - 0.1maxs X.max(axis0) 0.1#排列组合xx, yy np.meshgrid(np.linspace(mins[0], maxs[0], resolution),np.linspace(mins[1], maxs[1], resolution))Z clusterer.predict(np.c_[xx.ravel(), yy.ravel()])#得到预测的结果值Z Z.reshape(xx.shape)#调整格式plt.contourf(Z, extent(mins[0], maxs[0], mins[1], maxs[1]),cmapPastel2)#绘制等高线不包括颜色plt.contour(Z, extent(mins[0], maxs[0], mins[1], maxs[1]),linewidths1, colorsk)#绘制等高线包括颜色plot_data(X)if show_centroids:plot_centroids(clusterer.cluster_centers_)if show_xlabels:plt.xlabel($x_1$, fontsize14)else:plt.tick_params(labelbottomoff)if show_ylabels:plt.ylabel($x_2$, fontsize14, rotation0)else:plt.tick_params(labelleftoff)plt.figure(figsize(8, 4)) plot_decision_boundaries(kmeans, X) plt.show()②算法流程 #这里只展示了迭代3次的结果 kmeans_iter1 KMeans(n_clusters 5,init random,n_init 1,max_iter1,random_state1)#实例化模型 kmeans_iter2 KMeans(n_clusters 5,init random,n_init 1,max_iter2,random_state1) kmeans_iter3 KMeans(n_clusters 5,init random,n_init 1,max_iter3,random_state1)kmeans_iter1.fit(X)#训练一下 kmeans_iter2.fit(X) kmeans_iter3.fit(X)KMeans(initrandom, max_iter3, n_clusters5, n_init1, random_state1)plt.figure(figsize(12,8))#指定绘制图像的大小 plt.subplot(321)#3行2列的第1个 plot_data(X)#绘制数据散点图 plot_centroids(kmeans_iter1.cluster_centers_, circle_colorr, cross_colork)#绘制每次迭代之后的中心点 plt.title(Update cluster_centers)plt.subplot(322)#3行2列的第2个 plot_decision_boundaries(kmeans_iter1, X,show_xlabelsFalse, show_ylabelsFalse)#绘制第一次迭代之后的决策边界 plt.title(Label)plt.subplot(323)#3行2列的第3个 plot_decision_boundaries(kmeans_iter1, X,show_xlabelsFalse, show_ylabelsFalse) plot_centroids(kmeans_iter2.cluster_centers_,)#更新中心点plt.subplot(324)#3行2列的第4个 plot_decision_boundaries(kmeans_iter2, X,show_xlabelsFalse, show_ylabelsFalse)#绘制第二次迭代之后的决策边界plt.subplot(325)#3行2列的第5个 plot_decision_boundaries(kmeans_iter2, X,show_xlabelsFalse, show_ylabelsFalse) plot_centroids(kmeans_iter3.cluster_centers_,)#更新中心点plt.subplot(326)#3行2列的第6个 plot_decision_boundaries(kmeans_iter3, X,show_xlabelsFalse, show_ylabelsFalse)#绘制第三次迭代之后的决策边界plt.show()左图为初始化中心点并更新中心点参数右图为K-Means划分之后重新确定中心点 ③不稳定结果 def plot_clusterer_comparison(c1,c2,X):c1.fit(X)#俩不同的K-Meansc2.fit(X)plt.figure(figsize(12,4))plt.subplot(121)#1行2列 第一个plot_decision_boundaries(c1,X)#决策边界的绘制plt.subplot(122)#1行2列 第二个plot_decision_boundaries(c2,X)#决策边界的绘制c1 KMeans(n_clusters 5,initrandom,n_init 1,random_state10)#构建两个不同的实例将初始值中心点位置设置随机 c2 KMeans(n_clusters 5,initrandom,n_init 1,random_state14) plot_clusterer_comparison(c1,c2,X)④评估指标 1,inertia #获取样本到五个中心点的距离 kmeans.transform(X)array([[0.11146795, 3.04611916, 1.45402521, 1.54944305, 0.46779778],[0.51431557, 3.11541584, 0.99002955, 1.48612753, 0.07122059],[3.76340605, 1.32016676, 4.09069201, 2.67154781, 3.81713488],...,[1.42865797, 3.04886464, 0.06769209, 1.40795651, 0.92830156],[3.23385668, 0.14895409, 3.05913478, 1.71125 , 3.10300136],[0.67518173, 2.8625311 , 0.85434589, 1.21678483, 0.22700281]])#找到离哪个中心点距离最小与上面的方法相对应 kmeans.labels_array([0, 4, 1, ..., 2, 1, 4])Inertia指标每个样本与其质心的距离越小分类效果越好 X_dist kmeans.transform(X)#通过标签来确定出样本数据到五个中心点中最小的距离 X_dist[np.arange(len(X_dist)),kmeans.labels_]array([0.11146795, 0.07122059, 1.32016676, ..., 0.06769209, 0.14895409,0.22700281])np.sum(X_dist[np.arange(len(X_dist)),kmeans.labels_]**2)#平方再求和211.59853725816856kmeans.inertia_#调用指标函数211.59853725816828很明显这个inertia_实际就是求测试数据到五个中心点最小距离的平方之和。 kmeans.score(X)#老外的思想是基于对数函数的-211.5985372581683c1.inertia_236.80956211186657c2.inertia_211.60832621558367通过inertia_评估可知c1分类效果较好。 2,轮廓系数 : 计算样本i到同簇其他样本的平均距离ai。ai 越小说明样本i越应该被聚类到该簇。将ai 称为样本i的簇内不相似度。 : 计算样本i到其他某簇Cj 的所有样本的平均距离bij称为样本i与簇Cj 的不相似度。定义为样本i的簇间不相似度bi min{bi1, bi2, …, bik} si接近1则说明样本i聚类合理 si接近-1则说明样本i更应该分类到另外的簇 若si 近似为0则说明样本i在两个簇的边界上。 ⑤K值的选取 1,inertia 依次取好多个K值并进行评分将评分结果进行绘制找到拐点(斜率变换趋势交界处)所对应的K值比较理想但不是绝对的 kmeans_per_k [KMeans(n_clusters k).fit(X) for k in range(1,10)]#k值取1-9都创建模型进行训练 inertias [model.inertia_ for model in kmeans_per_k]#将这些不同k值的模型通过inertia_评估方法进行判定plt.figure(figsize(8,4))#指定绘图的大小 plt.plot(range(1,10),inertias,bo-) plt.axis([1,9.5,0,1300])#指定x和y轴的范围 plt.show()找到拐点位置也就是K4效果较好。但实际上这里的K5故这种方法仅供参考。 2,轮廓系数 from sklearn.metrics import silhouette_score silhouette_score(X,kmeans.labels_)0.655517642572828kmeans_per_k[KMeans(n_clusters1),KMeans(n_clusters2),KMeans(n_clusters3),KMeans(n_clusters4),KMeans(n_clusters5),KMeans(n_clusters6),KMeans(n_clusters7),KMeans(),KMeans(n_clusters9)]silhouette_scores [silhouette_score(X,model.labels_) for model in kmeans_per_k[1:]]silhouette_scores[0.5966442557582528,0.5723900247411775,0.688531617595759,0.655517642572828,0.601878677912387,0.6071325093726307,0.561411737095725,0.5661946395774896]plt.figure(figsize(8,4)) plt.plot(range(2,10),silhouette_scores,bo-) plt.show()找到最接近1的位置的值也就是K4效果较好。但实际上这里的K5故这种方法也仅供参考。 ⑥K-Means存在的问题 X1, y1 make_blobs(n_samples1000, centers((4, -4), (0, 0)), random_state42) X1 X1.dot(np.array([[0.374, 0.95], [0.732, 0.598]])) X2, y2 make_blobs(n_samples250, centers1, random_state42) X2 X2 [6, -8] X np.r_[X1, X2] y np.r_[y1, y2]plot_data(X)kmeans_good KMeans(n_clusters3,initnp.array([[-1.5,2.5],[0.5,0],[4,0]]),n_init1,random_state14)#玩赖根据结果来定义初始值中心 kmeans_bad KMeans(n_clusters3,random_state14) kmeans_good.fit(X)#训练一下 kmeans_bad.fit(X)KMeans(n_clusters3, random_state14)plt.figure(figsize (10,4))#指定绘制图的大小 plt.subplot(121)#一行两列 第一个 plot_decision_boundaries(kmeans_good,X)#绘制决策边界 plt.title(Good - inertia {}.format(kmeans_good.inertia_))plt.subplot(122)#一行两列 第二个 plot_decision_boundaries(kmeans_bad,X)#绘制决策边界 plt.title(Bad - inertia {}.format(kmeans_bad.inertia_))有结果可知左图inertia值大但是效果确实很好这一点更加反映出上述的两个K指定选取以及评估指标都是仅供参考并不代表最好的结果。 二、图像分割运用 将图像背景当成一类簇图像前景当成另外一类簇这便实现了对图像的分割。 #ladybug.png from matplotlib.image import imread image imread(rG:\Juptyer_workspace\study\data\cat.png)#读取图像路径 image.shape(321, 287, 3)X image.reshape(-1,3)#-1表示image.shape的3个值相乘再除以3 X.shape#得到图像的像素点每个像素点都有3个特征(RGB)(92127, 3)kmeans KMeans(n_clusters 8,random_state14).fit(X)#n_clusters簇的个数 训练一下kmeans.cluster_centers_#获取每个簇的中心点位置8个簇8个中心点位置对应8行每个像素都有3个特征RGE对应3列array([[0.4471733 , 0.350066 , 0.30473077],[0.9084078 , 0.77313846, 0.70459783],[0.6072408 , 0.4768775 , 0.42346856],[0.78779787, 0.62332743, 0.55133986],[0.27133766, 0.19734937, 0.17845926],[0.6265253 , 0.61260563, 0.6179434 ],[0.7396835 , 0.7428063 , 0.76036733],[0.86409616, 0.86019826, 0.8708797 ]], dtypefloat32)segmented_img kmeans.cluster_centers_[kmeans.labels_].reshape(image.shape)#通过标签找到对应的中心点用中心点的像素值取代所对应簇的所有像素点的值因为最后需要以图像形式展示这里需要重新转化一下格式segmented_imgs [] n_colors (10,8,6,4,2)#5类K值即有几中颜色 for n_cluster in n_colors:kmeans KMeans(n_clusters n_cluster,random_state42).fit(X)segmented_img kmeans.cluster_centers_[kmeans.labels_]segmented_imgs.append(segmented_img.reshape(image.shape))plt.figure(figsize(10,5)) plt.subplot(231) plt.imshow(image) plt.title(Original image)for idx,n_clusters in enumerate(n_colors):plt.subplot(232idx)plt.imshow(segmented_imgs[idx])plt.title({}colors.format(n_clusters))三、半监督学习 将训练集聚类为50个集群然后对于每个聚类找到最靠近质心的图像这些图像称为代表性图像。 from sklearn.datasets import load_digitsX_digits,y_digits load_digits(return_X_y True)from sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test train_test_split(X_digits,y_digits,random_state42)X_digits.shape#8*8*64(1797, 64)X_train.shape#训练数据有1347个(1347, 64)y_train.shape(1347,)from sklearn.linear_model import LogisticRegression#导入逻辑回归 n_labeled 50#例如只有五十个标签log_reg LogisticRegression(random_state42) log_reg.fit(X_train[:n_labeled], y_train[:n_labeled]) log_reg.score(X_test, y_test)#通过逻辑回归直接算0.8266666666666667k 50 kmeans KMeans(n_clustersk, random_state42) X_digits_dist kmeans.fit_transform(X_train)X_digits_dist.shape#1347个训练样本每个训练样本跟这50个簇的距离(1347, 50)representative_digits_idx np.argmin(X_digits_dist,axis0)#找到离每个簇中心最近的样本 representative_digits_idx.shape#当前有1347个样本有50个簇每个簇找到当前离簇中心最近的一个样本(50,)X_representative_digits X_train[representative_digits_idx]##找到了这50个离50个簇中心最近的样本绘制这些代表性图像并手动标记 plt.figure(figsize(8, 2)) for index, X_representative_digit in enumerate(X_representative_digits):plt.subplot(k // 10, 10, index 1)plt.imshow(X_representative_digit.reshape(8, 8), cmapbinary, interpolationbilinear)plt.axis(off)plt.show()y_representative_digits np.array([0, 1, 3, 2, 9, 6, 4, 6, 9, 5,1, 2, 9, 5, 2, 7, 2, 1, 8, 6,3, 1, 5, 4, 5, 4, 0, 3, 2, 6,1, 7, 7, 9, 1, 8, 6, 5, 4, 8,5, 3, 3, 6, 7, 9, 7, 8, 4, 9])#对数据进行打标签这50个是典型代表是每个簇中选出的离簇中心最近的代表有一个只有50个标记实例的数据集它们中的每一个都是其集群的代表性图像而不是完全随机的实例。 看看性能是否更好 log_reg LogisticRegression(random_state42) log_reg.fit(X_representative_digits, y_representative_digits) log_reg.score(X_test, y_test)0.8955555555555555将标签传播到同一群集中的所有其他实例 y_train_propagated np.empty(len(X_train), dtypenp.int32) for i in range(k):y_train_propagated[kmeans.labels_i] y_representative_digits[i]log_reg LogisticRegression(random_state42) log_reg.fit(X_train, y_train_propagated)log_reg.score(X_test, y_test)0.8966666666666667只选择前20个 percentile_closest 20X_cluster_dist X_digits_dist[np.arange(len(X_train)), kmeans.labels_] for i in range(k):in_cluster (kmeans.labels_ i)#找到测试样本所处的簇cluster_dist X_cluster_dist[in_cluster] #选择属于当前簇的所有样本cutoff_distance np.percentile(cluster_dist, percentile_closest) #排序找到前20个above_cutoff (X_cluster_dist cutoff_distance) # False True结果X_cluster_dist[in_cluster above_cutoff] -1partially_propagated (X_cluster_dist ! -1) X_train_partially_propagated X_train[partially_propagated] y_train_partially_propagated y_train_propagated[partially_propagated]log_reg LogisticRegression(random_state42) log_reg.fit(X_train_partially_propagated, y_train_partially_propagated)log_reg.score(X_test, y_test)0.92177777777777778四、DBSCAN算法 #导包 from sklearn.datasets import make_moons X, y make_moons(n_samples1000, noise0.05, random_state42)Xarray([[-0.02137124, 0.40618608],[ 0.97670045, -0.45832306],[ 0.90405882, -0.37651952],...,[ 1.66258462, -0.3079193 ],[-0.94355873, 0.3278936 ],[ 0.79419406, 0.60777171]])y#两类array([1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0,0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1,0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1,1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1,1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1,0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0,1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0,0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1,0, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0,0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1,0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1,1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0,1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0,1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0,0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0,0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0,1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0,1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1,1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0,1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0,1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1,1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1,1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1,1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1,1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0,0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1,1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0,1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1,1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1,1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0,0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1,0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1,0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1,1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0,0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0,0, 1, 0, 1, 0, 0, 0, 1, 0, 0], dtypeint64)plt.plot(X[:,0],X[:,1],b.)from sklearn.cluster import DBSCAN dbscan DBSCAN(eps 0.05,min_samples5)#指定半径0.05和圆中最小得存在的样本个数5即最小阈值为5 dbscan.fit(X)#训练dbscan.labels_[:10]#先选取10个看下结果-1表示离群点array([ 0, 2, -1, -1, 1, 0, 0, 0, 2, 5], dtypeint64)dbscan.core_sample_indices_[:10]#先选取10个看下结果核心对象的索引array([ 0, 4, 5, 6, 7, 8, 10, 11, 12, 13], dtypeint64)np.unique(dbscan.labels_)#查看下一共分成了几类array([-1, 0, 1, 2, 3, 4, 5, 6], dtypeint64)对比 dbscan2 DBSCAN(eps 0.2,min_samples5)#指定半径0.2和圆中最小得存在的样本个数5即最小阈值为5 dbscan2.fit(X)#训练def plot_dbscan(dbscan, X, size, show_xlabelsTrue, show_ylabelsTrue):#绘图core_mask np.zeros_like(dbscan.labels_, dtypebool)core_mask[dbscan.core_sample_indices_] Trueanomalies_mask dbscan.labels_ -1non_core_mask ~(core_mask | anomalies_mask)cores dbscan.components_anomalies X[anomalies_mask]non_cores X[non_core_mask]plt.scatter(cores[:, 0], cores[:, 1],cdbscan.labels_[core_mask], markero, ssize, cmapPaired)plt.scatter(cores[:, 0], cores[:, 1], marker*, s20, cdbscan.labels_[core_mask])plt.scatter(anomalies[:, 0], anomalies[:, 1],cr, markerx, s100)plt.scatter(non_cores[:, 0], non_cores[:, 1], cdbscan.labels_[non_core_mask], marker.)if show_xlabels:plt.xlabel($x_1$, fontsize14)else:plt.tick_params(labelbottomoff)if show_ylabels:plt.ylabel($x_2$, fontsize14, rotation0)else:plt.tick_params(labelleftoff)plt.title(eps{:.2f}, min_samples{}.format(dbscan.eps, dbscan.min_samples), fontsize14)plt.figure(figsize(9, 3.2))plt.subplot(121) plot_dbscan(dbscan, X, size100)plt.subplot(122) plot_dbscan(dbscan2, X, size600, show_ylabelsFalse)plt.show()

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

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

相关文章

网站群cmswordpress按分类调用文章

环境说明 系统版本:Ubuntu 20.04 VirtualBox版本: 7.0.12 解决过程 扩展下载,进入VirtualBox 官方下载路径。选择本机安装版本,如下图所示,因笔者是7.0.x版本,因此点击第一条链接; 进入版本页…

中国网站排名前100智慧团建官方网站电脑版

Vue中的Render渲染函数 VUE一般使用template来创建HTML&#xff0c;然后在有的时候&#xff0c;我们需要使用javascript来创建html&#xff0c;这时候我们需要使用render函数。比如如下我想要实现如下html&#xff1a; <div id"container"><h1><a hre…

企业网站推广计划网络科技工作室起名

一.项目简介 利用DS18B20实时检测温度并显示在LCD1602显示屏上&#xff0c;同时可以通过K1,K2,K3,K4设置最高温度和最低温度利用AT24C02可以实现掉电不丢失&#xff0c;最后当检测温度大于或小于最高温时&#xff0c;会在LCD1602显示屏上显示OV:H或OV:L。 二.准备材料 AT89C52、…

济宁市中网站建设工程建设信息网站有哪些

一.前期准备 1.1开发环境安装 Oracle从JDK9开始每半年发布⼀个新版本, 新版本发布后, ⽼版本就不再进⾏维护. 但是会有⼏个⻓期维护的版本. ⽬前⻓期维护的版本有: JDK8, JDK11, JDK17, JDK21 在 JDK版本的选择上&#xff0c;尽量选择⻓期维护的版本. 为什么选择JDK17? S…

专业营销网站建设购物网站APP

运维工程师在进行服务器运维时&#xff0c;往往一个人要同时监控几十甚至成百上千的机器&#xff0c;当机器数量增加时&#xff0c;服务器管理的难度将会大大增加。很多工程师在工作中会使用一些运维面板&#xff0c;比如bt&#xff0c;1panel等&#xff0c;但是这些工具往往一…

专门做音箱的网站邢台地区网站建设

每日推荐一篇专注于解决实际问题的外文&#xff0c;精准翻译并深入解读其要点&#xff0c;助力读者培养实际问题解决和代码动手的能力。 欢迎关注公众号 原文标题&#xff1a;Text Clustering and Labeling Utilizing OpenAI API 原文地址&#xff1a;https://medium.com/kbd…

制作app免费网站模板镇江网站建设和优化推广多少钱

C 六级 2024 年 03 月 1 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 在构建哈夫曼树时&#xff0c;每次应该选择&#xff08; &#xff09;合并。 A. 最小权值的节点 B. 最大权值的节点 C. 随机节点 D. 深度最深的节点 第 2 题 面向对象的编程思想主…

全屏网站模版重庆汉沙科技做网站怎么样

参数地址围类别97版基地址2002版基地址遥信1H------400H1H------4000H遥测701H------900H4001H------5000H遥控B01------B806001H------6100H设点B81H------C00H6201H------6400H电度C01H------C80H6401H------6600H遥测和遥信个数不设置上限&#xff0c;可以没有上限限制&…

网站自助建站网站模版库

目的&#xff1a;想使用add()在list集合中加入数据 原因&#xff1a;Arrays的内部类ArrayList没有重写 AbstractList的add和remove方法&#xff0c;直接使用会抛异常 String str "1,2,3,5" String[] ids str.split(","); List<String> list Array…

做染料的网站网站百科源码

第一步&#xff0c;通过下面的指令&#xff0c;修改 linux git 的配置文件&#xff1a; vi ~/.gitconfig会进入下图界面&#xff1a; 进入本地&#xff08;Windows&#xff09;中 git 的设置界面 复制 名称 和 Email 到 gitconfig 里&#xff0c;不要在末尾加 &#xff08;空…

郑州网站搭建wordpress 建站容易吗

中间件是一种软件&#xff0c;用于在不同的应用程序、系统或服务之间提供通用功能和服务。它充当应用程序之间的桥梁&#xff0c;帮助它们相互通信和交换数据。中间件简化了复杂软件系统的开发和维护&#xff0c;使不同的系统组件能够更容易地协同工作。中间件的类型很多&#…

东莞网站建设-拥有多年专业永久不收费的软件app

前置条件 已经完成 K8S安装过程十&#xff1a;Kubernetes CNI插件与CoreDNS服务部署 部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具&#xff0c;这个命令行工具依赖 ~/.kube/config 这个配置文件&#xff0c;目前只在 kubernetes master 节点中…

多合一网站源码网络营销ppt讲解

Problem - G - Codeforces 推荐视频题解&#xff1a;G_哔哩哔哩_bilibili 思路&#xff1a; 先不管同一个线路上的&#xff0c;就正常建边&#xff0c;这样点距都是1. 然后虚点就是该线路的每个点都连的点。 到虚点的边权是1&#xff0c;表示我们坐这趟线路。 然后这个虚点…

铁道部售票网站多少钱建设wordpress 头像 删除

Vue中的分布式路由配置与管理 随着现代Web应用程序的复杂性不断增加&#xff0c;分布式路由配置和管理成为了一个重要的主题。Vue.js作为一种流行的前端框架&#xff0c;提供了多种方法来管理Vue应用程序的路由。本文将深入探讨在Vue中如何进行分布式路由配置与管理&#xff0…

网站建设与管理做什么免费html5播放器

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…

做二手车按揭的网站做培训网站前端

1. 多态 多种形态或多种实现方法&#xff0c;C中的多态是指一种接口&#xff08;指的是父类接口&#xff09;&#xff0c;多种实现方法&#xff08;指的是每个子类所实现的方法&#xff09;&#xff0c;即通过父类接口实现调用子类的多种方法 1.1 构成多态性的条件&#xff1a;…

服务专业公司网站建设服务开发公司项目总职责

defineEmits 属性&#xff1a;用于创建自定义事件&#xff0c;接收子组件传递过来的数据。 注意&#xff1a;如果自定义事件的名称&#xff0c;和原生事件的名称一样&#xff0c;那么只会触发自定义事件。 defineEmits 仅适用于 setup 语法糖&#xff0c;其它写法请见&#x…

网站建设与制作实验报告腾讯云服务器费用

a(isnan(a(:,b)),:)[];%删除a矩阵中第b列包含NaN的行

共享备案网站wordpress站点打不开

正题之前 三玖yyds&#xff01;&#xff01;&#xff01; 题目 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组成一个最大的整数。 注意&#xff1a;输出结果可能非常大&#xff0c;所以你需要返回一个字符串而不是整…

优化系统是什么意思seo外链怎么发

作为福禄克官方授权经销商—明辰智航将给你一个完整的LinkIQ有线网络测试仪概述。首先&#xff0c;让我们来看看基本工具包里的内容。 我们有&#xff1a; LinkIQ本身 福禄克随身携带便捷包 快速参考指南说明书 CAT6a接线 远程ID 1用于完整的导线图测试 RJ45-to-RJ45模块…