機器學習入門:線性回歸詳解及Scikit-learn API使用指南

一、線性回歸概述

線性回歸是統計學和機器學習領域中最基礎、最廣泛應用的預測建模技術之一。自19世紀初由弗朗西斯·高爾頓(Francis Galton)首次提出以來,線性回歸已成為數據分析的核心工具,在經濟學、社會科學、生物統計學、工程學等眾多領域發揮著重要作用。

1.1 線性回歸的本質與價值

線性回歸的核心思想是通過建立自變量(解釋變量)與因變量(響應變量)之間的線性關系模型,來理解和預測數據的變化規律。這種方法的強大之處在于:

  1. 解釋性強:模型參數具有直觀的統計意義,便于理解變量間的關系

  2. 計算高效:相比復雜模型,線性回歸的計算成本低,適合大規模數據集

  3. 基礎性強:是理解更復雜機器學習算法的基礎

  4. 可擴展性:可以通過各種擴展處理非線性關系

在實際應用中,線性回歸常用于:

  • 銷售預測(根據歷史數據預測未來銷售額)

  • 房價評估(基于房屋特征預測市場價格)

  • 經濟分析(研究GDP與失業率的關系)

  • 醫學研究(分析藥物劑量與療效的關系)

1.2 線性回歸的數學本質

從數學角度看,線性回歸解決的是一個優化問題:尋找一組參數(系數),使得模型預測值與實際觀測值之間的差異(通常用平方誤差表示)最小化。這種方法稱為普通最小二乘法(OLS)

對于簡單線性回歸(單變量),數學表達式為:

?

?對于多元線性回歸(多變量),表達式擴展為:

?

其中:

  • y:因變量(我們想要預測的值)

  • x/x?,x?,...x?:自變量(用于預測的特征)

  • β?:截距項(當所有自變量為0時y的值)

  • β?,β?,...β?:回歸系數(每個自變量對y的影響程度)

  • ε:誤差項(模型無法解釋的隨機波動)

1.3 線性關系的深入理解

線性回歸中的"線性"有兩層含義:

  1. 變量線性:因變量與自變量呈直線關系

  2. 參數線性:因變量與回歸系數呈線性關系

值得注意的是,線性回歸可以處理非線性關系,只要這種非線性關系可以通過變量轉換變為參數線性形式。例如:

  • 多項式關系:y = β? + β?x + β?x2

  • 對數關系:ln(y) = β? + β?x

  • 交互作用:y = β? + β?x? + β?x? + β?x?x?

1.4 線性回歸的統計假設

為了保證線性回歸模型的有效性和推斷的可靠性,經典線性回歸模型基于以下統計假設:

  1. 線性關系假設:因變量與自變量之間存在真實的線性關系

  2. 獨立性假設:觀測值之間相互獨立(特別針對時間序列數據)

  3. 同方差性:誤差項的方差應保持恒定(不隨預測值變化而變化)

  4. 正態性假設:誤差項服從正態分布(對于大樣本相對寬松)

  5. 無多重共線性:自變量之間不應存在高度相關性

  6. 無自相關:誤差項之間不應存在相關性(針對時間序列)

當這些假設被違反時,可能導致:

  • 系數估計不準確

  • 標準誤差計算錯誤

  • 統計檢驗失效

  • 預測結果不可靠

1.5 線性回歸的變體與擴展

根據不同的數據特性和問題需求,線性回歸有多種擴展形式:

  1. 加權最小二乘法(WLS):處理異方差性問題

  2. 廣義最小二乘法(GLS):處理自相關問題

  3. 嶺回歸(Ridge Regression):通過L2正則化處理多重共線性

  4. Lasso回歸:通過L1正則化實現特征選擇

  5. 彈性網絡(Elastic Net):結合L1和L2正則化的優勢

  6. 穩健回歸(Robust Regression):降低異常值影響

  7. 分位數回歸(Quantile Regression):研究條件分位數關系

1.6 線性回歸的工作流程

一個完整的線性回歸分析通常包括以下步驟:

  1. 問題定義:明確分析目標和變量選擇

  2. 數據收集:獲取相關變量的觀測數據

  3. 數據探索:檢查數據質量、分布和關系

  4. 數據預處理:處理缺失值、異常值、特征工程

  5. 模型擬合:計算回歸系數

  6. 模型診斷:檢驗回歸假設、評估模型擬合度

  7. 模型優化:變量選擇、處理非線性

  8. 結果解釋:解釋系數含義、評估預測能力

  9. 模型部署:應用模型進行預測

1.7 線性回歸的局限性

盡管線性回歸應用廣泛,但也有其局限性:

  1. 對非線性關系捕捉能力有限(需通過特征工程解決)

  2. 對異常值敏感(可考慮使用穩健回歸)

  3. 當特征數量大于樣本數量時表現不佳(需正則化)

  4. 假設自變量是精確測量的(測量誤差會影響估計)

  5. 容易受到無關變量的干擾(需進行變量選擇)

二、Scikit-learn中的線性回歸實現

Scikit-learn是Python中最流行的機器學習庫之一,提供了簡單高效的工具用于數據挖掘和數據分析。

2.1 導入必要的庫

# NumPy - Python科學計算的基礎庫,提供高性能的多維數組對象和數組計算工具
# 主要用于:數值計算、矩陣運算、線性代數、隨機數生成等
import numpy as np# Matplotlib - Python最流行的2D繪圖庫,提供類似MATLAB的繪圖接口
# pyplot模塊提供MATLAB風格的繪圖API,用于數據可視化
import matplotlib.pyplot as plt# scikit-learn中的線性回歸模型實現
# LinearRegression類實現了普通最小二乘線性回歸算法
from sklearn.linear_model import LinearRegression# scikit-learn中的模型選擇工具
# train_test_split函數用于將數據集隨機劃分為訓練集和測試集
from sklearn.model_selection import train_test_split# scikit-learn中的模型評估指標
# mean_squared_error - 計算均方誤差(MSE)回歸損失
# r2_score - 計算R2分數(決定系數),回歸模型的評估指標
from sklearn.metrics import mean_squared_error, r2_score# scikit-learn中的數據集生成工具
# make_regression函數用于生成適合回歸分析的模擬數據集
from sklearn.datasets import make_regression

2.2 線性回歸API詳解

Scikit-learn中的LinearRegression類實現了普通最小二乘線性回歸。

主要參數:
  1. fit_intercept?(bool, default=True)

    • 是否計算截距(β?)

    • 如果設置為False,則模型不會計算截距(即數據已經中心化)

  2. normalize?(bool, default=False)

    • 在擬合前是否對回歸變量X進行歸一化

    • 當fit_intercept=False時,此參數被忽略

    • 注意:從1.0版本開始,此參數將被棄用,建議使用StandardScaler進行預處理

  3. copy_X?(bool, default=True)

    • 是否復制X。如果為False,X可能會被覆蓋

  4. n_jobs?(int, default=None)

    • 用于計算的作業數

    • 主要用于多目標回歸問題(n_targets > 1)

主要屬性:
  1. coef_?(array of shape (n_features, ) or (n_targets, n_features))

    • 回歸系數(斜率,β?, β?,...β?)

  2. intercept_?(float or array of shape (n_targets,))

    • 截距(β?)

  3. rank_?(int)

    • 矩陣X的秩

  4. singular_?(array of shape (min(X, y),))

    • X的奇異值

主要方法:
  1. fit(X, y[, sample_weight])

    • 擬合線性模型

    • X: 訓練數據,形狀為(n_samples, n_features)

    • y: 目標值,形狀為(n_samples,)或(n_samples, n_targets)

    • sample_weight: 樣本權重,形狀為(n_samples,)

  2. predict(X)

    • 使用線性模型進行預測

    • 返回預測值

  3. score(X, y[, sample_weight])

    • 返回預測的確定系數R2

    • R2 = 1 - (SS_res / SS_tot)

    • 最佳得分為1.0,可能為負值(模型表現比隨機猜測還差)

2.3 簡單線性回歸示例

# 生成示例數據
np.random.seed(42)
X = 2 * np.random.rand(100, 1)  # 生成100個0-2之間的隨機數
y = 4 + 3 * X + np.random.randn(100, 1)  # y = 4 + 3x + 噪聲# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 創建線性回歸模型實例
lin_reg = LinearRegression()# 訓練模型
lin_reg.fit(X_train, y_train)# 查看模型參數
print("截距(intercept):", lin_reg.intercept_)  # 輸出截距β?
print("系數(coef):", lin_reg.coef_)  # 輸出系數β?# 進行預測
y_pred = lin_reg.predict(X_test)# 評估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print("均方誤差(MSE):", mse)
print("R2分數:", r2)# 可視化結果
plt.scatter(X, y, color='blue', label='原始數據')
plt.plot(X_test, y_pred, color='red', linewidth=3, label='預測線')
plt.xlabel('X')
plt.ylabel('y')
plt.title('簡單線性回歸')
plt.legend()
plt.show()

2.4 多元線性回歸示例?

# 生成具有多個特征的示例數據
X, y = make_regression(n_samples=100, n_features=5, noise=0.1, random_state=42)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 創建并訓練模型
multi_lin_reg = LinearRegression()
multi_lin_reg.fit(X_train, y_train)# 查看模型參數
print("截距:", multi_lin_reg.intercept_)
print("系數:", multi_lin_reg.coef_)# 進行預測和評估
y_pred = multi_lin_reg.predict(X_test)
print("MSE:", mean_squared_error(y_test, y_pred))
print("R2:", r2_score(y_test, y_pred))

三、線性回歸的擴展

3.1 多項式回歸

當數據關系不是簡單的線性關系時,可以通過添加多項式特征來擬合更復雜的關系。

from sklearn.preprocessing import PolynomialFeatures# 生成非線性數據
np.random.seed(42)
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)# 添加多項式特征
poly_features = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_features.fit_transform(X)# 訓練模型
lin_reg_poly = LinearRegression()
lin_reg_poly.fit(X_poly, y)# 查看參數
print("截距:", lin_reg_poly.intercept_)
print("系數:", lin_reg_poly.coef_)# 可視化
X_new = np.linspace(-3, 3, 100).reshape(100, 1)
X_new_poly = poly_features.transform(X_new)
y_new = lin_reg_poly.predict(X_new_poly)plt.scatter(X, y, color='blue')
plt.plot(X_new, y_new, color='red', linewidth=2, label="多項式回歸")
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

3.2 正則化線性回歸

????????在標準線性回歸中,當特征數量較多或特征間存在高度相關性時,模型容易出現過擬合(overfitting)問題——即在訓練集上表現很好,但在測試集上表現較差。正則化(Regularization)?是一種用于防止過擬合的技術,通過在損失函數中添加懲罰項來約束模型參數的大小,從而降低模型復雜度。以下是三種常見的正則化線性回歸方法:

1.嶺回歸(Ridge Regression)??

原理

  • 在普通最小二乘法的損失函數中增加?L2正則化項(即系數平方和的懲罰項),優化目標為:

    其中:

    • α?是正則化強度(超參數),控制懲罰力度(α≥0)。

    • 懲罰項?會壓縮系數,但不會完全消除任何特征。

特點

  • 適用場景:特征數量多、特征間存在共線性(相關性高)時。

  • 效果:所有系數都會縮小,但不會變為零(保留所有特征)。

  • 參數

    • alpha:正則化強度,越大則系數收縮越明顯(默認=1)。

    • solver:優化算法(如?"cholesky""sag"?等)。

示例代碼

from sklearn.linear_model import Ridge
ridge_reg = Ridge(alpha=1.0, solver="cholesky")  # 使用解析解求解
ridge_reg.fit(X_train, y_train)
2.Lasso回歸?? ??

原理

  • 在損失函數中增加?L1正則化項(即系數絕對值的懲罰項),優化目標為:

    L1正則化會使得部分系數恰好為零,從而實現特征選擇。

特點

  • 適用場景:特征數量非常多,且希望自動進行特征選擇時。

  • 效果:稀疏性(某些系數歸零),適合高維數據。

  • 參數

    • alpha:正則化強度(默認=1)。

    • max_iter:最大迭代次數(因L1優化問題可能需迭代求解)。

示例代碼

from sklearn.linear_model import Lasso
lasso_reg = Lasso(alpha=0.1, max_iter=10000)  # 設置較大的max_iter保證收斂
lasso_reg.fit(X_train, y_train)
print("被壓縮為零的系數數量:", sum(lasso_reg.coef_ == 0))  # 查看多少特征被剔除
3.彈性網絡(Elastic Net)?

原理

  • 結合?L1和L2正則化,平衡嶺回歸和Lasso的優點,優化目標為:

    其中:

    • αα?控制整體正則化強度。

    • ρ(l1_ratio)控制L1和L2的混合比例(0=純嶺回歸,1=純Lasso)。

特點

  • 適用場景:特征數量遠大于樣本數,或特征間存在強相關性時。

  • 效果:既能選擇特征(L1部分),又能保留相關特征組的穩定性(L2部分)。

  • 參數

    • alpha:總體正則化強度。

    • l1_ratio:L1正則化的比例(默認=0.5,即L1和L2各占一半)。

示例代碼

from sklearn.linear_model import ElasticNet
elastic_net = ElasticNet(alpha=0.1, l1_ratio=0.5)  # alpha=0.1, L1和L2各占50%
elastic_net.fit(X_train, y_train)

如何選擇正則化方法?

方法適用場景優點缺點
嶺回歸特征相關性高,需保留所有特征穩定,適合共線性數據不進行特征選擇
Lasso特征數量多,且只有少數特征重要自動特征選擇,模型更簡單可能隨機選擇一個特征丟棄相關特征組
彈性網絡特征數量極多(如基因數據),且存在特征組相關性兼顧特征選擇和穩定性需調兩個超參數(alphal1_ratio

實際建議

  1. 優先嘗試嶺回歸,若效果不佳再測試Lasso。

  2. 若特征數遠大于樣本數(如文本分類),使用彈性網絡。

  3. 使用交叉驗證(如GridSearchCV)優化超參數(如alpha)。

?

四、線性回歸的評估指標

????????在建立線性回歸模型后,我們需要使用評估指標來衡量模型的性能。不同的指標從不同角度反映模型的預測能力,以下是常用的線性回歸評估指標及其解釋:?

4.1.均方誤差(MSE)

數學公式

解釋

  • 計算方式:所有樣本的預測值(y^i)與實際值(yi)的平方誤差的平均值

  • 特點

    • 大誤差敏感(因為平方放大了較大誤差的影響)。

    • 值域為?[0,+∞),越小越好。

    • 單位是目標變量的平方(如預測房價時單位為“萬元2”),不易直接解釋。

使用場景

  • 需要懲罰較大預測錯誤時(如安全關鍵領域)。

  • 適用于比較不同模型的性能。

示例代碼

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
print("均方誤差(MSE):", mse)

4.2.均方根誤差(RMSE)?

數學公式

解釋

  • 計算方式:MSE的平方根,將誤差單位還原到原始尺度。

  • 特點

    • 與MSE一樣對大誤差敏感。

    • 值域為?[0,+∞),越小越好。

    • 單位與目標變量一致(如“萬元”),更易解釋。

使用場景

  • 需要直觀理解誤差大小時(如RMSE=5萬元,表示平均預測偏差約5萬元)。

  • 比MSE更常用在實際報告中。

示例代碼

rmse = np.sqrt(mean_squared_error(y_true, y_pred))
print("均方根誤差(RMSE):", rmse)

4.3.平均絕對誤差(MAE)?

數學公式

解釋

  • 計算方式:所有樣本的預測值與實際值的絕對誤差的平均值

  • 特點

    • 異常值不敏感(因為未平方)。

    • 值域為?[0,+∞),越小越好。

    • 單位與目標變量一致,解釋直觀(如“平均偏差3萬元”)。

使用場景

  • 數據中存在異常值時。

  • 需要直接了解平均預測誤差幅度時。

與RMSE的區別

  • RMSE強調較大誤差,MAE對所有誤差一視同仁。

  • 若誤差分布存在長尾,RMSE > MAE。

示例代碼

from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
print("平均絕對誤差(MAE):", mae)

4.4.R2分數(決定系數)?

數學公式

  • 特點

    • 值域為?(?∞,1],越接近1越好。

    • 無量綱,可用于不同數據集間的模型比較。

使用場景

  • 需要評估模型的整體解釋力時。

  • 注意:?隨特征數量增加而增大(即使無關特征),因此調整后的?(Adjusted R2)更適用于多特征模型。

示例代碼

from sklearn.metrics import r2_score
r2 = r2_score(y_true, y_pred)
print("R2分數:", r2)

如何選擇評估指標?

指標敏感度單位一致性異常值魯棒性適用場景
MSE需要強調大誤差的場景
RMSE最常用的誤差指標
MAE存在異常值或需直觀理解誤差時
R2-無量綱-評估模型解釋變異的能力

實際建議

  1. 報告多個指標:例如同時給出RMSE和R2,兼顧誤差大小和解釋力。

  2. 業務對齊:選擇與業務目標相關的指標(如金融領域更關注MAE)。

  3. 交叉驗證:使用交叉驗證計算指標的穩定性(如cross_val_score)。

五、實際應用案例:波士頓房價預測?

from sklearn.datasets import load_boston# 加載數據集
boston = load_boston()
X = boston.data
y = boston.target# 劃分數據集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 特征縮放(標準化)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)# 創建并訓練模型
boston_reg = LinearRegression()
boston_reg.fit(X_train_scaled, y_train)# 評估模型
y_pred = boston_reg.predict(X_test_scaled)
print("MSE:", mean_squared_error(y_test, y_pred))
print("RMSE:", np.sqrt(mean_squared_error(y_test, y_pred)))
print("R2:", r2_score(y_test, y_pred))# 查看特征重要性
feature_importance = pd.DataFrame({'Feature': boston.feature_names,'Coefficient': boston_reg.coef_
}).sort_values(by='Coefficient', key=abs, ascending=False)print(feature_importance)

六、總結與最佳實踐

  1. 數據預處理

    • 處理缺失值

    • 特征縮放(標準化或歸一化)

    • 處理分類變量(獨熱編碼等)

  2. 模型訓練

    • 總是劃分訓練集和測試集

    • 考慮使用交叉驗證

    • 對于小數據集,使用留一法交叉驗證

  3. 模型評估

    • 不要僅依賴R2分數

    • 查看殘差圖檢查模型假設

    • 考慮使用多個評估指標

  4. 改進模型

    • 嘗試添加多項式特征

    • 使用正則化防止過擬合

    • 考慮特征選擇或降維

  5. 注意事項

    • 線性回歸對異常值敏感

    • 多重共線性會影響系數解釋

    • 非線性關系需要轉換特征

通過本教程,你應該對線性回歸的理論基礎和Scikit-learn中的實現有了全面的了解。線性回歸雖然簡單,但在許多實際問題中仍然非常有效,是機器學習工程師和數據科學家的必備工具。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

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

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

相關文章

高斯牛頓法求解三維變換矩陣的數學推導

目錄一、問題定義二、李代數基礎三、雅可比矩陣推導四、高斯牛頓迭代1. 整體雅可比矩陣2. 正規方程構建3. 參數更新4. 李代數更新五、理論優勢分析一、問題定義 給定兩組三維點云:源點云 P{pi∈R3}i1NP \{p_i \in \mathbb{R}^3\}_{i1}^NP{pi?∈R3}i1N?&#xff0…

JAVA 商城系統為什么受歡迎?ZKmall開源商城靈活定制 + 插件接入適配市場

在電商系統開發這塊,技術選得好不好,直接關系到平臺穩不穩定、能不能擴展、適配能力強不強。JAVA 語言因為 “跨平臺性突出、安全性高、可擴展性好” 這些特點,成了企業級電商系統的首選技術。而 ZKmall 商城基于 JAVA 開發的商城系統&#x…

【數據結構之哈夫曼樹與編碼實現】

文章目錄 前言一、哈夫曼樹與哈夫曼編碼簡介1. 什么是哈夫曼樹?2. 為什么需要哈夫曼編碼? 二、哈夫曼編碼原理三、哈夫曼樹的構建步驟詳解1. 統計字符頻率2. 定義哈夫曼樹節點3. 最小堆(優先隊列)的構造4. 合并節點,構…

基于Hadoop的京東廚具商品數據分析及商品價格預測系統的設計與實現

文章目錄有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主項目介紹數據采集用戶界面系統展示管理員界面每文一語有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主 項目介紹 本項目圍繞“京東廚具數據分析系統的設計與實…

深入解析TCP:可靠傳輸的核心機制與實現邏輯(三次握手、四次揮手、流量控制、滑動窗口、擁塞控制、慢啟動、延時應答、面向字節流、粘包問題)

Linux系列 文章目錄 Linux系列一、TCP連接的建立與斷開1.1 TCP 三次握手1.2 TCP四次揮手1. TCP連接的本質是應用層間的通信通道2. 斷開連接的核心是終止應用層通信3. 常見誤解澄清 二、TCP協議的機制2.1 流量控制2.2 滑動窗口2.2.1 滑動窗口的工作原理2.2.2 基于滑動窗口快重傳…

基于開源AI智能客服、AI智能名片與S2B2C商城小程序的微商服務質量提升路徑研究

摘要:在科技飛速發展的背景下,產品技術含量與復雜度顯著提升,客戶正確使用產品并體驗其價值愈發依賴代理的專業指導與服務。本文聚焦開源AI智能客服、AI智能名片與S2B2C商城小程序在微商服務中的應用,通過分析其技術原理與實踐案例…

[netty5: HttpHeaders HttpHeadersFactory]-源碼分析

HttpHeaders HttpHeaders 是用于存儲和操作HTTP請求或響應頭部字段的接口。 // DefaultHttpHeaders, HttpHeadersFactory.TrailingHttpHeaders public interface HttpHeaders extends Iterable<Entry<CharSequence, CharSequence>> {static HttpHeaders emptyHead…

基于Flink 1.20、StarRocks與TiCDC構建高效數據處理鏈路教程

在大數據處理領域&#xff0c;實現高效、實時的數據處理與分析至關重要。Flink作為強大的流批一體化計算框架&#xff0c;結合StarRocks這一高性能的實時分析型數據庫&#xff0c;再搭配TiCDC&#xff08;TiDB Change Data Capture&#xff09;用于捕獲數據變更&#xff0c;能夠…

便捷的Office批量轉PDF工具

軟件介紹 本文介紹的軟件是一款能實現Office批量轉換的工具&#xff0c;名為五五Excel word批量轉PDF。 軟件小巧 這款五五Excel word批量轉PDF軟件大小不到2M。 操作步驟一 使用該軟件時&#xff0c;只需把軟件和需要轉換的Word或Excel文件放在同一個文件夾里。 操作步驟…

tcp長連接與短連接

TCP連接本身是一個傳輸層協議&#xff0c;它既可以實現長連接&#xff0c;也可以實現短連接。這取決于應用層的使用方式。 短連接&#xff08;Short Connection&#xff09; 特點&#xff1a;每次請求都建立新的TCP連接&#xff0c;完成后立即關閉流程&#xff1a;建立連接 →…

llvm polly,親自測試

1&#xff09;下載并安裝 Polly - Getting Started git clone https://github.com/llvm/llvm-project.git 大概需要半個小時&#xff0c;有時候被墻掉就打不開 2&#xff09; mkdir build && cd build cmake -DLLVM_ENABLE_PROJECTSclang;polly ../llvm cmake --b…

Spring AI 項目實戰(十四):Spring Boot + Vue3 +AI + DeepSeek 實現空氣質量智能預測系統(附完整源碼)

系列文章 序號文章名稱1Spring AI 項目實戰(一):Spring AI 核心模塊入門2Spring AI 項目實戰(二):Spring Boot + AI + DeepSeek 深度實戰(附完整源碼)3Spring AI 項目實戰(三):Spring Boot + AI + DeepSeek 打造智能客服系統(附完整源碼)4

騰訊云 CDN 不支持 WebSocket 的現狀與華為云 CDN 的替代方案-優雅草卓伊凡

騰訊云 CDN 不支持 WebSocket 的現狀與華為云 CDN 的替代方案-優雅草卓伊凡 問題背景 卓伊凡今天發現&#xff0c;騰訊云 CDN 不支持 WebSocket 協議&#xff0c;而公司的部分業務&#xff08;如實時聊天、在線協作、游戲互動、股票行情推送等&#xff09;依賴長連接通信。昨…

MybatisPlus(一)擴展功能

擴展功能 一、靜態工具二、邏輯刪除三、通用枚舉1、定義枚舉2、配置枚舉處理器3、測試 四、JSON類型處理器1、定義實體2、使用類型處理器 五、分頁1、配置分頁插件2、分頁API3、示例 一、靜態工具 有的時候Service之間也會相互調用&#xff0c;為了避免出現循環依賴問題&#…

Redis哨兵模式之Sentinel模式(二)

一、多節點哨兵如何配置&#xff1f; 哨兵配置原理圖 注意&#xff1a;sentinel哨兵模式的搭建是建立在redis主從復制節點配置基礎而搭建&#xff0c;在主從配置中從庫需要配置好replicaof關聯上主庫并關閉安全模式&#xff0c;然后設置好bind端口才能關聯上機器&#xff0c;而…

基于Excel的數據分析思維與分析方法

數據分析一定要會Excel、SQL和Python&#xff1f;非常肯定地回答您&#xff0c;Python、R語言、Excel函數和VBA&#xff0c;以及高級數據分析軟件&#xff0c;都學不到&#xff0c;您將學到&#xff1a;5個有效的數據分析利器&#xff0c;以及分析思維 一、描述性統計分析 在…

計算機網絡筆記(不全)

一、計算機網絡體系結構1.計算機網絡的概念計算機網絡&#xff1a;由若干結點和連接這些結點的鏈路組成。結點可以是計算機、集線器、交換機、路由器等。互連網(internet)&#xff1a;多個計算機網絡通過路由器互相連接而成&#xff0c;可用任意協議通信。互聯網(因特網Interne…

XML Schema 復合元素

XML Schema 復合元素 引言 XML(可擴展標記語言)作為一種靈活的標記語言,廣泛應用于數據交換和存儲。XML Schema 是一種用于描述和定義 XML 文檔結構的語言,它定義了 XML 文檔的元素、屬性、類型和約束。本文將詳細介紹 XML Schema 中的復合元素,并探討其在實際應用中的重…

華為云Flexus+DeepSeek征文 | 彈性算力實戰:Flexus X實例自動擴縮容策略優化

華為云FlexusDeepSeek征文 | 彈性算力實戰&#xff1a;Flexus X實例自動擴縮容策略優化 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 總有一行代碼&#xff0c;能點亮萬千星辰。 &#x1f50d; 在技術的宇宙中&#xff0c;我愿做永不停歇的探索者…

【倉頡】運行環境配置VSCode + Win11

作者&#xff1a;大李子 團隊&#xff1a;堅果派 十年iOS&#xff0c;All in轉鴻蒙 前言 “倉頡編程語言是一款面向全場景智能的新一代編程語言&#xff0c;主打原生智能化、天生全場景、高性能、強安全。融入鴻蒙生態&#xff0c;為開發者提供良好的編程體驗。” ——摘自倉…