【機器學習【6】】數據理解:數據導入、數據審查與數據可視化方法論

文章目錄

  • 一、機器學習數據導入
    • 1、 Pandas:機器學習數據導入的最佳選擇
    • 2、與其他方法的差異
  • 二、機器學習數據理解的系統化方法論
    • 1、數據審查方法論:六維數據畫像技術
      • 維度1:數據結構審查
      • 維度2:數據質量檢查
      • 維度3:目標變量分析
      • 維度4:特征關聯分析
      • 維度5:數據分布特征
      • 維度6:數據完整性
    • 2、從數據觀察到算法選擇的邏輯鏈條
      • 1、數據特征→算法匹配
      • 2、決策示例
  • 三、數據可視化驅動的機器學習決策
    • 1、五維可視化分析
      • 維度1:直方圖:分布形態分析 - "數據長什么樣?
      • 維度2:箱線圖:分布細節分析 - "異常值在哪里?"
      • 維度3:密度圖:連續性分析 - "數據如何變化?"
      • 維度4:熱力圖:關聯強度分析 - "特征間如何影響?"
      • 維度5:關系模式分析 - "特征間如何交互?"
    • 2、"觀察-提問-決策"閉環系統
      • 1、示例說明
      • 2、可視化驅動的工作流

一、機器學習數據導入

1、 Pandas:機器學習數據導入的最佳選擇

Pandas DataFrame的數據結構優勢

Pandas之所以成為機器學習數據導入的首選,核心在于其DataFrame數據結構。DataFrame不僅是一個二維表格,更是一個為數據科學量身定制的數據容器:

  • 列式存儲:每列可以是不同數據類型,完美適配機器學習特征的多樣性
  • 索引系統:內置行列索引,支持快速數據定位和切片
  • 內存優化:自動類型推斷和內存管理,避免不必要的內存浪費

?

2、與其他方法的差異

讓我們通過實際代碼來對比三種方法的差異:

方法1:Python標準庫 - 手動處理每個細節

from csv import reader
import numpy as npfilename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:readers = reader(raw_data, delimiter=',')x = list(readers)data = np.array(x).astype('float')  # 手動類型轉換print(data.shape)

方法2:NumPy - 適合純數值數據

from numpy import loadtxtfilename = 'pima_data.csv'
with open(filename, 'rt') as raw_data:data = loadtxt(raw_data, delimiter=',')print(data.shape)

方法3:Pandas - 一行代碼完成復雜任務

from pandas import read_csvfilename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
print(data.shape)

?
核心差異分析

Pandas的優勢不僅在于語法簡潔,更重要的是它在背后自動處理了復雜邏輯

  1. 自動類型推斷:無需手動指定數據類型,智能識別數字、文本、日期
  2. 缺失值處理:自動將空值轉換為NaN,統一處理邏輯
  3. 列名管理:支持自定義列名,便于后續數據操作
  4. 內存優化:大文件時采用懶加載策略,避免內存溢出

而標準庫和NumPy都需要手動處理這些細節,導致代碼復雜度呈指數級增長。

?
選擇推薦

場景推薦方案原因
機器學習項目Pandas生態完整,與scikit-learn無縫集成
大規模數值計算NumPy + Pandas結合NumPy的計算性能和Pandas的易用性
簡單數據處理標準庫無外部依賴,適合輕量級場景

?

二、機器學習數據理解的系統化方法論

數據理解的本質不是簡單的數據瀏覽,而是通過系統化的觀察和分析,發現數據中隱藏的模式、問題和機會,從而指導后續的特征工程和算法選擇

一個經典的失敗案例:某團隊花費3個月訓練復雜的深度學習模型,準確率始終無法提升。最后發現問題出在數據上—目標變量分布極不均衡(99%為負例),而他們從未做過類別分布分析。

?

1、數據審查方法論:六維數據畫像技術

一個完整的數據畫像需要從六個維度進行審查:

維度1:數據結構審查

from pandas import read_csvfilename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)# 查看數據規模和結構
print(data.shape)
print(data.dtypes)

關鍵問題:數據規模是否足夠?特征類型是否合理?

?

維度2:數據質量檢查

# 查看前10行,發現數據模式
print(data.head(10))# 描述性統計,發現異常值
print(data.describe())

在這里插入圖片描述

說明了數據集中各數值型特征的分布情況,包括均值、極值、分布范圍等。通過這些統計量,可以初步發現數據中的異常值(比如最大值或最小值遠離均值,或者四分位數間距很大等)。

關鍵問題:是否存在缺失值?數值范圍是否合理?

?

維度3:目標變量分析

# 類別分布分析
print(data.groupby('class').size())
  • 分析數據集中class這一列的類別分布情況,即每個類別有多少條數據。
  • 常用于分類問題的數據探索階段,幫助了解各類別樣本是否均衡。

關鍵問題:類別是否均衡?是否需要重采樣?

?

維度4:特征關聯分析

from pandas import set_optionset_option('display.width', 100)
set_option('display.precision', 2)
print(data.corr(method='pearson'))

在這里插入圖片描述

  • 計算了皮爾遜相關系數矩陣。皮爾遜相關系數反映了兩個變量之間的線性相關程度,取值范圍為 [-1, 1],1 表示完全正相關,-1 表示完全負相關,0 表示無線性相關。
  • 即數據集中各數值型特征之間的相關性矩陣,方便你分析變量之間的關系。

關鍵問題:哪些特征與目標變量強相關?是否存在多重(ing)共線性?

?

維度5:數據分布特征

# 計算偏態系數
print(data.skew())

偏態系數衡量的是數據分布的對稱性。
偏態系數 = 0,表示分布完全對稱(如正態分布)。
偏態系數 >0,表示分布右偏(長尾在右邊,數據集中在左邊)。
偏態系數 < 0,表示分布左偏(長尾在左邊,數據集中在右邊)。
?
通過查看偏態系數,可以判斷數據是否偏離正態分布。偏態較大的特征,可能需要做對數變換、Box-Cox變換等預處理,以便更好地建模。

關鍵問題:數據分布是否符合算法假設?是否需要變換?

?

維度6:數據完整性

# 檢查缺失值
print(data.isnull().sum())

?

這六個維度的檢查順序遵循了從宏觀到微觀,從結構到內容的認知規律:

  • 結構審查建立整體的數據認知
  • 質量檢查發現數據可靠性問題
  • 目標分析明確建模難度和策略
  • 關聯分析揭示特征工程方向
  • 分布分析指導算法選擇
  • 完整性檢查確定數據清洗優先級

?

2、從數據觀察到算法選擇的邏輯鏈條

1、數據特征→算法匹配

通過系統化的數據理解,我們可以建立數據特征到算法選擇的映射關系

數據特征算法選擇原因
數值型+線性關系線性回歸、嶺回歸符合線性假設,計算效率高
高維稀疏數據邏輯回歸、SVM處理高維特征能力強
類別不均衡隨機森林+重采樣對不均衡數據魯棒性好
非線性關系復雜梯度提升樹、神經網絡強大的非線性擬合能力

?

2、決策示例

假設通過數據理解發現:

目標變量類別比例為7:3(輕度不均衡)、特征間存在中等程度相關性(0.3-0.6)、部分特征呈現右偏分布。

決策邏輯

  1. 類別不均衡程度中等 → 可以使用類別權重平衡,無需重采樣
  2. 特征相關性適中 → 可以保留所有特征,無需降維
  3. 數據右偏 → 建議使用基于樹的算法(對分布不敏感)

推薦算法:隨機森林 + 類別權重調整

?

三、數據可視化驅動的機器學習決策

可視化的核心價值:它能夠揭示統計數字背后的數據結構、異常模式和潛在關系,讓我們在建模之前就能洞察數據的本質特征。

一個典型的例子:某數據科學家通過describe()發現某特征均值為50,看似正常。但通過箱線圖可視化后發現,數據呈現雙峰分布,實際上是兩個不同群體的混合,這直接影響了后續的特征工程策略。

1、五維可視化分析

下面將從分布、異常、連續性、關聯、交互五個維度進行系統化分析

維度1:直方圖:分布形態分析 - "數據長什么樣?

from pandas import read_csv
import matplotlib.pyplot as pltfilename = 'pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)# 直方圖 - 揭示頻率分布
data.hist()
plt.show()

在這里插入圖片描述
代碼為數據集中的每個數值型特征繪制直方圖,直觀展示其取值分布和頻率,幫助你了解數據的整體分布特征。

核心洞察:直方圖能夠識別數據的分布類型(正態、偏態、雙峰),這直接影響算法選擇。

?

維度2:箱線圖:分布細節分析 - “異常值在哪里?”

# 箱線圖 - 識別異常值和四分位數
data.plot(kind='box', subplots=True, layout=(3,3), sharex=False)
plt.show()

在這里插入圖片描述

箱線圖(Boxplot)是一種常用的統計圖表,用于展示數據的分布特征、中心位置、離散程度以及異常值。
?
箱線圖的結構

  • 箱體(Box):表示數據的中間50%(從第1四分位數Q1到第3四分位數Q3)。
  • 中位線(Median):箱體中間的綠線,表示數據的中位數(第2四分位數Q2)。
  • “胡須”(Whiskers):從箱體延伸出去的線,通常延伸到1.5倍四分位距(IQR)以內的數據。(IQR=Q3-Q1,四分位距 ing)。
  • 異常值(Outliers):超出“胡須”范圍的點,單獨以小圓點等方式標出。

具體分析

一、preg, plas, pres, skin, test, mass, pedi, age 字段數據

  1. 這些特征的箱線圖都顯示了不同程度的異常值(上方或下方的圓點),說明這些特征中有一些數據點遠離主流分布,可能是極端值或錄入錯誤。
  2. 箱體高度:箱體越高,說明該特征的中間50%數據分布越分散;越矮則越集中。 中位線位置:如果中位線偏向箱體上方或下方,說明數據分布有偏態。
    ?

二、class 字段數據
這個特征的箱線圖顯示為0和1的分布(因為是分類變量),沒有異常值,箱體覆蓋了0和1兩個取值。
?
三、結論

  1. 異常值:如test、skin、pedi等特征有較多異常值(上方或下方的圓點)。
  2. 分布偏態:如preg、pedi等特征的中位線偏下,說明數據右偏。
  3. 數據分布:大部分特征的箱體都比較靠近下方,說明數據集中在較小的取值區間,少數點取值很大。

通過這些箱線圖,你可以快速發現哪些特征有異常值、分布是否偏態、數據是否集中等,為后續的數據清洗和建模提供依據

?

維度3:密度圖:連續性分析 - “數據如何變化?”

# 密度圖 - 顯示連續分布特征
data.plot(kind='density', subplots=True, layout=(3,3), sharex=False)
plt.show()

在這里插入圖片描述
密度圖能說明什么?

  1. 數據的分布形態:可以直觀地看到數據是單峰(一個高峰)、多峰(多個高峰)、偏態(左偏/右偏)還是近似正態分布。 比直方圖更平滑,能更好地反映數據的真實分布趨勢。
  2. 數據的集中趨勢和離散程度:峰值高且窄,說明數據集中在某個區間。 峰值低且寬,說明數據分布較分散。
  3. 是否有異常分布或多重分布:如果密度圖有多個峰,說明數據可能由多個不同的子群體組成(多模態分布)。 可以輔助發現異常值(極端的孤立小峰)。
  4. 數據的偏態情況:峰值偏左,右側尾巴長,說明右偏(正偏態)。 峰值偏右,左側尾巴長,說明左偏(負偏態)。

核心洞察:密度圖能夠發現數據的平滑分布模式,識別潛在的數據生成機制。

?

維度4:熱力圖:關聯強度分析 - “特征間如何影響?”

import numpy as np# 相關性熱力圖 - 顯示特征間關聯強度
correlations = data.corr()
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(correlations, vmin=-1, vmax=1)
fig.colorbar(cax)
ticks = np.arange(0, 9, 1)
ax.set_xticks(ticks)
ax.set_yticks(ticks)
ax.set_xticklabels(names)
ax.set_yticklabels(names)
plt.show()

在這里插入圖片描述

熱力圖是一種用顏色深淺來表示數值大小的可視化方式。在相關性熱力圖中,每個格子代表兩個特征之間的相關系數(correlation coefficient),顏色越接近黃色,相關性越強(正相關);顏色越接近深藍色,相關性越弱或為負相關。

熱力圖的作用

  • 發現強相關特征:如果兩個特征高度相關,可能存在冗余,可以考慮去除其中一個,避免多重共線性。
  • 發現無關特征:相關系數接近0的特征對彼此影響小,適合獨立建模。
  • 輔助特征工程:根據相關性調整特征選擇、降維等策略。

圖中的對角線都是黃色(相關系數為1)。其他格子的顏色大多為綠色或青色,說明大部分特征之間的線性相關性不強。如果有某兩個特征之間的格子顏色明顯偏黃或偏藍,說明它們之間有較強的正相關或負相關關系。

?

維度5:關系模式分析 - “特征間如何交互?”

from pandas.plotting import scatter_matrix# 散點圖矩陣 - 顯示特征間非線性關系
scatter_matrix(data)
plt.show()
  1. 什么是散點矩陣圖?
    散點矩陣圖會將數據集中的每一對數值型特征都畫成一個散點圖,排列成一個矩陣。 對角線上的圖通常是每個特征的直方圖(顯示該特征的分布)。 非對角線上的每個小圖,表示兩個特征之間的散點分布關系。
  2. 散點矩陣圖能看出什么?
    • 特征之間的關系:可以直觀地看到任意兩列特征之間的關系(線性、非線性、無關等)。
      a. 如果兩個特征之間的點分布成一條直線,說明它們高度線性相關。
      b. 如果點分布成某種曲線,說明它們有非線性關系。
      c. 如果點分布很分散,沒有明顯形狀,說明它們之間沒有明顯關系。
    • 異常值: 可以發現某些特征組合下的極端點(離群點)。
    • 分布特征:對角線上的直方圖顯示每個特征的分布形態(如正態分布、偏態、多峰等)。
    • 多重共線性:如果某兩列的散點圖呈現出很強的線性關系,說明這兩個特征可能存在多重共線性。

在這里插入圖片描述

散點圖矩陣能夠全面、直觀地展示數據集中各特征之間的兩兩關系和各自分布。
幫助你發現特征間的相關性、異常值、分布形態等,為后續的數據預處理和特征工程提供依據。

?

2、"觀察-提問-決策"閉環系統

可視化分析的核心不是看圖,而是建立從觀察到決策的邏輯鏈條

第一步:結構化觀察

  • 分布形態:是否符合正態分布?
  • 異常值:異常值比例和位置?
  • 關聯性:哪些特征強相關?

第二步:關鍵問題提煉

  • 數據質量:異常值是噪聲還是有價值的信號?
  • 特征工程:是否需要變換或組合特征?
  • 算法選擇:數據特征適合哪類算法?

第三步:決策規則制定

觀察結果提問決策行動
數據嚴重偏態是否需要變換?應用對數變換或Box-Cox變換
存在強相關特征是否存在冗余?考慮降維或特征選擇
發現異常值聚集是否為特殊群體?分層建模或異常檢測
非線性關系明顯線性模型是否適用?選擇基于樹或核方法的算法

?

1、示例說明

假設通過五維可視化發現:

  • 直方圖顯示:目標變量呈現雙峰分布;
  • 箱線圖顯示:某特征存在大量異常值;
  • 相關性圖顯示:兩個特征高度相關(r>0.8);
  • 散點圖顯示:特征與目標存在明顯非線性關系。

決策邏輯

  1. 雙峰分布 → 可能存在隱含的數據子群 → 考慮聚類或分層建模
  2. 大量異常值 → 需要異常值處理策略 → 使用魯棒性強的算法
  3. 高度相關特征 → 存在多重共線性 → 進行特征選擇或正則化
  4. 非線性關系 → 線性模型不適用 → 選擇隨機森林或XGBoost

最終決策:使用隨機森林算法 + 特征選擇 + 異常值處理的組合策略

?

2、可視化驅動的工作流

數據導入
五維可視化
數據決策
針對性建模
高效優化

?

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

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

相關文章

AI煉丹日志-30-新發布【1T 萬億】參數量大模型!Kimi?K2開源大模型解讀與實踐

點一下關注吧&#xff01;&#xff01;&#xff01;非常感謝&#xff01;&#xff01;持續更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持續更新中&#xff01;&#xff08;長期更新&#xff09; AI煉丹日志-29 - 字節跳動 DeerFlow 深度研究框斜體樣式架 私…

如何關閉Elasticsearch的安全認證的解決方法

在Elasticsearch 中&#xff0c;啟動之后&#xff0c;需要輸入用戶名和密碼&#xff0c;才可以訪問&#xff0c;在測試環境中&#xff0c;很不方便&#xff0c;本章教程&#xff0c;主要介紹如何關閉Elasticsearch 的安全認證。在 Elasticsearch 8.x / 9.x 中&#xff0c;默認是…

day051-ansible循環、判斷與jinja2模板

文章目錄0. 老男孩思想-男女性需求差異1. 手動指定客戶機密碼2. 批量更新主機名2.1 hostname模塊2.2 添加主機清單變量2.3 編寫批量修改主機名劇本2.4 修改hosts文件2.5 分發hosts文件劇本3. ansible的并行進程數4. 分組設置主機密碼-主機清單分組變量5. 案例&#xff1a;ansib…

大模型安全建設:破誤區、識風險、筑防線20250714

&#x1f510; 大模型安全建設&#xff1a;破誤區、識風險、筑防線作者&#xff1a;Narutolxy&#xff5c;編輯時間&#xff1a;2025年7月在負責公司 AI 產品落地的過程中&#xff0c;一度以為只要選用主流開源大模型&#xff0c;前面加一層“敏感詞提示詞過濾”&#xff0c;就…

fastadmin中ajax彈窗修改文字為英文

需要把上圖的中文改為 切換語言自動切換成英文找到這個文件public/assets/js/backend.js找到如下圖部分 // //點擊包含.btn-ajax的元素時發送Ajax請求 原頁面// $(document).on(click, .btn-ajax,.ajaxit, function (e) {// var that this;// var options $.exte…

大型語言模型(LLM)的技術面試題

大型語言模型(LLM)的技術面試題 目錄 大型語言模型(LLM)的技術面試題 一、提示校準:減輕提示學習中的偏見 二、矢量存儲的適用場景 三、模型與人類價值觀對齊的技術 四、RLHF中的Reward Hacking 五、微調效果的關鍵影響因素:預訓練模型架構與大小 六、Transformer自注意力…

數字IC后端培訓教程之數字IC后端項目典型問題解析

今天給大家分享下最近幾個典型的數字后端項目案例&#xff0c;希望對大家的學習和工作有所幫助。 數字IC后端培訓教程之數字后端項目典型項目案例解析 Q1:星主&#xff0c;有啥辦法可以看到refinePlace或者ecoPlace都動到了那些inst嗎&#xff0c;log里只會有mean和max move&…

網絡(數據庫1)

常用數據庫: 1.關系型數據庫: 將復雜的數據結構簡化為二維表格形式 大型:0racle、DB2 中型:MySq1、sQLServer 小型:Sqlite 2.非關系型數據庫以鍵值對存儲,且結構不固定。//JSON Redis MongoDB數據存儲&#xff1a;變量、數組、鏈表 內存 &…

6.刪除-demo

在連接數據庫的基礎上deleteResult, err : db.Exec("DELETE FROM user0 WHERE id ?", 1)package main//刪除-demoimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""log" )func main() {db, err : sql.Open…

人機協作系列(四)AI編程的下一個范式革命——看Factory AI如何重構軟件工程?

最近這段時間&#xff0c;我發現一個很有意思的現象&#xff1a;那些曾經對 AI 編程工具持懷疑態度的技術領袖們&#xff0c;態度正在集體轉變。就像 Flask 的作者 Armin Ronacher&#xff0c;他之前還說 “不敢授權 AI”&#xff0c;現在卻坦言 “愿意將工程主導權交給編程代理…

在javaScript里刪除節點以及添加節點

1.在javaScript里刪除節點在學習中我們只學到了一種刪除DOM節點的方法那就是通過元素的父元素來刪除該元素&#xff0c;但后面我查閱資料發現刪除節點還有其他方法。1.使用 removeChild() 方法&#xff08;最常用&#xff09;我們需要獲得元素的父元素&#xff0c;如果不知道可…

貪心算法題解——跳躍游戲【LeetCode】

55. 跳躍游戲 一、算法邏輯&#xff08;逐步思路&#xff09; 問題描述&#xff1a; 給定一個非負整數數組 nums&#xff0c;其中 nums[i] 表示從位置 i 最多可以跳躍的步數。 從起點 0 出發&#xff0c;判斷是否能夠到達最后一個位置。 解題思路&#xff1a; 設一個變量 mx…

復現永恒之藍

一.打開msf找到永恒之藍的漏洞直接運行這個漏洞二.查詢這個漏洞模塊需要配置的參數配置攻擊主機的ip三.沒有做免殺的話&#xff0c;記得關閉防火墻四.直接運行這里已經顯示拿下目標主機五.測試給目標主機添加一個文檔六.查看目標主機有沒有剛才編寫的文檔

游戲行業中的惡夢:不斷升級的DDoS攻擊

近年來&#xff0c;游戲行業快速發展&#xff0c;成為全球娛樂市場的重要組成部分。然而&#xff0c;伴隨著這一行業的繁榮&#xff0c;網絡安全問題也隨之而來。游戲公司面臨著一種特殊的威脅&#xff1a;分布式拒絕服務&#xff08;DDoS&#xff09;攻擊。這種攻擊不僅對公司…

2025年自動化工程、物聯網與計算機應用國際會議(AEITCA 2025)

2025年自動化工程、物聯網與計算機應用國際會議&#xff08;AEITCA 2025&#xff09; 2025 International Conference on Automation Engineering, Internet of Things, and Computer Applications一、大會信息會議簡稱&#xff1a;AEITCA 2025 大會地點&#xff1a;中國西安 審…

Gartner《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》學習心得

《JavaScript: Top Use Cases, Frameworks and Architecture Constraints》是一份面向企業技術決策者、軟件架構師與高級工程師的系統性研究筆記。全文以“何時用 JavaScript、如何用好 JavaScript”為主線,從語言特性、運行時差異、適用場景、主流框架、架構約束、生態現狀、…

比較vue和react框架

目錄 一、基礎語法 1.1、模板 vs JSX 1.2、指令 1.2.1、v-for vs Array.map 1.2.2、v-if vs 三元運算符或者&& 1.2.3、v-bind vs 直接在JSX里寫{變量} 1.2.4、v-show vs style和className 1.2.5、v-html vs dangerouslySetInnerHTML 1.3、數據綁定 1.4、數據…

插板式系統的“生命線“:EtherCAT分布式供電該如何實現?

在ZIO系列插板式模組系統中&#xff0c;EtherCAT分布式供電如同設備的血液循環網絡&#xff0c;其供電穩定性直接決定系統可靠性。本文將從電流計算到電源擴展&#xff0c;為您講解EtherCAT分布式供電該如何實現。ZIO系列插板式模組的電源介紹ZIO系列插板式I/O模塊 是ZLG開發的…

Qwen2-VL:提升視覺語言模型對任意分辨率世界的感知能力

溫馨提示&#xff1a; 本篇文章已同步至"AI專題精講" Qwen2-VL&#xff1a;提升視覺語言模型對任意分辨率世界的感知能力 摘要 我們提出了 Qwen2-VL 系列&#xff0c;這是對先前 Qwen-VL 模型的重大升級&#xff0c;重新定義了視覺處理中傳統的預設分辨率方法。Qwe…

C++類模版與友元

全局函數類內實現-直接在類內聲明友元即可全局函數類外實現-需要提前讓編譯器知道全局函數的存在#include <iostream> using namespace std;//通過全局函數來打印Person的信息template<class T1,class T2> class Person{//全局函數&#xff0c;類內實現friend void…