精通分類:解析Scikit-learn中的KNN、樸素貝葉斯與決策樹(含隨機森林)

在機器學習領域,分類任務占據核心地位。Scikit-learn作為Python的機器學習利器,提供了豐富高效的分類算法。現在進行初步探討三種經典算法:K最近鄰(KNN)、樸素貝葉斯(Naive Bayes)和決策樹(Decision Tree),并延伸至集成方法隨機森林(Random Forest)


一、K最近鄰(KNN):基于實例的惰性學習

算法原理

KNN是一種典型的惰性學習(Lazy Learning) 算法。其核心思想是:相似的數據點擁有相似的標簽。預測新樣本時,算法在訓練集中找到與其最接近的K個鄰居,通過投票(分類)或平均(回歸)得出結果。

比如: 有10000個樣本,選出7個到樣本A的距離最近的,然后這7個樣本中假設:類別1有2個,類別2有3個,類別3有2個.那么就認為A樣本屬于類別2,因為它的7個鄰居中 類別2最多(近朱者赤近墨者黑)

再比如使用KNN算法預測《唐人街探案》電影屬于哪種類型?分別計算每個電影和預測電影的距離然后求解:
在這里插入圖片描述
其中原理也很簡單,模型會通過給出的其余電影的每種鏡頭數量來計算唐探和每一個的距離,選出前k個電影,再綜合判斷唐探的類型。
在這里插入圖片描述

KNN算法API使用:

from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split# 加載數據
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)# 創建KNN模型(k=5,使用歐氏距離)
knn = KNeighborsClassifier(n_neighbors=5, metric='euclidean')
knn.fit(X_train, y_train)print("KNN準確率:", knn.score(X_test, y_test))

關鍵缺點與挑戰

  1. 計算成本高:預測時需計算新樣本與所有訓練樣本的距離,大數據集上效率低,使得KNN算法的訓練成本低,預測成本高。因為訓練只需要保存記錄訓練數據。
  2. 維度災難:高維空間中距離度量失效,分類性能急劇下降。簡而言之就是,當預測數據是極大的數據,如預測生物細胞特征差別等等,這一類數據往往特征差距數據量極大,當每一個樣本的差距都上億的,這種差距就沒有代表性。就好像你擁有馬爸爸的資產后掉了幾塊錢,幾十塊錢不會有多大心理波動。
  3. 特征縮放敏感:不同量綱的特征需標準化(如StandardScaler)。
  4. 類別不平衡敏感:多數類易主導投票結果。

模型選擇與調優

  • K值選擇:過小(k=1)導致過擬合、噪聲敏感;過大使決策邊界模糊。通過交叉驗證,超參數搜索選擇最優k:
    from sklearn.model_selection import GridSearchCV
    param_grid = {'n_neighbors': range(1, 20)}
    grid_search = GridSearchCV(KNeighborsClassifier(), param_grid, cv=5)
    grid_search.fit(X_train, y_train)
    print("最優K值:", grid_search.best_params_['n_neighbors'])
    
  • 距離度量:歐氏距離(連續特征)、曼哈頓距離(高維)、余弦相似度(文本)等。
  • 加速策略:使用KDTreeBallTree數據結構(通過algorithm參數指定)。

二、樸素貝葉斯:概率推理的高效引擎

算法原理與貝葉斯推理

假設現在我們有一個數據集,它由兩類數據組成,數據分布如下圖所示:在這里插入圖片描述
我們現在用p1(x,y)表示數據點(x,y)屬于類別1(圖中紅色圓點表示的類別)的概率,用p2(x,y)表示數據點(x,y)屬于類別2(圖中藍色三角形表示的類別)的概率,那么對于一個新數據點(x,y),可以用下面的規則來判斷它的類別:

  • 如果p1(x,y)>p2(x,y),那么類別為1
  • 如果p1(x,y)<p2(x,y),那么類別為2

也就是說,我們會選擇高概率對應的類別。這就是貝葉斯決策理論的核心思想,即選擇具有最高概率的決策。已經了解了貝葉斯決策理論的核心思想,那么接下來,就是學習如何計算p1和p2概率。

條件概率

在學習計算p1 和p2概率之前,我們需要了解什么是條件概率(Conditional probability),就是指在事件B發生的情況下,事件A發生的概率,用P(A|B)來表示。

在這里插入圖片描述
根據文氏圖,可以很清楚地看到在事件B發生的情況下,事件A發生的概率就是P(A∩B)除以P(B)。
𝑃(𝐴|𝐵)=𝑃(𝐴∩𝐵)/𝑃(𝐵)
因此,
𝑃(𝐴∩𝐵)=𝑃(𝐴|𝐵)𝑃(𝐵)
同理可得,
𝑃(𝐴∩𝐵)=𝑃(𝐵|𝐴)𝑃(𝐴)

𝑃(𝐴|𝐵)=𝑃(B|A)𝑃(𝐴)/𝑃(𝐵)
這就是條件概率的計算公式。

貝葉斯推斷

對條件概率公式進行變形,可以得到如下形式:

我們把P(A)稱為"先驗概率"(Prior probability),即在B事件發生之前,我們對A事件概率的一個判斷。

P(A|B)稱為"后驗概率"(Posterior probability),即在B事件發生之后,我們對A事件概率的重新評估。

P(B|A)/P(B)稱為"可能性函數"(Likelyhood),這是一個調整因子,使得預估概率更接近真實概率。

所以,條件概率可以理解成下面的式子:

后驗概率 = 先驗概率x調整因子

這就是貝葉斯推斷的含義。我們先預估一個"先驗概率",然后加入實驗結果,看這個實驗到底是增強還是削弱了"先驗概率",由此得到更接近事實的"后驗概率"。

樸素貝葉斯推斷

理解了貝葉斯推斷,那么讓我們繼續看看樸素貝葉斯。貝葉斯和樸素貝葉斯的概念是不同的,區別就在于“樸素”二字,樸素貝葉斯對條件概率分布做了條件獨立性的假設。 比如下面的公式,假設有n個特征:

根據貝葉斯定理,后驗概率 P(a|X) 可以表示為:

P(a∣X)=P(X∣a)P(a)P(X)P(a|X) = \frac{P(X|a)P(a)}{P(X)}P(aX)=P(X)P(Xa)P(a)?

其中:

  • P(X|a) 是給定類別 ( a ) 下觀測到特征向量 X=(x1, x2, …, xn) 的概率;
  • P(a) 是類別 a 的先驗概率;
  • P(X) 是觀測到特征向量 X 的邊緣概率,通常作為歸一化常數處理。

樸素貝葉斯分類器的關鍵假設是特征之間的條件獨立性,即給定類別 a ,特征 xix_ixi?xjx_jxj? (其中 i≠ji \neq ji=j 相互獨立。)

因此,我們可以將聯合概率 P(X|a) 分解為各個特征的概率乘積:

P(X∣a)=P(x1,x2,...,xn∣a)=P(x1∣a)P(x2∣a)...P(xn∣a)P(X|a) = P(x_1, x_2, ..., x_n|a) = P(x_1|a)P(x_2|a)...P(x_n|a)P(Xa)=P(x1?,x2?,...,xn?a)=P(x1?a)P(x2?a)...P(xn?a)

將這個條件獨立性假設應用于貝葉斯公式,我們得到:

P(a∣X)=P(x1∣a)P(x2∣a)...P(xn∣a)P(a)P(X)P(a|X) = \frac{P(x_1|a)P(x_2|a)...P(x_n|a)P(a)}{P(X)}P(aX)=P(X)P(x1?a)P(x2?a)...P(xn?a)P(a)?

這樣,樸素貝葉斯分類器就可以通過計算每種可能類別的條件概率和先驗概率,然后選擇具有最高概率的類別作為預測結果。

sklearn中的樸素貝葉斯分類器

  1. GaussianNB:假設連續特征服從高斯分布。
  2. MultinomialNB:適用于離散計數(如文本詞頻)。
  3. BernoulliNB:二值特征(如文本是否出現某詞)。

平滑系數(Laplace Smoothing)
解決零概率問題:當訓練集中某特征未在某個類中出現時,P(特征|類)=0會導致整個后驗概率為0。
平滑技術通過在計數中添加一個常數α(通常為1)避免此問題:

from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer# 文本分類示例
texts = ["good movie", "not good", "bad plot"]
y = [1, 0, 0] # 1:正面, 0:負面vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)# 使用平滑系數alpha=1.0(默認)
nb = MultinomialNB(alpha=1.0)
nb.fit(X, y)test_text = ["good plot"]
test_X = vectorizer.transform(test_text)
print("預測類別:", nb.predict(test_X))  # 輸出: [1]

三、決策樹:直觀的規則生成器

決策樹的建立:核心是特征選擇

選擇最佳分裂特征以最大化數據“純度”提升。常用準則:
信息增益(Information Gain)
基于信息熵(Entropy):
**Entropy(D) = -Σ(p? * log?(p?))**

信息增益 = Entropy(父節點) - Σ[(|D?|/|D|) * Entropy(子節點?)]

偏向選擇取值較多的特征
信息增益決策樹傾向于選擇取值較多的屬性,在有些情況下這類屬性可能不會提供太多有價值的信息,算法只能對描述屬性為離散型屬性的數據集構造決策樹。

根據以下信息構建一棵預測是否貸款的決策樹。我們可以看到有4個影響因素:職業,年齡,收入和學歷。

職業年齡收入學歷是否貸款
1工人365500高中
2工人422800初中
3白領453300小學
4白領2510000本科
5白領328000碩士
6白領2813000博士

第一步,計算根節點的信息熵

上表根據是否貸款把樣本分成2類樣本,"是"占4/6=2/3, "否"占2/6=1/3,

所以在這里插入圖片描述

第二步,計算屬性的信息增益

<1> "職業"屬性的信息增益在這里插入圖片描述

在職業中,工人占1/3, 工人中,是否代款各占1/2, 所以有在這里插入圖片描述
,

在職業中,白領占2/3, 白領中,是貸款占3/4, 不貸款占1/4, 所以有在這里插入圖片描述

所以有 在這里插入圖片描述

最后得到職業屬性的信息增益為:在這里插入圖片描述

<2>" 年齡"屬性的信息增益(以35歲為界)

在這里插入圖片描述

<3> "收入"屬性的信息增益(以10000為界,大于等于10000為一類)

在這里插入圖片描述

<4> "學歷"屬性的信息增益(以高中為界, 大于等于高中的為一類)

在這里插入圖片描述

注意:  以上年齡使用35為界,收入使用10000為界,學歷使用高中為界,實計API使用中,會有一個參數"深度", 屬性中具體以多少為界會被根據深度調整。

第三步, 劃分屬性

對比屬性信息增益發現,"收入"和"學歷"相等,并且是最高的,所以我們就可以選擇"學歷"或"收入"作為第一個

決策樹的節點, 接下來我們繼續重復1,2的做法繼續尋找合適的屬性節點
在這里插入圖片描述

基于基尼指數決策樹的建立(了解)

基尼指數**(Gini Index)是決策樹算法中用于評估數據集純度的一種度量,基尼指數衡量的是數據集的不純度,或者說分類的不確定性。在構建決策樹時,基尼指數被用來決定如何對數據集進行最優劃分,以減少不純度。

基尼指數的計算

對于一個二分類問題,如果一個節點包含的樣本屬于正類的概率是 §,則屬于負類的概率是 (1-p)。那么,這個節點的基尼指數 (Gini§) 定義為:

Gini(p)=1?p2?(1?p)2=2p(1?p)Gini(p) = 1 - p^2 - (1-p)^2 = 2p(1-p)Gini(p)=1?p2?(1?p)2=2p(1?p)

對于多分類問題,如果一個節點包含的樣本屬于第 k 類的概率是 pkp_kpk?,則節點的基尼指數定義為:

Gini(p)=1?∑k=1Kpk2Gini(p) = 1 - \sum_{k=1}^{K} p_k^2Gini(p)=1?k=1K?pk2?

基尼指數的意義

  • 當一個節點的所有樣本都屬于同一類別時,基尼指數為 0,表示純度最高。
  • 當一個節點的樣本均勻分布在所有類別時,基尼指數最大,表示純度最低。

決策樹優點:
? 可視化 - 可解釋能力-對算力要求低
決策樹缺點:
? 易產生過擬合,所以不要把深度調整太大了。

決策樹API使用

class sklearn.tree.DecisionTreeClassifier(…)
參數:
criterion “gini” "entropy” 默認為=“gini”
當criterion取值為"gini"時采用 基尼不純度(Gini impurity)算法構造決策樹,
當criterion取值為"entropy”時采用信息增益( information gain)算法構造決策樹.
max_depth int, 默認為=None 樹的最大深度

可視化決策樹
function sklearn.tree.export_graphviz(estimator, out_file=“iris_tree.dot”, feature_names=iris.feature_names)
參數:
estimator決策樹預估器
out_file生成的文檔
feature_names節點特征屬性名
功能:
把生成的文檔打開,復制出內容粘貼到"http://webgraphviz.com/"中,點擊"generate Graph"會生成一個樹型的決策樹圖

這里使用決策樹對sklearn本地分類數據集鳶尾花進行分類來作為實例:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.tree import DecisionTreeClassifier, export_graphviz# 1)獲取數據集
iris = load_iris()# 2)劃分數據集
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=22)#3)標準化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)# 4)決策樹預估器
estimator = DecisionTreeClassifier(criterion="entropy")estimator.fit(x_train, y_train)# 5)模型評估,計算準確率
score = estimator.score(x_test, y_test)
print("準確率為:\n", score)# 6)預測
index=estimator.predict([[2,2,3,1]])
print("預測:\n",index,iris.target_names,iris.target_names[index])# 可視化決策樹
export_graphviz(estimator, out_file="iris_tree.dot", feature_names=iris.feature_names)

把文件"iris_tree.dot"內容粘貼到"http://webgraphviz.com/"點擊"generate Graph"決策樹圖
在這里插入圖片描述

關鍵參數解析

  • max_depth:控制樹復雜度,防止過擬合的核心參數。
  • min_samples_split/min_samples_leaf:限制節點繼續分裂的條件。
  • ccp_alpha:代價復雜度剪枝參數(Post-pruning)。

四、集成學習之隨機森林:決策樹的威力升級

算法原理

在這里插入圖片描述

  • 隨機: 特征隨機,訓練集隨機
    • 樣本:對于一個總體訓練集T,T中共有N個樣本,每次有放回地隨機選擇n個樣本。用這n個樣本來訓練一個決策樹。
    • 特征:假設訓練集的特征個數為d,每次僅選擇k(k<d)個來構建決策樹。
  • 森林: 多個決策樹分類器構成的分類器, 因為隨機,所以可以生成多個決策樹
  • 處理具有高維特征的輸入樣本,而且不需要降維
  • 使用平均或者投票來提高預測精度和控制過擬合

核心思想

  1. Bagging(Bootstrap Aggregating)
    從訓練集有放回隨機抽樣生成多個子集,分別訓練基模型。
  2. 隨機特征子空間
    每個決策樹分裂時,僅考慮隨機選取的一部分特征(如max_features='sqrt')。

為什么有效?

  • 降低方差:通過平均多個獨立訓練的樹,減少模型對訓練數據的敏感度。
  • 提高泛化能力:特征隨機性增加了模型的多樣性。

sklearn實現與優勢

from sklearn.ensemble import RandomForestClassifierrf = RandomForestClassifier(n_estimators=100,      # 森林中樹的數量criterion='gini',       # 分裂準則max_depth=None,         # 樹可生長到最大深度(常不限制,靠其他參數剪枝)min_samples_split=2,min_samples_leaf=1,max_features='auto',   # 通常為 'sqrt' (特征總數的平方根)bootstrap=True,         # 使用bootstrap抽樣oob_score=True,        # 使用袋外樣本評估模型n_jobs=-1,             # 使用所有CPU核心random_state=42
)
rf.fit(X_train, y_train)print("袋外估計準確率:", rf.oob_score_)

關鍵優勢

  • 顯著提升預測準確性(相比單棵決策樹)。
  • 自帶特征重要性評估(rf.feature_importances_)。
  • 對部分特征缺失、異常值不敏感。
  • 袋外樣本(OOB)提供內置驗證。

五、算法對比與選擇指南

特性KNN樸素貝葉斯決策樹隨機森林
學習類型惰性學習渴望學習渴望學習集成學習(渴望)
訓練速度快(無顯式訓練)非常快較慢(需訓練多棵樹)
預測速度(需計算距離)中等(取決于樹數量)
可解釋性中等(概率)(規則清晰)低(整體模型)
對數據假設強(特征獨立)
處理高維數據差(維度災難)好(文本分類表現佳)中等
抗噪聲/過擬合敏感(需調k)穩健(依賴分布假設)易過擬合(需剪枝)(Bagging+隨機)
主要調優參數n_neighbors, metricalpha (平滑系數)max_depth, min_*n_estimators, max_features

場景推薦:

  • 追求極致速度/文本分類:樸素貝葉斯(特別是MultinomialNB)。
  • 需要可解釋性/簡單規則:決策樹(max_depth不宜過大)。
  • 平衡精度與效率/通用場景:隨機森林(首選)。
  • 小數據集/低維/需簡單基準:KNN(注意標準化和k選擇)。

結語

掌握KNN、樸素貝葉斯、決策樹及隨機森林的原理與實戰技巧,是構建高效分類系統的基石。理解算法背后的假設、優缺點及適用場景,結合Scikit-learn強大的API和調優工具(如GridSearchCV),能針對實際問題游刃有余地選擇與優化模型。沒有“最好”的算法,只有“最合適”的算法。持續探索不同模型在數據上的表現,是機器學習工程師的精進之道。

代碼實踐提示:本文所有代碼示例均基于scikit-learn 1.3+ 版本,運行前請確保安裝正確依賴(pip install scikit-learn matplotlib)。可視化決策樹需額外安裝graphviz

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

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

相關文章

Galaxea機器人由星海圖人工智能科技有限公司研發的高性能仿人形機器人

Galaxea機器人是由星海圖人工智能科技有限公司研發的高性能仿人形機器人&#xff0c;具有多種型號&#xff0c;包括Galaxea R1和Galaxea R1 Pro。以下是關于Galaxea機器人的詳細介紹&#xff1a; GitHub官網 產品特點 高自由度設計&#xff1a;Galaxea R1是一款全尺寸仿人型機…

python基礎:用戶輸入和 while 循環

一、input() 函數的工作原理input() 函數讓程序暫停運行&#xff0c;等待用戶輸入一些文本。獲取用戶輸入后&#xff0c;Python 將其賦給一個變量&#xff0c;以便使用。message input("Tell me something, and I will repeat it back to you: ") print(message) 結…

開啟云服務器mysql本地連接(is not allowed to connect to this mysql server)

is not allowed to connect tothis mmysql server 阿里云上安裝的mysql&#xff0c;發現用本地電腦的navicat鏈接不上。通過了解知道了原因&#xff0c;小二在此寫了一篇&#xff0c;省的以后自己在碰到。 錯誤如圖。 aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTU4MTU1My8…

電腦的時間同步電池壞掉了,每次開機都要調整時間

電腦的時間同步的電池沒電了&#xff0c;每天開機時間都不對&#xff0c;要打開時間同步按鈕來設置時間解決方案1.找到這個設置并打開&#xff0c;實際上&#xff0c;要打開這個界面&#xff0c;時間才會同步&#xff0c;可能是我的電腦原因&#xff0c;所以我沒辦法打開這個就…

mycat在游戲中的使用場景(郵件表,mysql集群,而不是郵件服)

其實還有一種是SharingJDBC&#xff0c;而且之間在B站的同學也是說用這個&#xff0c;但是我們目前項目郵件中用的卻是: mycat&#xff0c;為什么呢&#xff1f;mycat其實是中間件&#xff0c;是需要獨立部署的&#xff0c;是數據庫服務器這塊的代理&#xff0c;在應用層的話很…

TP-Link Archer C50路由器曝安全漏洞,硬編碼DES密鑰可解密敏感配置

漏洞概述CERT協調中心&#xff08;CERT/CC&#xff09;發布安全公告&#xff0c;披露TP-Link Archer C50路由器存在編號為CVE-2025-6982的漏洞。該漏洞源于路由器固件中使用了硬編碼的DES&#xff08;數據加密標準&#xff09;解密密鑰&#xff0c;這一設計缺陷使大量家庭和小型…

番茄項目3:完成了項目的數據庫設計

今天抽了會時間設計了下表結構&#xff0c;并選定的使用的數據庫&#xff0c;經過調查&#xff0c;我決定還是把數據存在數據庫中&#xff0c;因為寫SQL是我擅長的。 最終我選擇使用python自帶的sqlite來實現這個工具&#xff0c;具體建表語句如下&#xff1a; 基于AI生成&…

11、read_object_model_3d 讀取點云

個人理解 read_object_model_3d 這個Halcon算子中的xyz_map_width這個參數設置的目的就是,把讀取的點云數據中每一個點的XYZ坐標,生成一個對應的二維圖像,其中圖像中的坐標值就對應每一個點的索引坐標,而圖像中的灰度值就對應xyz坐標??(因為得到的是三通道圖像)!!并且根…

【人工智能-17】機器學習:KNN算法、模型選擇和調優、樸素貝葉斯分類

上一期【人工智能-16】機器學習&#xff1a;概念、工具介紹、數據集、特征工程 文章目錄一 、KNN算法1. 應用理由2. 原理核心&#xff1a;距離度量 多數投票/平均3. 優點和缺點二、模型選擇和調優1.使用理由2.原理核心&#xff1a;數據劃分與性能平均3.超參數搜索4. 應用場景總…

關于繼承的一些知識(C++)

當我們想要設計幾個類分別記錄老師&#xff0c;學生的個人信息時會發現&#xff0c;像姓名、地址、身份證號、電話等等記錄基礎信息的成員變量是都具有的&#xff0c;重復定義會顯得冗余&#xff0c;但同時它們兩者又具有不同的記錄信息的成員變量&#xff0c;像學生需要記錄學…

永磁同步電機無速度算法--脈振方波注入法

一、原理介紹為了實現表貼式永磁電機的低速運行&#xff0c;研究一種基于高頻方波測試信號注入的無位置零低速傳感器控制策略。選取注入到觀測直軸的脈振高頻方波信號&#xff0c; 該信號注入方案可以有效避免旋轉信號注入法在轉子交軸分量引起轉矩脈動&#xff0c; 提高系統的…

VSCode Python 與 C++ 聯合調試配置指南

VSCode Python 與 C 聯合調試配置指南 為了實現 Python 與 C 的聯合調試&#xff0c;需要正確配置 launch.json 文件&#xff0c;具體配置如下&#xff1a; {// IntelliSense 支持查看屬性描述// 更多信息請參考: https://go.microsoft.com/fwlink/?linkid830387"version…

stm32和freeRtos的can總線

STM32內置bxCAN外設&#xff08;CAN控制器、拓展CAN&#xff09;&#xff0c;支持CAN2.0A和2.0B(全部的CAN)&#xff0c;可以自動發送CAN報文和按照過濾器自動接收指定CAN報文&#xff0c;程序只需處理報文數據而無需關注總線的電平細節波特率最高可達1兆位/秒&#xff0c;高速…

充電樁與照明“聯動”創新:智慧燈桿破解新能源基建難題

伴隨新能源汽車保有量呈現出極為迅猛的爆發式增長態勢&#xff0c;充電基礎設施的建設已然逐步成為城市發展進程中不可或缺的剛性需求。國家政策鼓勵推進充電設施同城市基礎設施展開一體化的建設工作&#xff0c;同時大力鼓勵“諸如路燈、監控桿這類市政設施去整合充電相關功能…

datagrip連接mysql數據庫過程以及遇到的問題

如果遇到這種錯誤說明時區錯誤&#xff0c;解決方法 jdbc:mysql://localhost:3306?serverTimezoneGMTdatagrip連接mysql數據庫下一步

Vue 3.5 defineModel:讓組件開發效率提升 10 倍

簡介 defineModel 是 Vue 3.4 引入并在 Vue 3.5 中穩定的一個組合式 API&#xff0c;它簡化了組件的雙向數據綁定實現。在此之前&#xff0c;實現雙向綁定需要手動定義 props 和 emits&#xff0c;而 defineModel 將這個過程自動化&#xff0c;讓代碼更加簡潔和直觀。 主要特…

性能測試-性能測試中的經典面試題一

一、核心概念與流程類性能測試的核心類型與區別負載測試&#xff1a;逐步加壓&#xff0c;探測系統閾值&#xff08;如最大TPS/響應時間&#xff09;。壓力測試&#xff1a;超越閾值施壓&#xff0c;驗證系統崩潰點及恢復能力。穩定性測試&#xff1a;80%~90%峰值壓力持續運行&…

華為昇騰芯片:多模態模型國產化的硬核突破

前言 在當今數字化時代&#xff0c;人工智能技術的發展日新月異&#xff0c;多模態模型作為 AI 領域的重要發展方向&#xff0c;正逐漸改變著人們與計算機交互的方式以及眾多行業的運作模式。多模態模型能夠處理多種類型的數據&#xff0c;比如圖像、文本、語音等&#xff0c;從…

阿里智能AI框架Playground,即學即用

Spring AI Alibaba Playground 是 Spring AI Alibaba 社區以 Spring AI Alibaba 和 Spring AI 為框架搭建的 AI 應用。包含完善的前端 UI 后端實現&#xff0c;具備對話&#xff0c;圖片生成&#xff0c;工具調用&#xff0c;RAG&#xff0c;MCP 等眾多 AI 相關功能。在 playg…

智能Agent場景實戰指南 Day 28:Agent成本控制與商業模式

【智能Agent場景實戰指南 Day 28】Agent成本控制與商業模式 文章標簽 AI Agent, 成本優化, 商業模式, LLM應用, 企業級AI 文章簡述 本文是"智能Agent場景實戰指南"系列的第28天&#xff0c;聚焦智能Agent的成本控制與商業模式設計這一關鍵課題。文章首先分析了Ag…