0401聚類-機器學習-人工智能

文章目錄

  • 一 無監督學習
    • 什么是無監督學習?
      • 核心特點:
    • 無監督學習的主要類型
      • 1. 聚類分析 (Clustering)
      • 2. 降維 (Dimensionality Reduction)
      • 3. 關聯規則學習 (Association Rule Learning)
      • 4. 異常檢測 (Anomaly Detection)
      • 5. 密度估計 (Density Estimation)
  • 二 聚類分析
    • 聚類概述
    • 主要聚類算法
      • 1. K-Means 聚類
      • 2. 層次聚類
      • 3. DBSCAN(基于密度的聚類)
      • 4. Mean Shift(均值漂移)
      • 5. 高斯混合模型(GMM)
    • 聚類評估指標
      • 內部指標(無真實標簽)
      • 外部指標(有真實標簽)
    • 聚類實踐指南
      • 1. 數據預處理
      • 2. 確定最佳簇數
      • 3. 處理常見問題
    • 高級聚類技術
      • 1. 譜聚類
      • 2. 模糊聚類
      • 3. 時間序列聚類
    • 聚類實際應用案例
      • 客戶細分
      • 圖像壓縮(顏色量化)
    • 聚類挑戰與未來方向
      • 當前挑戰
      • 未來方向
    • 結語
    • KMean、KNN、Meanshift比較
  • 關于

一 無監督學習

什么是無監督學習?

無監督學習是機器學習的一個重要分支,其核心目標是從未標記數據中發現隱藏的模式、結構或關系。與監督學習不同,無監督學習不需要預先標記的訓練數據,而是讓算法自主探索數據的內在特性。

核心特點:

  • 無標簽數據:處理的數據沒有預先定義的輸出標簽
  • 探索性分析:旨在揭示數據的內在結構和關系
  • 數據驅動:算法自主發現模式,而非遵循預設目標
  • 特征學習:自動學習有意義的特征表示

無監督學習的主要類型

1. 聚類分析 (Clustering)

將數據劃分為相似對象的組(簇)

常見算法

  • K-Means
  • 層次聚類 (Hierarchical Clustering)
  • DBSCAN
  • 高斯混合模型 (GMM)
  • 譜聚類 (Spectral Clustering)

2. 降維 (Dimensionality Reduction)

減少變量數量,同時保留重要信息

常見技術

  • 主成分分析 (PCA)
  • t-分布隨機鄰域嵌入 (t-SNE)
  • 自編碼器 (Autoencoders)
  • 因子分析 (Factor Analysis)

3. 關聯規則學習 (Association Rule Learning)

發現變量之間的有趣關系

典型方法

  • Apriori算法
  • FP-Growth算法

4. 異常檢測 (Anomaly Detection)

識別與大多數數據顯著不同的數據點

常用技術

  • 孤立森林 (Isolation Forest)
  • 一類支持向量機 (One-Class SVM)
  • 局部離群因子 (Local Outlier Factor)

5. 密度估計 (Density Estimation)

估計隨機變量的概率密度函數

主要方法

  • 核密度估計 (Kernel Density Estimation)
  • 高斯混合模型

二 聚類分析

聚類概述

聚類是機器學習中最重要的無監督學習技術之一,其目標是將數據集中的樣本劃分為多個組(簇),使得:

  • 組內相似性:同一簇內的樣本盡可能相似
  • 組間差異性:不同簇的樣本盡可能不同

聚類在眾多領域有廣泛應用:

  • 客戶細分:識別不同消費群體
  • 圖像分割:分離圖像中的不同對象
  • 異常檢測:發現異常數據點
  • 生物信息學:基因表達分析
  • 文檔組織:主題聚類

主要聚類算法

1. K-Means 聚類

核心思想:通過迭代優化,將數據劃分為K個球形簇

算法步驟

  1. 隨機選擇K個初始質心
  2. 將每個點分配到最近的質心
  3. 重新計算每個簇的質心
  4. 重復步驟2-3直到質心不再變化

優點

  • 計算效率高,適合大規模數據集
  • 實現簡單,易于理解

缺點

  • 需要預先指定K值
  • 對初始質心敏感
  • 假設簇為球形且大小相似

2. 層次聚類

核心思想:通過構建樹狀結構(樹狀圖)逐步合并或分裂簇

類型

  • 凝聚式:自底向上,每個點開始作為一個簇,逐步合并
  • 分裂式:自頂向下,所有點開始在一個簇,逐步分裂

優點

  • 不需要預先指定簇數量
  • 結果可解釋性強(樹狀圖)

缺點

  • 計算復雜度高(O(n3))
  • 對噪聲敏感
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as pltZ = linkage(data, 'ward')
plt.figure(figsize=(10, 5))
dendrogram(Z)
plt.show()

3. DBSCAN(基于密度的聚類)

核心思想:通過樣本密度連接區域形成簇

關鍵參數

  • ε (eps):鄰域半徑
  • MinPts:形成核心點所需的最小鄰居數

優點

  • 不需要預先指定簇數量
  • 可以發現任意形狀的簇
  • 對噪聲魯棒

缺點

  • 對參數敏感
  • 處理密度差異大的數據效果不佳
from sklearn.cluster import DBSCANdbscan = DBSCAN(eps=0.5, min_samples=5)
clusters = dbscan.fit_predict(data)

4. Mean Shift(均值漂移)

核心思想:通過迭代尋找數據密度最大區域

算法流程

  1. 對每個點,計算其鄰域內點的均值
  2. 將點移動到均值位置
  3. 重復直到收斂

優點

  • 不需要預先指定簇數量
  • 對異常值魯棒
  • 結果與初始化無關

缺點

  • 計算復雜度高
  • 帶寬選擇影響結果
from sklearn.cluster import MeanShiftms = MeanShift(bandwidth=2)
clusters = ms.fit_predict(data)

5. 高斯混合模型(GMM)

核心思想:使用多個高斯分布的加權和來建模數據

優點

  • 提供概率聚類
  • 更靈活的簇形狀(橢圓而非圓形)

缺點

  • 對初始化敏感
  • 可能收斂到局部最優
from sklearn.mixture import GaussianMixturegmm = GaussianMixture(n_components=3)
clusters = gmm.fit_predict(data)

聚類評估指標

內部指標(無真實標簽)

  • 輪廓系數:衡量簇內緊密度和簇間分離度

    from sklearn.metrics import silhouette_score
    score = silhouette_score(data, clusters)
    
  • 戴維斯-布爾丁指數:簇內距離與簇間距離的比率

  • Calinski-Harabasz指數:簇間離散度與簇內離散度的比率

外部指標(有真實標簽)

  • 調整蘭德指數:衡量聚類結果與真實標簽的相似度

    from sklearn.metrics import adjusted_rand_score
    ari = adjusted_rand_score(true_labels, clusters)
    
  • 標準化互信息:衡量兩個標簽分配之間的相似性

聚類實踐指南

1. 數據預處理

  • 標準化:確保所有特征具有相同尺度

    from sklearn.preprocessing import StandardScaler
    scaler = StandardScaler()
    data_scaled = scaler.fit_transform(data)
    
  • 降維:PCA或t-SNE可視化高維數據

    from sklearn.decomposition import PCA
    pca = PCA(n_components=2)
    data_pca = pca.fit_transform(data)
    

2. 確定最佳簇數

  • 肘部法則:繪制不同K值的SSE(平方誤差和)

    sse = []
    for k in range(1, 11):kmeans = KMeans(n_clusters=k)kmeans.fit(data)sse.append(kmeans.inertia_)plt.plot(range(1, 11), sse, 'bx-')
    plt.xlabel('Number of clusters')
    plt.ylabel('SSE')
    plt.show()
    
  • 輪廓分析:選擇輪廓系數最大的K值

3. 處理常見問題

  • 分類變量:使用獨熱編碼或距離度量
  • 缺失值:插補或使用支持缺失值的算法
  • 高維數據:降維或使用子空間聚類
  • 不同密度簇:使用DBSCAN或OPTICS

高級聚類技術

1. 譜聚類

原理:將聚類問題轉化為圖分割問題,在高維空間中有效處理非凸形狀

from sklearn.cluster import SpectralClusteringsc = SpectralClustering(n_clusters=3, affinity='nearest_neighbors')
clusters = sc.fit_predict(data)

2. 模糊聚類

原理:允許數據點以不同概率屬于多個簇,如模糊C均值算法

from sklearn_extensions.fuzzy_kmeans import FuzzyKMeansfkm = FuzzyKMeans(k=3)
fkm.fit(data)
membership = fkm.membership_

3. 時間序列聚類

特殊考量:使用動態時間規整(DTW)等特定距離度量

from tslearn.clustering import TimeSeriesKMeansmodel = TimeSeriesKMeans(n_clusters=3, metric="dtw")
clusters = model.fit_predict(time_series_data)

聚類實際應用案例

客戶細分

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler# 加載客戶數據
customer_data = pd.read_csv('customer_data.csv')# 選擇特征并標準化
features = ['age', 'income', 'spending_score']
X = customer_data[features]
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# 確定最佳K值(肘部法則)
sse = []
for k in range(1, 11):kmeans = KMeans(n_clusters=k, random_state=42)kmeans.fit(X_scaled)sse.append(kmeans.inertia_)# 選擇K=5進行聚類
kmeans = KMeans(n_clusters=5, random_state=42)
customer_data['cluster'] = kmeans.fit_predict(X_scaled)# 分析聚類特征
cluster_profiles = customer_data.groupby('cluster')[features].mean()

圖像壓縮(顏色量化)

from sklearn.cluster import MiniBatchKMeans
import cv2
import numpy as np# 加載圖像
image = cv2.imread('image.jpg')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pixels = image.reshape(-1, 3)# 使用K-Means減少顏色數量
kmeans = MiniBatchKMeans(n_clusters=16)
kmeans.fit(pixels)
new_colors = kmeans.cluster_centers_[kmeans.predict(pixels)]# 重建壓縮圖像
compressed_image = new_colors.reshape(image.shape).astype('uint8')

聚類挑戰與未來方向

當前挑戰

  1. 高維數據:維數災難導致距離度量失效
  2. 可解釋性:復雜聚類結果難以解釋
  3. 參數選擇:算法參數對結果影響大
  4. 混合類型數據:同時處理數值型和類別型特征

未來方向

  1. 深度聚類:結合深度學習的表示學習和聚類

    from sklearn.cluster import KMeans
    from tensorflow.keras.layers import Input, Dense
    from tensorflow.keras.models import Model# 自編碼器
    input_layer = Input(shape=(data.shape[1],))
    encoded = Dense(10, activation='relu')(input_layer)
    decoded = Dense(data.shape[1], activation='sigmoid')(encoded)
    autoencoder = Model(input_layer, decoded)
    autoencoder.compile(optimizer='adam', loss='mse')
    autoencoder.fit(data, data, epochs=50)# 在編碼空間聚類
    encoder = Model(input_layer, encoded)
    encoded_data = encoder.predict(data)
    kmeans = KMeans(n_clusters=5)
    clusters = kmeans.fit_predict(encoded_data)
    
  2. 大規模數據聚類:開發更高效的分布式算法

  3. 多視圖聚類:整合來自多個來源的數據

  4. 可解釋聚類:提供可理解的聚類解釋

結語

聚類是探索性數據分析和模式發現的重要工具。選擇合適的方法需要考慮:

  • 數據特征(大小、維度、分布)
  • 期望的簇形狀和結構
  • 計算資源限制
  • 結果可解釋性需求

理解不同算法的原理、優缺點和適用場景,結合適當的預處理和評估方法,才能在實際應用中發揮聚類的最大價值。隨著深度學習和大數據技術的發展,聚類方法將繼續演進,解決更復雜的現實世界問題。

KMean、KNN、Meanshift比較

  1. 采用Kmeans算法實現2D數據自動聚類,預測V1=80,v2=60數據類別
  2. 計算預測準確率,完成結果矯正
  3. 采用KNN,Meanshift算法,重復步驟1-2

代碼如下所示:

import os
import pandas as pd
import numpy as np
from sklearn.cluster import KMeans, MeanShift
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import warnings# 設置環境變量解決KMeans內存泄漏警告
os.environ['OMP_NUM_THREADS'] = '1'# 忽略特定警告
warnings.filterwarnings("ignore", category=UserWarning,message="KMeans is known to have a memory leak on Windows with MKL")# 加載數據
data = pd.read_csv('data.csv')
X = data[['V1', 'V2']].values
y_true = data['labels'].values
new_point = np.array([[80, 60]])# 1. KMeans 算法實現
kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)
kmeans_labels = kmeans.fit_predict(X)# 標簽對齊
label_map_kmeans = {}
for i in range(3):mask = (kmeans_labels == i)if sum(mask) > 0:true_label = np.argmax(np.bincount(y_true[mask]))label_map_kmeans[i] = true_label# 矯正標簽
kmeans_labels_corrected = np.array([label_map_kmeans[label] for label in kmeans_labels])
kmeans_pred = label_map_kmeans[kmeans.predict(new_point)[0]]# 計算準確率
kmeans_accuracy = accuracy_score(y_true, kmeans_labels_corrected)# 2. KNN 算法實現
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X, y_true)
knn_pred = knn.predict(new_point)[0]
knn_accuracy = accuracy_score(y_true, knn.predict(X))# 3. MeanShift 算法實現
ms = MeanShift(bandwidth=20, bin_seeding=True)
ms_labels = ms.fit_predict(X)# 標簽對齊
label_map_ms = {}
unique_labels = np.unique(ms_labels)
for label in unique_labels:mask = (ms_labels == label)if sum(mask) > 0:true_label = np.argmax(np.bincount(y_true[mask]))label_map_ms[label] = true_label# 矯正標簽
ms_labels_corrected = np.array([label_map_ms[label] for label in ms_labels])
ms_pred = label_map_ms[ms.predict(new_point)[0]]# 計算準確率
ms_accuracy = accuracy_score(y_true, ms_labels_corrected)# 4. 數據可視化
colors = ['#FF5733', '#33FF57', '#3357FF']  # 紅, 綠, 藍
cmap = ListedColormap(colors)plt.figure(figsize=(18, 12))# 1. 原始數據分布
plt.subplot(2, 2, 1)
plt.scatter(X[:, 0], X[:, 1], c=y_true, cmap=cmap, s=15, alpha=0.7)
plt.scatter(80, 60, c='gold', marker='*', s=300, edgecolor='black')
plt.title('Original Data Distribution')
plt.xlabel('V1')
plt.ylabel('V2')
plt.grid(alpha=0.3)# 2. KMeans聚類結果
plt.subplot(2, 2, 2)
plt.scatter(X[:, 0], X[:, 1], c=kmeans_labels_corrected, cmap=cmap, s=15, alpha=0.7)
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],c='black', marker='X', s=200, label='Centroids')
plt.scatter(80, 60, c='gold', marker='*', s=300, edgecolor='black')
plt.title(f'KMeans Clustering (Acc: {kmeans_accuracy:.2%})\nPredicted Class: {kmeans_pred}')
plt.xlabel('V1')
plt.ylabel('V2')
plt.grid(alpha=0.3)
plt.legend()# 3. KNN分類結果
plt.subplot(2, 2, 3)
x_min, x_max = X[:, 0].min() - 10, X[:, 0].max() + 10
y_min, y_max = X[:, 1].min() - 10, X[:, 1].max() + 10
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.5), np.arange(y_min, y_max, 0.5))
Z = knn.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.3, cmap=cmap)
plt.scatter(X[:, 0], X[:, 1], c=y_true, cmap=cmap, s=15, edgecolor='k', alpha=0.7)
plt.scatter(80, 60, c='gold', marker='*', s=300, edgecolor='black')
plt.title(f'KNN Classification (Acc: {knn_accuracy:.2%})\nPredicted Class: {knn_pred}')
plt.xlabel('V1')
plt.ylabel('V2')
plt.grid(alpha=0.3)# 4. MeanShift聚類結果
plt.subplot(2, 2, 4)
plt.scatter(X[:, 0], X[:, 1], c=ms_labels_corrected, cmap=cmap, s=15, alpha=0.7)
plt.scatter(ms.cluster_centers_[:, 0], ms.cluster_centers_[:, 1],c='black', marker='X', s=200, label='Centroids')
plt.scatter(80, 60, c='gold', marker='*', s=300, edgecolor='black')
plt.title(f'MeanShift Clustering (Acc: {ms_accuracy:.2%})\nPredicted Class: {ms_pred}')
plt.xlabel('V1')
plt.ylabel('V2')
plt.grid(alpha=0.3)
plt.legend()plt.suptitle('2D Data Clustering Comparison', fontsize=16, y=0.98)
plt.tight_layout()
plt.savefig('clustering_comparison.png', dpi=300)
plt.show()# 打印結果
print("="*50)
print(f"KMeans 結果: 準確率 = {kmeans_accuracy:.2%}, 新點(80,60)預測 = {kmeans_pred}")
print(f"KNN 結果:     準確率 = {knn_accuracy:.2%}, 新點(80,60)預測 = {knn_pred}")
print(f"MeanShift 結果: 準確率 = {ms_accuracy:.2%}, 新點(80,60)預測 = {ms_pred}")
print("="*50)

輸出如下:

==================================================
KMeans 結果: 準確率 = 99.70%, 新點(80,60)預測 = 2
KNN 結果:     準確率 = 99.93%, 新點(80,60)預測 = 2
MeanShift 結果: 準確率 = 99.70%, 新點(80,60)預測 = 2
==================================================

效果如下圖所示:

在這里插入圖片描述

關于

?QQ:806797785

??倉庫地址:https://gitee.com/gaogzhen

??倉庫地址:https://github.com/gaogzhen

[1]AI人工智能從入門到精通全套教程[CP/OL].

[2]deepseek[CP/OL].

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89717.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89717.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基礎神經網絡模型搭建

nn 包提供通用深度學習網絡的模塊集合,接收輸入張量,計算輸出張量,并保存權重。通常使用兩種途徑搭建 PyTorch 中的模型:nn.Sequential和 nn.Module。 nn.Sequential通過線性層有序組合搭建模型;nn.Module通過__init__…

基于單片機出租車計價器設計

傳送門 👉👉👉👉其他作品題目速選一覽表 👉👉👉👉其他作品題目功能速覽 概述 本設計實現了一種基于單片機的智能化出租車計價系統。系統以單片機為核心處理器,集成…

134. Java 泛型 - 上限通配符

文章目錄134. Java 泛型 - 上限通配符 (? extends T)**1. 什么是上限通配符 (? extends T)?****2. 為什么使用 ? extends T?****3. 示例:使用 ? extends T 進行數據讀取****? 示例 1:計算數值列表的總和****4. 注意事項&…

【1】YOLOv13 AI大模型-可視化圖形用戶(GUI)界面系統開發

【文章內容適用于任意目標檢測任務】【GUI界面系統不局限于YOLOV13,主流YOLO系列模型同樣適用】本文以車輛行人檢測為背景,介紹基于【YOLOV13模型】和【AI大模型】的圖形用戶(GUI)界面系統的開發。助力大論文實現目標檢測模型的應…

小程序常用api

1. wx.request - 發起網絡請求 用于向服務器發送 HTTP 請求,獲取數據或提交表單。 // 示例:GET 請求獲取數據 wx.request({url: https://api.example.com/data, // 替換為實際 API 地址method: GET,success: (res) > {console.log(請求成功, res.da…

PaliGemma 2-輕量級開放式視覺語言模型

PaliGemma 2是輕量級開放式視覺語言模型 (VLM),靈感源自 PaLI-3,基于 SigLIP 視覺模型和 Gemma 語言模型等開放式組件。PaliGemma 同時接受圖片和文本作為輸入,并且可以回答有關圖片的詳細問題和背景信息。PaliGemma 2 提供 30 億、100 億和 …

騰訊云云服務器深度介紹

以下是圍繞騰訊云云服務器(CVM)的詳細介紹與推薦文章,結合其核心優勢、應用場景及技術特性,為不同用戶群體提供參考: 🚀 一、產品定位與核心價值 騰訊云云服務器(Cloud Virtual Machine, CVM&a…

Ceph OSD.419 故障分析

Ceph OSD.419 故障分析 1. 問題描述 在 Ceph 存儲集群中,OSD.419 無法正常啟動,系統日志顯示服務反復重啟失敗。 2. 初始狀態分析 觀察到 OSD.419 服務啟動失敗的系統狀態: systemctl status ceph-osd419 ● ceph-osd419.service - Ceph obje…

MySQL持久化原理及其常見問題

目錄 MySQL刷盤原理 臟頁和干凈頁 MySQL出現短暫的堵塞SQL現象 情況分析 應對措施 數據庫表中數據刪除原理 刪除表中數據數據庫空間大小不會改變 情況分析 應對措施 MySQL刷盤原理 一般主要分為兩個步驟 內存更新和 redo log 記錄是同一事務修改的兩個必要操作&#…

VSCode中Cline無法正確讀取終端的問題解決

出現的問題是:Cline 無法正確讀取終端輸出。 Shell Integration Unavailable Cline won’t be able to view the command’s output. Please update VSCode (CMD/CTRL Shift P → “Update”) and make sure you’re using a supported shell: zsh, bash, fish, o…

scalelsd 筆記 線段識別 本地部署 模型架構

ant-research/scalelsd | DeepWiki https://arxiv.org/html/2506.09369?_immersive_translate_auto_translate1 https://gitee.com/njsgcs/scalelsd https://github.com/ant-research/scalelsd https://huggingface.co/cherubicxn/scalelsd 模型鏈接: https…

Python, C ++開發個體戶/個人品牌打造APP

個體戶/個人品牌打造APP開發方案(Python C)一、技術選型與分工1. Python- 核心場景:后端API開發、數據處理、內容管理、第三方服務集成(如社交媒體分享、支付接口)。- 優勢:開發效率高,豐富的庫…

SQLAlchemy 常見問題筆記

文章目錄SQLAlchemy Session對象如何操作數據庫SQLAlchemy非序列化對象如何返回1.問題分析2.解決方案方法1:使用 Pydantic 響應模型(推薦)方法2:手動轉換為字典(簡單快速)方法3:使用 SQLAlchemy…

Shell腳本-uniq工具

一、前言在 Linux/Unix 系統中,uniq 是一個非常實用的文本處理命令,用于對重復的行進行統計、去重和篩選。它通常與 sort 搭配使用,以實現高效的文本數據清洗與統計分析。無論是做日志分析、訪問頻率統計,還是編寫自動化腳本&…

氛圍編碼(Vice Coding)的工具選擇方式

一、前言 在寫作過程中,我受益于若干優秀的博客分享,它們給予我寶貴的啟發: 《5分鐘選對AI編輯器,每天節省2小時開發時間讓你早下班!》:https://mp.weixin.qq.com/s/f0Zm3uPTcNz30oxKwf1OQQ 二、AI編輯的…

[硬件電路-57]:根據電子元器件的受控程度,可以把電子元器件分為:不受控、半受控、完全受控三種大類

根據電子元器件的受控程度,可將其分為不受控、半受控、完全受控三大類。這種分類基于元器件的工作狀態是否需要外部信號(如電壓、電流、光、熱等)的主動調控,以及調控的精確性和靈活性。以下是具體分類及實例說明:一、…

基于Pytorch的人臉識別程序

人臉識別原理詳解人臉識別是模式識別和計算機視覺領域的重要研究方向,其目標是從圖像或視頻中識別出特定個體的身份。現代人臉識別技術主要基于深度學習方法,特別是卷積神經網絡 (CNN),下面從多個維度詳細解析其原理:1. 人臉識別的…

ubuntu 開啟ssh踩坑之旅

文章目錄確認當前用戶為普通用戶 or root命令使用ssh還是sshd服務名稱的由來apt update和apt upgrade的關系apt upgrade報錯:“E: 您在 /var/cache/apt/archives/ 上沒有足夠的可用空間”開啟ssh步驟錯誤排查查看日志修改sshd_config文件允許防火墻通過22端口確認當…

力扣:動態規劃java

sub07 線性DP - O(1) 狀態轉移2_嗶哩嗶哩_bilibili 跳樓梯 class Solution {public int climbStairs(int n) {if (n < 1) {return 1; // 處理邊界情況}int[] dp new int[n 1]; // 創建長度為n1的數組&#xff0c;比方說跳二級樓梯dp[0] 1; // 初始值設定dp[1] 1;for (…

React Native打開相冊選擇圖片或拍照 -- react-native-image-picker

官方文檔&#xff1a;https://www.npmjs.com/package/react-native-image-picker 場景&#xff1a;點擊按鈕打開相冊選擇圖片或者點擊按鈕拍照 import { launchCamera, launchImageLibrary } from react-native-image-picker;// ... <TouchableOpacityactiveOpacity{0.7}o…