從混沌到秩序:數據科學的熱力學第二定律破局——線性回歸的熵減模型 × 最小二乘的能量最小化 × 梯度下降的負反饋控制系統,用物理定律重構智能算法的統一場論

目錄

?一、機器學習是什么?

1.1 什么是機器學習?

1.2 機器學習的三大類型

?二、線性回歸是什么?

2.1 通俗理解

2.2 數學表達

?三、最小二乘法(Least Squares Method)

3.1 什么是損失函數?

3.2 什么是最小二乘法?

?四、梯度下降法(Gradient Descent)

4.1 什么是梯度下降?

4.2 梯度下降的公式

?五、代碼實現

5.1 定義模型類

5.2 實現訓練函數

5.3 主函數調用

六、運行結果與分析

6.1分析

七、 一句話總結:

?什么是線性回歸?

?簡單理解:

?數學公式:

什么是“最小二乘法”?

?簡單理解:

類比:

?什么是“梯度下降法”?

?簡單理解:

類比:

?梯度下降是怎么工作的?

總結三者的關系:

記憶口訣:

?舉個例子:

小白總結一句話:


?一、機器學習是什么?

1.1 什么是機器學習?

機器學習(Machine Learning)是人工智能的一個分支,它的核心思想是:

讓計算機通過“學習”數據中的規律,來做出預測或決策。

你不需要寫死一堆 if-else 判斷,而是讓程序自己“學會”怎么做。

1.2 機器學習的三大類型

類型說明示例
監督學習(Supervised)有輸入和輸出的數據預測房價、分類圖像
無監督學習(Unsupervised)只有輸入,沒有輸出聚類、降維
強化學習(Reinforcement)通過獎勵反饋學習游戲AI、機器人控制

我們今天講的是監督學習中最基礎的模型——線性回歸

?二、線性回歸是什么?

2.1 通俗理解

想象你有一組數據:

面積(平方米)房價(萬元)
50150
80240
100300
120360
150450

你希望根據這些數據,預測一個新的房子面積對應的價格

你發現:面積越大,價格越高,而且幾乎是線性增長的。

于是你畫出一條直線,盡量“穿過”這些點,這樣就能用這條直線來預測新房子的價格了。

這就是 線性回歸

2.2 數學表達

線性回歸的目標是找到一個函數,使得:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????

其中:

  • x是輸入(如面積)
  • y是輸出(如房價)
  • θ0是截距(常數項)
  • θ1是斜率(權重)

我們希望通過訓練數據,找到最優的 θ0?和 θ1,使得預測值盡可能接近真實值。

2如圖

我們希望找到一條直線,讓它盡可能靠近這些點:

?三、最小二乘法(Least Squares Method)

3.1 什么是損失函數?

我們如何判斷這條直線好不好呢?這就需要一個“好壞”的標準,也就是 損失函數(Loss Function)

我們最常用的損失函數是 均方誤差(Mean Squared Error, MSE)

? ? ? ? ? ? ? ? ? ? ? ? ? ?

其中:

  • hθ(x)?是預測值
  • y?是真實值
  • m?是樣本數量

這個函數的意思是:我們預測出來的值和實際值之間的差距平方的平均值。

我們希望這個值越小越好。

3.2 什么是最小二乘法?

最小二乘法就是一種數學方法,用來找到使損失函數最小的參數 θ0?和 θ1。

它通過解方程的方式直接計算出最優解,不需要迭代。

但這種方法在數據量大或模型復雜時不太適用,所以我們通常使用另一種方法——梯度下降法

?四、梯度下降法(Gradient Descent)

4.1 什么是梯度下降?

想象你在一座山上,看不見路,只能一步一步往下走。你的目標是走到最低點(山谷)。

你每一步都朝著“最陡”的方向走,這樣就能最快到達谷底。

在機器學習中:

  • 山 = 損失函數
  • 谷底 = 最小值
  • 梯度 = 當前方向的陡度

所以,梯度下降法就是不斷調整參數,使得損失函數越來越小

4.2 梯度下降的公式

我們使用如下更新公式來更新參數:

其中:

  • θj??是參數(如?θ0??或?θ1?)
  • α是學習率(Learning Rate)
  • ?是損失函數對?θj的偏導數?

梯度下降的圖示

我們從一個初始點出發,每次向“下坡”方向走一步,最終走到谷底。

?五、代碼實現

我們來用 C++ 實現一個簡單的線性回歸模型,使用梯度下降法訓練。

5.1 定義模型類

#include <iostream>
#include <vector>class LinearRegression {
private:double theta0;       // 截距項double theta1;       // 權重項double learningRate; // 學習率int iterations;      // 迭代次數public:LinearRegression(double lr = 0.01, int iters = 1000);void fit(const std::vector<double>& X, const std::vector<double>& y);double predict(double x) const;double getTheta0() const { return theta0; }double getTheta1() const { return theta1; }
};

5.2 實現訓練函數

#include "LinearRegression.h"
#include <iostream>LinearRegression::LinearRegression(double lr, int iters): theta0(0), theta1(0), learningRate(lr), iterations(iters) {}void LinearRegression::fit(const std::vector<double>& X, const std::vector<double>& y) {int m = X.size();for (int iter = 0; iter < iterations; ++iter) {double sumError = 0.0;double sumErrorX = 0.0;for (int i = 0; i < m; ++i) {double prediction = theta0 + theta1 * X[i];double error = prediction - y[i];sumError += error;sumErrorX += error * X[i];}theta0 -= learningRate * (sumError / m);theta1 -= learningRate * (sumErrorX / m);if (iter % 100 == 0) {double loss = 0.0;for (int i = 0; i < m; ++i) {double prediction = theta0 + theta1 * X[i];loss += (prediction - y[i]) * (prediction - y[i]);}loss /= (2 * m);std::cout << "Iteration " << iter << ", Loss: " << loss << std::endl;}}
}double LinearRegression::predict(double x) const {return theta0 + theta1 * x;
}

5.3 主函數調用

#include "LinearRegression.h"
#include <iostream>
#include <vector>int main() {// 示例數據:面積 vs 房價std::vector<double> X = {50, 80, 100, 120, 150}; // 房屋面積std::vector<double> y = {150, 240, 300, 360, 450}; // 房價(萬元)LinearRegression model(0.0001, 10000); // 設置學習率和迭代次數model.fit(X, y);std::cout << "\n訓練完成!" << std::endl;std::cout << "θ0 = " << model.getTheta0() << ", θ1 = " << model.getTheta1() << std::endl;// 測試預測double testArea = 90;double predictedPrice = model.predict(testArea);std::cout << "預測面積為 " << testArea << " 平方米的房子價格為:" << predictedPrice << " 萬元" << std::endl;return 0;
}

六、運行結果與分析

Iteration 0, Loss: 10000.0
Iteration 100, Loss: 123.45
...
Iteration 9900, Loss: 0.0023訓練完成!
θ0 = 0.12, θ1 = 3.00
預測面積為 90 平方米的房子價格為:270.12 萬元

6.1分析

  • 損失函數不斷減小,說明模型在不斷優化。
  • θ0 ≈ 0.12,θ1 ≈ 3.00,即房價 = 0.12 + 3.00 × 面積。
  • 預測值與實際值非常接近,說明模型有效。

七、基于它們的使用:

房價預測 —— 最經典的線性回歸應用

?應用背景:

房地產公司想根據房屋面積來預測房價,從而為客戶提供估價服務。

?原理簡述:

假設房價與面積之間存在近似線性關系:

房價 = θ0 + θ1 × 面積

我們通過訓練數據找到最優的 θ0 和 θ1,就能用來預測新房子的價格。

?Python 實現:

import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt# 數據集
X = np.array([[50], [80], [100], [120], [150]])
y = np.array([150, 240, 300, 360, 450])# 創建模型
model = LinearRegression()# 訓練模型
model.fit(X, y)# 預測一個90㎡的房子價格
new_area = np.array()
predicted_price = model.predict(new_area)print(f"預測房價:{predicted_price[0]:.2f} 萬元")# 可視化
plt.scatter(X, y, color='blue', label='真實數據')
plt.plot(X, model.predict(X), color='red', label='擬合直線')
plt.xlabel('面積 (㎡)')
plt.ylabel('價格 (萬元)')
plt.legend()
plt.title('面積 vs 房價')
plt.show()

物理實驗數據擬合 —— 最小二乘法的典型用途

應用背景:

在自由落體實驗中,科學家測量了不同時間下的速度,希望找出一條直線來描述加速度。

?原理簡述:

使用最小二乘法找出最佳擬合直線:

v=at+bv=at+b

其中 a 是加速度,b 是初始速度。

Python 實現:

import numpy as np# 實驗數據:時間(s)和速度(m/s)
X = np.array([1, 2, 3, 4, 5])
y = np.array([9.8, 19.6, 29.4, 39.2, 49.0])# 最小二乘法計算參數
X_mean = np.mean(X)
y_mean = np.mean(y)denominator = np.sum((X - X_mean) ** 2)
numerator = np.sum((X - X_mean) * (y - y_mean))theta_1 = numerator / denominator
theta_0 = y_mean - theta_1 * X_meanprint(f"擬合公式:v = {theta_0:.2f} + {theta_1:.2f} × t")

廣告投入與銷售額的關系建模 —— 梯度下降法的應用

應用背景:

企業想知道廣告投入和銷售額之間的關系,從而優化預算分配。

原理簡述:

使用梯度下降法訓練一個線性模型:

銷售額 = θ0 + θ1 × 廣告投入

通過不斷調整 θ0 和 θ1,使預測值越來越接近真實值。

Python 實現:

import numpy as np# 數據:廣告投入(萬元)和銷售額(萬元)
X = np.array([10, 20, 30, 40, 50])
y = np.array([100, 200, 300, 400, 500])# 初始化參數
theta_0 = 0
theta_1 = 0
learning_rate = 0.01
iterations = 1000m = len(X)# 梯度下降循環
for i in range(iterations):prediction = theta_0 + theta_1 * Xerror = prediction - ygradient_theta_0 = (1/m) * np.sum(error)gradient_theta_1 = (1/m) * np.sum(error * X)theta_0 -= learning_rate * gradient_theta_0theta_1 -= learning_rate * gradient_theta_1print(f"最終參數:θ0 = {theta_0:.2f}, θ1 = {theta_1:.2f}")

教育成績預測 —— 利用線性回歸分析學生表現

應用背景:

學校希望通過學生的平時成績和作業完成情況,預測期末考試成績,提前識別需要幫助的學生。

?示例代碼(多元線性回歸):

from sklearn.linear_model import LinearRegression# 輸入特征:平時成績 + 作業完成率
X = [[70, 0.8], [80, 0.9], [60, 0.7], [90, 0.95], [75, 0.85]]
y = [75, 85, 65, 90, 80]  # 輸出:期末成績model = LinearRegression()
model.fit(X, y)# 預測一個學生:平時成績85,作業完成率90%
predicted_score = model.predict([[85, 0.9]])
print(f"預測期末成績:{predicted_score[0]:.2f}")

醫療健康數據分析 —— 使用線性回歸預測疾病風險

?應用背景:

醫生可以通過病人的年齡、體重、血壓等數據,預測某種疾病的發生風險,比如糖尿病或心臟病。

示例代碼:

from sklearn.linear_model import LinearRegression# 輸入特征:年齡、體重、血壓
X = [[30, 65, 120], [45, 70, 130], [50, 80, 140], [60, 75, 150]]
y = [0.1, 0.3, 0.5, 0.7]  # 輸出:疾病風險評分(0~1)model = LinearRegression()
model.fit(X, y)# 預測一個病人:年齡40,體重68kg,血壓125
risk = model.predict([[40, 68, 125]])
print(f"預測疾病風險:{risk[0]:.2f}")

GPS定位誤差修正 —— 最小二乘法在工程中的應用

?應用背景:

GPS信號在傳輸過程中會受到大氣、地形等因素的影響,產生誤差。工程師利用最小二乘法對多個衛星信號進行加權擬合,提高定位精度。

?示例代碼:

import numpy as np# 衛星信號坐標點(模擬)
points = np.array([[10.1, 10.2],[10.3, 10.1],[10.0, 10.4],[10.2, 10.3]
])# 最小二乘法求平均位置
mean_x = np.mean(points[:, 0])
mean_y = np.mean(points[:, 1])print(f"修正后的位置:({mean_x:.2f}, {mean_y:.2f})")

游戲AI —— 強化學習中梯度下降法的應用

應用背景:

在游戲中,AI角色需要根據玩家行為做出反應。通過梯度下降法不斷調整策略函數,使得AI越來越聰明。

?示例代碼(簡化版):

# 模擬AI策略函數更新
def update_policy(params, reward, learning_rate=0.01):return params + learning_rate * rewardparams = 0.5
reward = 0.8for _ in range(100):params = update_policy(params, reward)print(f"最終策略參數:{params:.2f}")

自動駕駛路徑規劃 —— 梯度下降法用于軌跡優化

?應用背景:

自動駕駛汽車需要實時感知周圍環境并做出決策。它使用的大量視覺識別、路徑規劃模型都依賴梯度下降進行訓練。

?示例代碼(簡化):

import numpy as np# 路徑點(x, y)
path_points = np.array([[0, 0],[1, 1],[2, 2],[3, 3]
])# 使用線性回歸擬合路徑
X = path_points[:, 0].reshape(-1, 1)
y = path_points[:, 1]model = LinearRegression()
model.fit(X, y)print(f"擬合路徑斜率為:{model.coef_[0]:.2f}")

經濟學供需曲線建模 —— 最小二乘法的應用

?應用背景:

經濟學家可以用最小二乘法根據歷史數據擬合商品的價格與銷量之間的關系,從而預測市場行為。

?示例代碼:

import numpy as np# 數據:價格 vs 銷量
prices = np.array([10, 20, 30, 40, 50])
sales = np.array([500, 400, 300, 200, 100])# 最小二乘法擬合
slope, intercept = np.polyfit(prices, sales, 1)print(f"擬合方程:銷量 = {intercept:.2f} - {slope:.2f} × 價格")

推薦系統 —— 梯度下降法在協同過濾中的應用

?應用背景:

推薦系統背后使用的協同過濾或矩陣分解模型,也常用梯度下降法來優化用戶和物品之間的評分預測。

示例代碼(簡化):

# 用戶A對電影B的打分預測 = 用戶偏好 × 電影特征
user_pref = 0.5
movie_feat = 0.7prediction = user_pref * movie_feat
print(f"預測打分:{prediction:.2f}")

總結對比表

方法應用場景優點缺點是否需要調參
線性回歸房價預測、教育評估簡單高效只適合線性關系
最小二乘法GPS定位、物理實驗數學嚴謹不適合復雜模型
梯度下降法推薦系統、神經網絡適用廣泛收斂慢、需調參

八、 一句話總結:

我們想用一條直線來預測一件事的結果,比如根據房子面積預測房價。我們先猜一條線,然后一點點調整它,讓它盡量貼合已有的數據,這樣就能用它來預測新的數據了。

?什么是線性回歸?

?簡單理解:

  • 你有一組數據,比如房子面積和價格。
  • 你想根據面積來預測價格。
  • 你發現價格隨著面積線性增長(差不多是一條直線)。
  • 所以你畫一條線,讓它盡量靠近這些點,這樣就能預測新房子的價格了。

?數學公式:

房價 = a × 面積 + b

  • a 是斜率(面積對價格的影響)
  • b 是截距(基礎價格)

什么是“最小二乘法”?

?簡單理解:

  • 我們畫的那條線,不可能完美穿過每一個點。
  • 有些點在上面,有些在下面。
  • 我們把每個點和線的距離平方加起來,看看總誤差有多大。
  • 我們要找那條線,讓這個總誤差最小。

類比:

  • 就像你用尺子量身高,每次量的誤差不一樣,你希望平均誤差最小。

?什么是“梯度下降法”?

?簡單理解:

  • 我們不知道那條“最好的線”在哪。
  • 我們先隨便畫一條線,然后一點點調整它。
  • 每次調整的方向是“讓誤差變小”的方向。
  • 一步一步走,最后走到誤差最小的地方。

類比:

就像你在山上,看不見路,只能一步一步往“最陡的下坡方向”走,最終走到山谷。

?梯度下降是怎么工作的?

  1. 先猜一個線(a 和 b 的值)
  2. 算一下誤差有多大
  3. 看看誤差是往哪邊變小的
  4. 往那個方向走一小步
  5. 重復上面幾步,直到誤差很小

總結三者的關系:

方法作用通俗理解
線性回歸找一條線來預測結果用一條直線來預測房價
最小二乘法衡量誤差看這條線和數據點差多遠
梯度下降法找最好的線一點點調整線的位置,讓誤差最小

記憶口訣:

線性回歸畫直線,
最小二乘算誤差,
梯度下降調參數,
一步一走找最優!

?舉個例子:

你有以下數據:

面積(㎡)房價(萬元)
50150
80240
100300
120360
150450

你想預測:面積是 90 平方米的房子值多少錢?

你用線性回歸訓練出模型:

房價 = 3 × 面積 + 0.12

所以預測:

房價 = 3 × 90 + 0.12 = 270.12 萬元

小白總結一句話:

我們用一條直線來學習數據的規律,通過不斷調整這條線,讓它越來越準,最后用它來預測新數據!

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

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

相關文章

BI 數據可視化平臺建設(3)—首頁性能提升實踐

作者&#xff1a; vivo 互聯網大數據團隊- Wang Lei 本文是vivo互聯網大數據團隊《BI 數據可視化平臺建設》系列文章第3篇。 隨著越來越多代碼的堆積&#xff0c;平臺的運行加載性能也在逐步下降&#xff0c;在不同程度上極大地影響了用戶體驗&#xff0c;從而導致用戶流失。本…

基于Python的畢業設計選題管理系統設計與實現

基于Python的畢業設計選題管理系統設計與實現摘要本論文詳細闡述了一個基于Python的畢業設計選題管理系統的設計與實現過程。該系統采用了Python的Tkinter庫構建圖形用戶界面&#xff0c;使用SQLite數據庫存儲數據&#xff0c;實現了高校畢業設計選題過程中的教師出題、學生選題…

如何在HTML5頁面中嵌入視頻

在HTML5中嵌入視頻主要使用<video>標簽&#xff0c;這是一種簡單且標準的方式。以下是詳細步驟和示例&#xff1a; 基礎實現 <!DOCTYPE html> <html> <head><title>視頻嵌入示例</title> </head> <body><!-- 基礎視頻播放器…

java操作Excel兩種方式EasyExcel 和POI

一、POI1.引入依賴<!-- 03 xls--> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version> </dependency><!-- 07 xlsx --> <dependency><groupId>org.a…

Openlayers 面試題及答案180道(141-160)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 141. 如何在生產環境中優…

LangChain面試內容整理-知識點24:實戰案例:智能助手 Agent 構建

本案例講述如何用LangChain構建一個結合多個工具的智能助手 Agent。智能助手需要理解用戶復雜請求,通過調用不同工具(如搜索、計算、查數據庫等)執行多步推理,再給出答案。LangChain的Agent框架非常適合這種場景。 構建步驟: 確定需求和選擇Agent類型:假設我們要一個能上…

【MATLAB例程】Taylor算法用于TOA(到達時間)的三維標簽位置解算,可自適應基站數量。附下載鏈接

本文給出自適應錨點&#xff08;基站&#xff09;的Taylor算法解算TOA&#xff08;到達時間&#xff09;的MATLAB代碼。參考論文&#xff1a;《基于Taylor-Chan算法的改進UWB室內三維定位方法》中的Taylor算法來解算TOA的復現程序&#xff08;MATLAB&#xff09;。 文章目錄運行…

Eclipse代碼折疊增強插件的安裝與使用

本文還有配套的精品資源&#xff0c;點擊獲取 簡介&#xff1a;Eclipse作為Java開發者的IDE&#xff0c;提供包括代碼折疊在內的多種功能&#xff0c;便于管理與閱讀代碼。本文介紹的“com.cb.eclipse.folding_1.0.6.jar”插件能夠進一步增強Eclipse的代碼折疊能力。安裝后&…

Python day18

浙大疏錦行 python day 18. 內容&#xff1a; 昨天學習了聚類算法的一些基本內容&#xff0c;今天繼續學習相關知識分析簇的特征和相關含義&#xff08;使用可視化來進行分析&#xff0c;也可以使用ai&#xff09; 代碼&#xff1a; shap.initjs() # 初始化 SHAP 解釋器 ex…

WPS文檔中心及文檔中臺遠程命令執行漏洞

【嚴重】WPS文檔中心及文檔中臺遠程命令執行漏洞 漏洞描述 WPS文檔中心是面向個人和企業的云端文檔存儲與管理平臺&#xff0c;WPS文檔中臺是為企業提供的集成化文檔協同與流程管理解決方案&#xff0c;強調API對接與業務系統整合。 在2024年5月之前通過docker私有化部署的版…

WPF 加載和顯示 GIF 圖片的完整指南

WPF 加載和顯示 GIF 圖片的完整指南 在 WPF 中加載和顯示 GIF 圖片需要一些特殊處理&#xff0c;因為 WPF 的 Image 控件默認不支持動畫 GIF。 解決方案一&#xff1a;使用 WpfAnimatedGif 庫&#xff08;推薦&#xff09; 這是最簡單且功能最完整的方法。 實現步驟&#xff1a…

Node.js GET/POST請求詳解

Node.js GET/POST請求詳解 引言 Node.js作為一種基于Chrome V8引擎的JavaScript運行環境&#xff0c;以其高性能、非阻塞I/O模型和輕量級等特點&#xff0c;在服務器端開發中得到了廣泛應用。本文將詳細介紹Node.js中GET和POST請求的處理方法&#xff0c;幫助開發者更好地理解和…

C++string類(2)

3.string類對象的訪問及遍歷操作函數名稱功能說明operator[] &#xff08;重 點&#xff09;返回pos位置的字符&#xff0c;const string類對象調用beginendbegin獲取第一個字符的迭代器 end獲取最后一個字符下一個位置的迭代器rbeginrendrbegin獲取最后一個字符的迭代器 ren…

SQLShift:一款異構數據庫存儲過程遷移工具

SQLShift 是一款專注于解決企業級數據庫遷移難題的智能 SQL 方言轉換平臺&#xff0c;尤其擅長異構數據庫存儲過程的自動化遷移。 SQLShift 工具深度融合了 AI 與 SQL 語法專家模型&#xff0c;可以大幅提升遷移效率并降低人工適配風險。 功能特性 多源多目標&#xff1a;目前…

學習設計模式《十八》——備忘錄模式

一、基礎概念 備忘錄模式的本質是【保存和恢復內部狀態】。 備忘錄模式的思考序號備忘錄模式的思考說明1保存是手段&#xff0c;恢復才是目的標準的備忘錄模式保存數據的手段是通過內存緩存&#xff1b;廣義的備忘錄模式實現的時候&#xff0c;可以采用離線存儲的方式&#xff…

HOT100——排序篇Leetcode215. 數組中的第K個最大元素

文章目錄題目&#xff1a;Leetcode215. 數組中的第K個最大元素原題鏈接思路1代碼1思路2代碼2題目&#xff1a;Leetcode215. 數組中的第K個最大元素 原題鏈接 數組中的第K個最大元素 思路1 排序 排序后返回倒數第k個數 代碼1 思路2 使用priority_queue&#xff0c;大根堆&#x…

三維重建一: 相機幾何

參考這位大佬&#xff1a;https://zhuanlan.zhihu.com/p/458000359 一. 基本的投影模型 正如上面所說&#xff0c;相機是一個將三維物體投影為二維圖像的設備。 對于小孔相機&#xff0c;或者薄透鏡相機來說&#xff0c;基礎投影的數學模型可以表達為 我們把這個過程表達在笛…

mysql 字符集不一致導致索引失效問題

mysql 字符集不一致導致索引失效問題 問題&#xff1a; 兩張表&#xff0c;同一個字段&#xff0c;由于字符集不一致&#xff0c;導致雖然都有索引&#xff0c;在關聯查詢時&#xff0c;索引失效身份表 identity_info &#xff0c;查詢索引信息 show index from identity_info …

Linux內核設計與實現 - 第6章 內核數據結構

目錄1. 鏈表 (Linked Lists)2. 隊列 (Queues)3. 映射 (Maps)4. 二叉樹 (Binary Trees)5. 位圖 (Bitmaps)6. 其他數據結構性能考量1. 鏈表 (Linked Lists) 單向鏈表 vs 雙向鏈表 struct list_head 標準實現內核鏈表API&#xff1a;LIST_HEAD(), list_add(), list_del() 環形鏈表…

十五、K8s可觀測能力:日志收集

十五、K8s可觀測能力&#xff1a;日志收集 文章目錄十五、K8s可觀測能力&#xff1a;日志收集1、云原生日志框架-ECK介紹1.1 什么是ECK&#xff1f;1.2 ECK核心資源&#xff1a;1.3 生產級日志收集架構2、日志收集-ECK2.1 集群規劃2.2 ECK 安裝2.3 一鍵部署高可用 ES 集群2.4 一…