新手村:邏輯回歸-理解04:熵是什么?

新手村:邏輯回歸04:熵是什么?

在這里插入圖片描述

熵是什么?

前置條件

在開始學習邏輯回歸中的熵理論之前,需要掌握以下基礎知識:

  1. 概率論與統計學

    • 概率分布(如伯努利分布、正態分布)。
    • 條件概率和貝葉斯定理。
    • 期望值和方差的基本概念。
  2. 線性代數

    • 向量和矩陣的基本運算。
    • 線性組合的概念。
  3. 微積分

    • 導數和偏導數的計算。
    • 極值問題和梯度下降的基本思想。
  4. 機器學習基礎

    • 分類與回歸的區別。
    • 基本的監督學習模型(如線性回歸)。
  5. Python編程

    • 熟悉NumPy和Pandas庫的基本操作。
    • 基本的Matplotlib可視化技能。

章節內容概述重要知識點通俗解釋知識點評分(1-5)
第1章:熵的基本概念介紹熵的定義及其在信息論中的意義。- 熵的數學定義
- 香農熵
- 聯合熵與條件熵
熵可以理解為“不確定性”的量化:信息越多,不確定性越低。5(核心概念)
第2章:交叉熵與對數損失函數講解交叉熵的定義及其在分類任務中的作用。- 交叉熵公式
- 對數損失函數
- 最大似然估計
交叉熵衡量預測分布與真實分布的距離,類似于“誤差”。5(核心概念)
第3章:邏輯回歸與熵的關系將熵理論應用于邏輯回歸模型。- Sigmoid函數
- 邏輯回歸的目標函數
- 損失函數優化
邏輯回歸通過最小化交叉熵來找到最佳參數,從而降低分類誤差。5(核心概念)
第4章:梯度下降與參數優化學習如何通過梯度下降優化邏輯回歸模型的參數。- 梯度下降算法
- 學習率選擇
- 收斂性分析
梯度下降像是“找最低點”,每一步都朝著減少誤差的方向前進。4(重要但不核心)
第5章:教學示例與代碼實現使用一個具體的數據集進行邏輯回歸建模。- 數據預處理
- 特征工程
- 模型訓練與評估
從數據到模型的完整流程,幫助理解理論與實踐的結合。4(重要但不核心)
第6章:后續練習題與進階學習提供練習題,并規劃下一階段的學習內容。- 練習題類型
- 進階資源推薦
- 下一階段目標
通過練習鞏固知識,并為更復雜的模型打下基礎。3(輔助內容)

第1章:熵的基本概念
?????? 1.1 熵的數學定義

是信息論中的一個重要概念,用于衡量隨機變量的不確定性
假設隨機變量 X X X 的概率分布為 P ( X = x i ) = p i P(X = x_i) = p_i P(X=xi?)=pi?,則熵 H ( X ) H(X) H(X) 定義為:

H ( X ) = ? ∑ i p i ln ? ( p i ) H(X) = -\sum_{i} p_i \ln(p_i) H(X)=?i?pi?ln(pi?)
其中, p i p_i pi? 是事件 x i x_i xi? 發生的概率, ln ? \ln ln 表示以2為底的對數。
示例字符串
example_string = "123123124351512431234123414321368969867898706785874674"
在這里插入圖片描述

通俗解釋
想象你正在猜一個骰子的結果。如果骰子是公平的(每個面的概率都是 1 / 6 1/6 1/6),那么不確定性最高;如果骰子被做了手腳(比如某一面的概率接近1),那么不確定性最低。熵就是用來量化這種不確定性的指標。

1.2 ??香農熵

香農熵是熵的一種形式,專門用于描述離散隨機變量的信息量

例如,對于二分類問題(如是否購買手機),伯努利分布的熵為:
H ( p ) = ? p log ? 2 ( p ) ? ( 1 ? p ) log ? 2 ( 1 ? p ) H(p) = -p \log_2(p) - (1-p) \log_2(1-p) H(p)=?plog2?(p)?(1?p)log2?(1?p)
其中 p p p 是事件發生的概率。

在這里插入圖片描述

通俗解釋
假設你正在預測一個人是否會點擊某個廣告。如果點擊的概率是0.5(完全隨機),那么不確定性最大;如果點擊的概率接近0或1(幾乎確定),那么不確定性最小。

1.3 聯合熵與條件熵

聯合熵 H ( X , Y ) H(X, Y) H(X,Y) 衡量兩個隨機變量 X X X Y Y Y 的聯合不確定性:
H ( X , Y ) = ? ∑ x , y P ( x , y ) log ? 2 ( P ( x , y ) ) H(X, Y) = -\sum_{x,y} P(x, y) \log_2(P(x, y)) H(X,Y)=?x,y?P(x,y)log2?(P(x,y))
條件熵 H ( Y ∣ X ) H(Y|X) H(YX) 衡量在已知 X X X 的情況下, Y Y Y 的剩余不確定性:
H ( Y ∣ X ) = ? ∑ x , y P ( x , y ) log ? 2 ( P ( y ∣ x ) ) H(Y|X) = -\sum_{x,y} P(x, y) \log_2(P(y|x)) H(YX)=?x,y?P(x,y)log2?(P(yx))

在這里插入圖片描述

通俗解釋
聯合熵就像是兩個人一起猜謎語時的總不確定性,而條件熵則是當你知道一部分答案后,剩下的不確定性。


??????第2章:交叉熵與對數損失函數
2.1 交叉熵公式

交叉熵衡量兩個概率分布之間的差異。假設真實分布為 P P P,預測分布為 Q Q Q,則交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 定義為:
H ( P , Q ) = ? ∑ i P ( i ) log ? ( Q ( i ) ) H(P, Q) = -\sum_{i} P(i) \log(Q(i)) H(P,Q)=?i?P(i)log(Q(i))
在這里插入圖片描述

通俗解釋
交叉熵可以看作是“預測錯誤的成本”。如果你的預測分布越接近真實分布,交叉熵就越小;反之,預測分布偏離真實分布越多,交叉熵就越大。

2.2 對數損失函數

在邏輯回歸中,對數損失函數是對交叉熵的具體應用。對于二分類問題,對數損失函數為:

L ( w ) = ? 1 N ∑ i = 1 N [ y i log ? ( y ^ i ) + ( 1 ? y i ) log ? ( 1 ? y ^ i ) ] L(w) = -\frac{1}{N} \sum_{i=1}^N [y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)] L(w)=?N1?i=1N?[yi?log(y^?i?)+(1?yi?)log(1?y^?i?)]
其中 y i y_i yi? 是真實標簽, y ^ i \hat{y}_i y^?i? 是預測概率。

通俗解釋
在這里插入圖片描述

對數損失函數衡量的是模型預測的準確性

  • 如果預測概率 y ^ \hat{y} y^?接近真實標簽(如 y = 1 y=1 y=1 y ^ = 0.9 \hat{y}=0.9 y^?=0.9),損失會很小;
  • 如果預測概率 y ^ \hat{y} y^?遠離真實標簽(如 y = 1 y=1 y=1 y ^ = 0.1 \hat{y}=0.1 y^?=0.1),損失會很大。
??2.3 最大似然估計

新手村:邏輯回歸-理解03:邏輯回歸中的最大似然函數

邏輯回歸通過最大化似然函數(等價于最小化交叉熵)來優化參數。似然函數 L ( w ) L(w) L(w) 定義為:

L ( w ) = ∏ i = 1 N P ( y i ∣ x i ; w , b ) L(w) = \prod_{i=1}^N P(y_i|x_i; w,b) L(w)=i=1N?P(yi?xi?;w,b)
取對數后得到對數似然函數:
log ? L ( w ) = ∑ i = 1 N [ y i log ? ( y ^ i ) + ( 1 ? y i ) log ? ( 1 ? y ^ i ) ] \log L(w) = \sum_{i=1}^N [y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)] logL(w)=i=1N?[yi?log(y^?i?)+(1?yi?)log(1?y^?i?)]

通俗解釋
最大似然估計的目標是找到一組參數,使得模型預測的概率分布最接近真實分布。


??第3章:邏輯回歸與熵的關系
3.1 Sigmoid函數

Sigmoid函數將線性組合 z = w ? x + b z = w \cdot x + b z=w?x+b 映射到概率空間:
σ ( z ) = 1 1 + e ? z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e?z1?

通俗解釋
Sigmoid函數就像一個“壓縮器”,把任何實數壓縮到0到1之間,方便解釋為概率。

#####???? 3.2 邏輯回歸的目標函數
邏輯回歸的目標是最小化對數損失函數(即最大化似然函數)。通過梯度下降法不斷調整參數 w w w b b b,使預測概率 y ^ \hat{y} y^? 更接近真實標簽 y y y

通俗解釋
邏輯回歸的核心思想是通過調整模型參數,讓預測結果盡可能準確,同時用交叉熵來衡量預測的誤差。


第4章:梯度下降與參數優化
4.1 梯度下降算法

梯度下降是一種迭代優化算法,用于最小化損失函數。更新規則為:
w : = w ? η ? ? L ? w w := w - \eta \cdot \frac{\partial L}{\partial w} w:=w?η??w?L?
其中 η \eta η 是學習率。

通俗解釋
梯度下降就像是沿著山坡向下走,每次邁出一步,直到找到最低點。

4.2 學習率選擇

學習率 η \eta η 決定了每次更新的步長。如果學習率過大,可能會錯過最優解;如果過小,收斂速度會很慢。

通俗解釋
學習率就像是走路的步伐大小,太大容易踩空,太小走得太慢。


第5章:教學示例與代碼實現
教學示例

假設我們有一個簡單的數據集,包含學生的考試成績和是否被錄取的信息。我們將使用邏輯回歸預測學生是否會被錄取。

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score# 數據集
data = {'Exam1': [45, 78, 65, 89, 90],'Exam2': [52, 89, 70, 95, 85],'Admitted': [0, 1, 0, 1, 1]
}# 數據預處理
X = np.array([[data['Exam1'][i], data['Exam2'][i]] for i in range(len(data['Exam1']))])
y = np.array(data['Admitted'])# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 訓練邏輯回歸模型
model = LogisticRegression()
model.fit(X_train, y_train)# 預測
y_pred = model.predict(X_test)# 評估
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

第6章:后續練習題與進階學習
練習題
  1. 使用自定義的梯度下降算法實現邏輯回歸。
  2. 修改上述代碼,嘗試添加多項式特征。
  3. 討論為什么邏輯回歸不能直接用于多分類問題。
進階學習內容
  • 支持向量機(SVM)。
  • 決策樹與隨機森林。
  • 神經網絡與深度學習。

術語與術語解釋

術語解釋
衡量隨機變量不確定性的指標。
交叉熵衡量兩個概率分布之間的差異。
對數損失函數在分類任務中常用的損失函數,基于交叉熵。
Sigmoid函數將任意實數映射到[0,1]區間的函數,用于概率估計。
梯度下降一種優化算法,用于最小化損失函數。

總結陳述

邏輯回歸中的熵理論是機器學習的重要基礎之一。通過學習熵、交叉熵以及它們在邏輯回歸中的應用,你可以更好地理解分類模型的工作原理。建議按照上述計劃逐步深入學習,并通過代碼實踐鞏固理論知識。

代碼

香農熵

import numpy as np
import matplotlib.pyplot as plt# 計算香農熵的函數
def shannon_entropy(p):if p == 0 or p == 1:return 0else:return - (p * np.log2(p) + (1-p) * np.log2(1-p))# 定義概率范圍從0到1
probabilities = np.linspace(0, 1, 400)
entropies = [shannon_entropy(p) for p in probabilities]# 繪制香農熵隨概率變化的曲線
plt.figure(figsize=(8, 6))
plt.plot(probabilities, entropies, label='香農熵')
plt.title('香農熵與事件發生概率的關系')
plt.xlabel('事件發生概率 (p)')
plt.ylabel('熵')
plt.grid(True)
plt.legend()
plt.show()
聯合熵和條件熵
import numpy as np
import matplotlib.pyplot as plt# 定義聯合概率分布P(x, y)
joint_prob = np.array([[0.1, 0.2], [0.3, 0.4]])# 計算邊緣概率P(x)和P(y)
marginal_X = joint_prob.sum(axis=1)  # P(x), 按列求和
marginal_Y = joint_prob.sum(axis=0)  # P(y), 按行求和# 計算條件概率P(y|x)
conditional_prob_Y_given_X = joint_prob / marginal_X[:, None]  # P(y|x)# 聯合熵H(X, Y)
def joint_entropy(joint_prob):non_zero_probs = joint_prob[joint_prob > 0]  # 過濾掉零概率項return -np.sum(non_zero_probs * np.log2(non_zero_probs))  # 條件熵H(Y|X)
def conditional_entropy(joint_prob, marginal_X):cond_ent = 0for i in range(joint_prob.shape[0]):  # 遍歷每個xpx = marginal_X[i]if px > 0:py_given_x = joint_prob[i] / px  # P(y|x)non_zero_py_given_x = py_given_x[py_given_x > 0]  # 過濾掉零概率項cond_ent -= px * np.sum(non_zero_py_given_x * np.log2(non_zero_py_given_x))return cond_ent# 計算聯合熵和條件熵
h_xy = joint_entropy(joint_prob)
h_y_given_x = conditional_entropy(joint_prob, marginal_X)# 打印結果
print(f"聯合熵 H(X, Y): {h_xy:.4f}")
print(f"條件熵 H(Y|X): {h_y_given_x:.4f}")# 可視化聯合概率分布和條件概率分布
fig, axes = plt.subplots(1, 2, figsize=(12, 5))# 繪制聯合概率分布熱力圖
im = axes[0].imshow(joint_prob, cmap='Blues', interpolation='nearest')
axes[0].set_title("聯合概率分布 P(x, y)")
axes[0].set_xlabel("Y")
axes[0].set_ylabel("X")
for (i, j), val in np.ndenumerate(joint_prob):axes[0].text(j, i, f"{val:.2f}", ha='center', va='center', color='black', fontsize=12)
fig.colorbar(im, ax=axes[0])# 繪制條件概率分布條形圖
bar_width = 0.35
indices = np.arange(len(marginal_X))
bars = []
for i in range(joint_prob.shape[1]):bar = axes[1].bar(indices + i * bar_width, conditional_prob_Y_given_X[:, i], bar_width, label=f"P(y={i}|x)")bars.append(bar)
axes[1].set_title("條件概率分布 P(y|x)")
axes[1].set_xticks(indices + bar_width / 2)
axes[1].set_xticklabels([f"x={i}" for i in indices])
axes[1].legend()plt.tight_layout()
plt.show()
交叉熵
import numpy as np
import matplotlib.pyplot as plt# 定義交叉熵函數
def cross_entropy(P, Q):"""計算交叉熵 H(P, Q):param P: 真實分布 (list 或 numpy array):param Q: 預測分布 (list 或 numpy array):return: 交叉熵值"""P = np.array(P)Q = np.array(Q)# 過濾掉Q中的零概率項以避免log(0)錯誤Q_nonzero_mask = Q > 0return -np.sum(P[Q_nonzero_mask] * np.log2(Q[Q_nonzero_mask]))# 示例的真實分布P
P = [0.5, 0.3, 0.2]# 構造一系列不同的預測分布Q,并計算對應的交叉熵
q1_values = np.linspace(0.01, 0.98, 100)  # 第一個分量q1從0.01到0.98
entropy_values = []for q1 in q1_values:q2 = (1 - q1) * 0.6  # 剩余概率按固定比例分配給q2和q3q3 = (1 - q1) * 0.4Q = [q1, q2, q3]entropy_values.append(cross_entropy(P, Q))# 找到最小交叉熵及其對應的Q
min_index = np.argmin(entropy_values)
optimal_q1 = q1_values[min_index]
optimal_Q = [optimal_q1, (1 - optimal_q1) * 0.6, (1 - optimal_q1) * 0.4]
min_cross_entropy = entropy_values[min_index]# 輸出最優解
print(f"最小交叉熵: {min_cross_entropy:.4f}")
print(f"對應的最優預測分布 Q: {optimal_Q}")# 可視化交叉熵隨q1變化的趨勢
plt.figure(figsize=(10, 6))
plt.plot(q1_values, entropy_values, label="交叉熵", color='blue')
plt.scatter(optimal_q1, min_cross_entropy, color='red', label=f"最小交叉熵 ({min_cross_entropy:.4f})", zorder=5)
plt.axvline(x=optimal_q1, color='gray', linestyle='--', linewidth=1)plt.title("交叉熵隨預測分布的第一個分量 $q_1$ 的變化", fontsize=16)
plt.xlabel("$q_1$", fontsize=14)
plt.ylabel("交叉熵值", fontsize=14)
plt.grid(True)
plt.legend(fontsize=12)
plt.tight_layout()
plt.show()

場景設定
假設我們有一個真實分布 P = [ 0.5 , 0.3 , 0.2 ] P = [0.5, 0.3, 0.2] P=[0.5,0.3,0.2],代表某個事件發生的三種可能性的概率。接著,我們嘗試使用不同的預測分布 Q Q Q 來逼近 P P P,并通過計算交叉熵來評估預測的準確性。

我們將逐步調整 Q Q Q的值,并觀察交叉熵如何變化。為了簡化問題,這里只調整 Q Q Q的第一個分量 q 1 q_1 q1?,其他分量按比例分配剩余概率。

在這里插入圖片描述

代碼解析

  1. 交叉熵公式

    • 函數 cross_entropy 根據公式 H ( P , Q ) = ? ∑ i P ( i ) log ? 2 ( Q ( i ) ) H(P, Q) = -\sum_i P(i) \log_2(Q(i)) H(P,Q)=?i?P(i)log2?(Q(i))實現。
    • 使用掩碼過濾掉 Q Q Q 中的所有零概率項,以避免出現 log ? ( 0 ) \log(0) log(0)錯誤。
  2. 構造預測分布

    • 我們讓 Q Q Q的第一個分量 q 1 q_1 q1? 在區間 [ 0.01 , 0.98 ] [0.01, 0.98] [0.01,0.98] 內變化。
    • 其他兩個分量 q 2 q_2 q2? q 3 q_3 q3? 按照固定的比值分配剩余概率( q 2 = 0.6 × ( 1 ? q 1 ) q_2 = 0.6 \times (1-q_1) q2?=0.6×(1?q1?) q 3 = 0.4 × ( 1 ? q 1 ) q_3 = 0.4 \times (1-q_1) q3?=0.4×(1?q1?))。
  3. 尋找最優解

    • 記錄每個 q 1 q_1 q1?對應的交叉熵值,并找出使交叉熵最小化的 q 1 q_1 q1?值。
    • 最優預測分布 Q Q Q應該接近真實分布 P P P

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

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

相關文章

STM32通用定時器結構框圖

STM32單片機快速入門 通用定時器框圖 TIM9和TIM12 通用定時器框圖 TIM9和TIM12 (二) 通用定時器框圖

3.28-2 jmeter讀取mysql

jmeter操作mysql 1.下載數據驅動,安裝數據驅動 (1)存放四個路徑 a.jre下的lib C:\Program Files\Java\jre1.8.0_60\lib (2)存放在jre 下的lib 中的ext 路徑: C:\Program Files\Java\jre1.8.0_60\lib\…

TDengine 中的保留關鍵詞

簡介 本節很重要,請大家收藏,避免在編寫程序的時候踩坑。因為關鍵字是被 TDengine 系統使用的,如果你在 SQL 中使用了保留關鍵詞,并且沒有被反引號包括時,會報語法錯誤,當你不知道這個是保留關鍵詞時&…

美攝科技開啟智能汽車車內互動及娛樂解決方案2.0

在科技飛速發展的今天,汽車已不再僅僅是簡單的代步工具,而是逐漸演變為集出行、娛樂、社交于一體的智能移動空間。美攝科技,作為前沿視覺技術與人工智能應用的領航者,憑借其卓越的技術實力和創新精神,攜手汽車行業&…

Postman CORS 測試完全指南:輕松模擬跨域請求,排查 CORS 相關問題

在使用 Postman 進行 API 測試時,通常不會遇到跨域問題,因為 Postman 是一個獨立的客戶端應用程序,不同于在瀏覽器中運行的 JavaScript 代碼,它沒有同源策略(SOP)的限制。跨域資源共享(CORS&…

基于SpringBoot和Vue的SQL TO API平臺的設計與實現

文章目錄 前言一、系統功能模塊二、數據庫設計1. 實體屬性圖1. 實體屬性圖1.1 職員表1.2 數據源配置表1.3 接口配置表1.4 請求記錄表 2. E-R圖 三、系統實現1. 登錄頁面2. 職員管理頁面1.1 創建用戶1.2 編輯用戶 2. 數據源管理2.1 創建數據源2.2 編輯數據源 3. 接口管理3.1 創建…

【Portainer】Docker可視化組件安裝

Portainer Portainer 是用于管理容器化環境的一體化平臺工程解決方案,提供廣泛的定制功能,以滿足個人開發人員和企業團隊的需求。 官方地址: https://www.portainer.io/ 安裝 在 WSL / Docker Desktop 上使用 Docker 安裝 Portainer CE 通過命令或UI頁…

Gateway實戰(二)、負載均衡

spring cloud- Gateway實戰二:負載均衡 負載均衡簡單了解一)、實操案例-自動負載均衡二)、實操案例-手動負載均衡1、手動負載均衡方式一2、手動負載均衡方式二負載均衡 簡單了解 我們引入負載均衡,主要是為了 讓網絡流量能均勻的分發到多個服務器上,以此來提高系統性能、…

MATLAB 2024b深度學習,圖神經網絡(GNN)

隨著人工智能技術向多學科交叉融合與工程實踐領域縱深發展,MATLAB 2024b深度學習工具箱通過架構創新與功能強化,為科研創新和行業應用提供了全棧式解決方案。本培訓基于該版本工具鏈的三大革新方向展開:一是構建覆蓋經典模型與前沿架構的體系…

unity中Xcharts圖表鼠標懸浮表現異常

鼠標懸浮在面板附近,只顯示單獨的一個項目 而且無論鼠標如何移動,根本沒有效果。 解決方案: 需要在對應的Canvas上綁定主相機才可以 鼠標移動到項目上就有信息展示了

使用Django創建項目及介紹

注意:創建項目之前先進入虛擬環境 第一步:創建 Django 項目 運行以下命令創建一個名為 myproject 的 Django 項目: django-admin startproject myproject 這會生成一個名為 myproject 的文件夾,結構如下: myproje…

CentOS 安裝LAMP全過程 - 完整步驟與最佳實踐

在開始搭建 LAMP 環境之前,需要確保系統已經滿足以下條件: 1、操作系統:CentOS 7 或 CentOS 8 2、網絡連接:系統必須能夠訪問互聯網以下載所需的軟件包 3、權限:需要 root 權限或者通過sudo 提權執行命令 先更新系…

Java基礎關鍵_031_反射(一)

目 錄 一、概述 二、獲取 Class 的四種方式 1.Class.forName("完整全限定類名") 2.getClass() 3.class 屬性 4.通過類加載器獲取 三、通過反射機制實例化對象 1.newInstance()(已過時) 2.配置文件利用反射機制實例化對象 四、反射 Cla…

MySQL高級語句深度解析與應用實踐

一、窗口函數:數據分析的利器 1. 窗口函數基礎概念 窗口函數(Window Function)是MySQL 8.0引入的強大特性,它可以在不減少行數的情況下對數據進行聚合計算和分析 SELECT employee_name,department,salary,RANK() OVER (PARTITION BY department ORDER…

【機器學習基礎 4】 Pandas庫

一、Pandas庫簡介 Pandas 是一個開源的 Python 數據分析庫,主要用于數據清洗、處理、探索與分析。其核心數據結構是 Series(一維數據)和 DataFrame(二維表格數據),可以讓我們高效地操作結構化數據。Pandas …

ETCD --- ?租約(Lease)?詳解

一、租約的核心概念 1. ?租約(Lease)? 一個租約是一個有時間限制的“授權”,綁定到鍵值對上。每個租約有一個唯一的ID(64位整數),通過etcdctl或客戶端API創建。創建租約時需指定TTL(Time-To-Live),即租約的有效期(單位:秒)。客戶端需定期向etcd發送續約(KeepAl…

33.[前端開發-JavaScript基礎]Day10-常見事件-鼠標事件-鍵盤事件-定時器-案例

1 window定時器 window定時器方法 setTimeout的使用 setInterval的使用 2 輪播消息提示 案例實戰一 – 輪播消息提示 3 關閉隱藏消息 案例實戰二 – 關閉隱藏消息 4 側邊欄展示 案例實戰三 – 側邊欄展示 5 tab切換實現 案例實戰四 – 登錄框(作業)…

react ant design樹穿梭框實現搜索并展開到子節點、同級節點選擇及同時選擇數量限制功能

功能點: 點擊節點前的箭頭,可以手動展開或折疊該節點的子節點。在搜索框中輸入關鍵詞,匹配的節點及其父節點會自動展開。清空搜索框后,恢復到用戶手動控制的展開狀態。勾選節點時仍然遵守 "最多勾選 6 個節點" 和 &quo…

阿里云云效 Maven

阿里云云效 Maven 官網:https://developer.aliyun.com/mvn/guide 阿里云Maven中央倉庫為 阿里云云效 提供的公共代理倉庫,幫助研發人員提高研發生產效率,使用阿里云Maven中央倉庫作為下載源,速度更快更穩定。 阿里云云效 是企業…

Go 語言標準庫中Channels,Goroutines詳細功能介紹與示例

在 Go 語言中,Goroutines(協程)和 Channels(通道)是并發編程的核心組件。它們共同協作,簡化了并發任務的管理和數據同步。以下通過詳細示例說明它們的用法和常見模式。 1. Goroutines(協程&…