【機器學習-23】關聯規則(Apriori)算法:介紹、應用與實現

在現代數據分析中,經常需要從大規模數據集中挖掘有用的信息。關聯規則挖掘是一種強大的技術,可以揭示數據中的隱藏關系和規律。本文將介紹如何使用Python進行關聯規則挖掘,以幫助您發現數據中的有趣模式。

在這里插入圖片描述

一、引言

1. 簡要介紹關聯規則學習的概念和重要性

關聯規則學習是一種數據挖掘技術,旨在發現數據集中項之間的有趣關系。這些關系通常以“如果…那么…”的形式呈現,表示一種條件與結論的關聯性。在商業分析中,關聯規則學習常用于識別顧客購買行為中的模式,例如哪些商品經常被一起購買。通過發現這些模式,企業可以制定更有效的營銷策略,提高銷售額和客戶滿意度。

關聯規則學習的重要性在于它能夠從大量數據中提取出有價值的信息,幫助企業更好地理解客戶行為和市場需求。這些信息不僅可以用于產品推薦、交叉銷售等場景,還可以為企業的戰略決策提供有力支持。

2. 引入Apriori算法,解釋其在關聯規則學習中的地位

在關聯規則學習領域,Apriori算法是一種廣泛應用的算法。它基于兩個核心思想:頻繁項集生成和剪枝策略。通過逐步生成和評估候選項集,Apriori算法能夠有效地找出數據中的頻繁項集和關聯規則。由于其高效性和實用性,Apriori算法在關聯規則學習中占據了重要地位。

Apriori算法的重要性在于它提供了一種有效的手段來發現數據中的關聯關系。與其他算法相比,Apriori算法具有較低的計算復雜度和較高的準確性,使得它成為關聯規則學習中的首選算法之一。

3. 闡述本文的目的和結構

本文旨在詳細介紹Apriori算法及其在關聯規則學習中的應用。首先,我們將對關聯規則學習進行概述,闡述其基本概念和應用場景。接著,我們將深入介紹Apriori算法的原理和實現過程,包括頻繁項集生成、剪枝策略以及算法優化等方面。最后,我們將通過案例研究來展示Apriori算法在實際應用中的效果和價值。

本文的結構如下:引言部分將介紹關聯規則學習和Apriori算法的基本概念;關聯規則學習概述部分將詳細闡述關聯規則學習的應用場景和主要挑戰;Apriori算法介紹部分將深入探討算法的原理和實現細節;Apriori算法的應用部分將通過案例研究來展示算法的實際應用效果;最后,總結與展望部分將對全文進行總結,并展望關聯規則學習領域的未來發展方向。

二、關聯規則學習概述

定義關聯規則學習

關聯規則學習是一種在大型數據集中尋找有趣關系的方法。這種關系通常表現為項集之間的強關聯性,即如果某個項集(集合中的一組項)在數據集中頻繁出現,那么另一個項集也很有可能隨之出現。關聯規則學習的主要目標是找出這樣的項集,并生成形如“如果購買了A商品,那么也可能會購買B商品”的規則。

在關聯規則學習中,通常使用支持度和置信度這兩個指標來量化項集之間的關聯性。支持度表示項集在數據集中出現的頻率,而置信度則表示在給定一個項集出現的情況下,另一個項集也出現的概率。

關聯規則學習的應用場景
  1. 市場籃子分析:關聯規則學習在零售行業中有著廣泛的應用,特別是在市場籃子分析方面。通過分析顧客的購買記錄,可以發現哪些商品經常被一起購買,從而制定更有效的商品擺放策略、促銷活動和交叉銷售策略。

  2. 推薦系統:關聯規則學習也被廣泛應用于推薦系統中。通過分析用戶的歷史行為和偏好,可以找出用戶可能感興趣的物品或服務,并為其推薦相關的內容。這種推薦方式簡單直觀,且易于理解和實現。

  3. 網絡日志分析:在網絡安全和日志分析中,關聯規則學習可以幫助發現異常行為和潛在的安全威脅。通過分析網絡日志中的事件和模式,可以發現哪些事件之間存在關聯,從而識別出可能的攻擊行為或安全漏洞。

  4. 疾病診斷:在醫療領域,關聯規則學習可以幫助醫生發現疾病之間的關聯性和潛在風險因素。通過分析病人的病歷和診斷記錄,可以發現哪些癥狀或疾病經常同時出現,從而為疾病的診斷和治療提供有價值的參考。

關聯規則學習的主要挑戰
  1. 數據稀疏性:在大型數據集中,許多項集可能只出現一次或幾次,導致支持度和置信度的計算變得不準確。此外,數據中的噪聲和異常值也可能對關聯規則的學習產生負面影響。

  2. 計算復雜性:關聯規則學習需要計算所有可能項集的支持度和置信度,這可能導致計算量非常大。特別是在項集數量較多時,計算時間可能呈指數級增長。

  3. 規則解釋性:生成的關聯規則需要具有可解釋性,以便用戶能夠理解和應用這些規則。然而,在某些情況下,生成的規則可能過于復雜或難以理解,這會影響其在實際應用中的效果。

  4. 規則冗余性:在生成的關聯規則中,可能存在大量的冗余規則。這些規則在內容上相似或重復,但可能具有不同的支持度和置信度。如何有效地去除冗余規則并保留最有價值的規則是一個挑戰。

三、關聯規則中的一些概念

序號牛奶啤酒面包花生醬果凍
T110011
T200101
T301001
T410101
T511000
T601001
T711000
T811011
T911001
  • 一個樣本稱為一個“事務” ;上面的T1稱為一個“事務
  • 每個事務由多個屬性來確定,這里的屬性稱為“項” ,這里的 牛奶啤酒面包花生醬果凍 都“
  • 多個項組成的集合稱為“項集
由k個項構成的集合
  • {牛奶}、{啤酒}都是1-項集;
  • {牛奶,果凍}是2-項集;
  • {啤酒,面包,牛奶}是3-項集
X==>Y含義:
  • X和Y是項集
  • X稱為規則前項(antecedent)
  • Y稱為規則后項(consequent)
事務僅包含其涉及到的項目,而不包含項目的具體信息。
  • 在超級市場的關聯規則挖掘問題中事務是顧客一次購物所購買的商品,但事務中并不包含這些商品的具體信息,如商品的數量、價格等。
支持度(support):一個項集或者規則在所有事務中出現的頻率,σ(X):表示項集X的支持度計數
  • 項集X的支持度:s(X)=σ(X)/N
  • 規則X==>Y表示物品集X對物品集Y的支持度,也就是物品集X和物品集Y同時出現的概率
  • 某天共有100個顧客到商場購買物品,其中有30個顧客同時購買了啤酒和尿布,那么上述的關聯規則的支持度就是30%
置信度(confidence):確定Y在包含X的事務中出現的頻繁程度。c(X → Y) = σ(X∪Y)/σ(X)
  • p(Y│X)=p(XY)/p(X)。
  • 置信度反應了關聯規則的可信度—購買了項目集X中的商品的顧客同時也購買了Y中商品的可能性有多大
  • 購買薯片的顧客中有50%的人購買了可樂,則置信度為50%
(X , Y)==>Z :
交易ID購買的商品
1A,B,C
2A,C
3A,D
4B,E,F
  • 支持度:交易中包含{X 、 Y 、 Z}的可能性

  • 置信度:包含{X 、 Y}的交易中也包含Z的條件概率

設最小支持度為50%, 最小可信度為 50%, 則可得到 :

  • A==>C (50%, 66.6%)
  • C==>A (50%, 100%)
    若關聯規則X->Y的支持度和置信度分別大于或等于用戶指定的最小支持率minsupport和最小置信度minconfidence,則稱關聯規則X->Y為強關聯規則,否則稱關聯規則X->Y為弱關聯規則。
提升度(lift):物品集A的出現對物品集B的出現概率發生了多大的變化
  • lift(A==>B)=confidence(A==>B)/support(B)=p(B|A)/p(B)
  • 現在有** 1000 ** 個消費者,有** 500** 人購買了茶葉,其中有** 450人同時** 購買了咖啡,另** 50人** 沒有。由于** confidence(茶葉=>咖啡)=450/500=90%** ,由此可能會認為喜歡喝茶的人往往喜歡喝咖啡。但如果另外沒有購買茶葉的** 500人** ,其中同樣有** 450人** 購買了咖啡,同樣是很高的** 置信度90%** ,由此,得到不愛喝茶的也愛喝咖啡。這樣看來,其實是否購買咖啡,與有沒有購買茶葉并沒有關聯,兩者是相互獨立的,其** 提升度90%/[(450+450)/1000]=1** 。

由此可見,lift正是彌補了confidence的這一缺陷,if lift=1,X與Y獨立,X對Y出現的可能性沒有提升作用,其值越大(lift>1),則表明X對Y的提升程度越大,也表明關聯性越強。
在這里插入圖片描述#### Leverage 與 Conviction的作用和lift類似,都是值越大代表越關聯

  • Leverage 😛(A,B)-P(A)P(B)
  • Conviction:P(A)P(!B)/P(A,!B)

四、使用mlxtend工具包得出頻繁項集與規則

  • pip install mlxtend
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules

自定義一份購物數據集

data = {'ID':[1,2,3,4,5,6],'Onion':[1,0,0,1,1,1],'Potato':[1,1,0,1,1,1],'Burger':[1,1,0,0,1,1],'Milk':[0,1,1,1,0,1],'Beer':[0,0,1,0,1,0]}
df = pd.DataFrame(data)
df = df[['ID', 'Onion', 'Potato', 'Burger', 'Milk', 'Beer' ]]dfID	Onion	Potato	Burger	Milk	Beer
0	1	1	1	1	0	0
1	2	0	1	1	1	0
2	3	0	0	0	1	1
3	4	1	1	0	1	0
4	5	1	1	1	0	1
5	6	1	1	1	1	0

設置支持度 (support) 來選擇頻繁項集.

  • 選擇最小支持度為50%

  • apriori(df, min_support=0.5, use_colnames=True)

frequent_itemsets = apriori(df[['Onion', 'Potato', 'Burger', 'Milk', 'Beer' ]], min_support=0.50, use_colnames=True)frequent_itemsetssupport	itemsets
0	0.666667	(Onion)
1	0.833333	(Potato)
2	0.666667	(Burger)
3	0.666667	(Milk)
4	0.666667	(Potato, Onion)
5	0.500000	(Burger, Onion)
6	0.666667	(Burger, Potato)
7	0.500000	(Milk, Potato)
8	0.500000	(Burger, Potato, Onion)

返回的3種項集均是支持度>=50%

計算規則

  • association_rules(df, metric='lift', min_threshold=1)
  • 可以指定不同的衡量標準與最小閾值
rules = association_rules(frequent_itemsets, metric='lift', min_threshold=1)rulesantecedents	consequents	antecedent support	consequent support	support	confidence	lift	leverage	conviction
0	(Potato)	(Onion)	0.833333	0.666667	0.666667	0.80	1.200	0.111111	1.666667
1	(Onion)	(Potato)	0.666667	0.833333	0.666667	1.00	1.200	0.111111	inf
2	(Burger)	(Onion)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333
3	(Onion)	(Burger)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333
4	(Burger)	(Potato)	0.666667	0.833333	0.666667	1.00	1.200	0.111111	inf
5	(Potato)	(Burger)	0.833333	0.666667	0.666667	0.80	1.200	0.111111	1.666667
6	(Burger, Potato)	(Onion)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333
7	(Burger, Onion)	(Potato)	0.500000	0.833333	0.500000	1.00	1.200	0.083333	inf
8	(Potato, Onion)	(Burger)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333
9	(Burger)	(Potato, Onion)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333
10	(Potato)	(Burger, Onion)	0.833333	0.500000	0.500000	0.60	1.200	0.083333	1.250000
11	(Onion)	(Burger, Potato)	0.666667	0.666667	0.500000	0.75	1.125	0.055556	1.333333

返回的是各個的指標的數值,可以按照感興趣的指標排序觀察,但具體解釋還得參考實際數據的含義。

rules [ (rules['lift'] >1.125)  & (rules['confidence']> 0.8)  ]antecedents	consequents	antecedent support	consequent support	support	confidence	lift	leverage	conviction
1	(Onion)	(Potato)	0.666667	0.833333	0.666667	1.0	1.2	0.111111	inf
4	(Burger)	(Potato)	0.666667	0.833333	0.666667	1.0	1.2	0.111111	inf
7	(Burger, Onion)	(Potato)	0.500000	0.833333	0.500000	1.0	1.2	0.083333	inf

這幾條結果就比較有價值了:

  • (洋蔥和馬鈴薯)(漢堡和馬鈴薯)可以搭配著來賣
  • 如果洋蔥和漢堡都在購物籃中, 顧客買馬鈴薯的可能性也比較高,如果他籃子里面沒有,可以推薦一下.

五、 性能優化

在關聯規則學習中,Apriori算法雖然強大且廣泛應用,但在處理大型數據集時可能會遇到性能瓶頸。因此,研究者們提出了一系列優化方法來提升Apriori算法及其同類算法的性能。以下是幾種常見的性能優化方法,以及它們如何影響算法性能的評估。

1. FP-Growth算法

FP-Growth(Frequent Pattern Growth)算法是Apriori算法的一個有效替代方案,尤其在處理大型數據集時表現出色。FP-Growth算法使用一種稱為FP樹(Frequent Pattern Tree)的數據結構來存儲頻繁項集的信息,并基于這個數據結構進行頻繁項集和關聯規則的挖掘。FP樹通過共享前綴來減少存儲空間,并允許在不生成候選項集的情況下直接生成頻繁項集,從而顯著提高了算法的效率。

評估FP-Growth算法的性能時,通常會關注其在處理大型數據集時的運行時間、內存消耗以及生成的關聯規則的質量。與Apriori算法相比,FP-Growth算法通常能夠在更短的時間內處理更多的數據,并生成更準確和有用的關聯規則。

2. 并行化

并行化是另一種提高關聯規則學習算法性能的有效方法。通過將算法的計算任務分配給多個處理器或計算機節點,可以顯著減少算法的運行時間。對于Apriori算法和FP-Growth算法等關聯規則學習算法,并行化可以通過多種方式實現,例如將數據集劃分為多個子集并在不同處理器上獨立處理、在多個節點上并行生成和評估候選項集等。

評估并行化算法的性能時,除了關注運行時間和內存消耗外,還需要考慮并行化過程中的通信開銷和負載均衡等因素。良好的并行化策略應該能夠確保各個處理器或節點之間的負載均衡,并減少不必要的通信開銷,從而最大化算法的性能提升。

3. 其他優化方法

除了FP-Growth算法和并行化之外,還有一些其他方法也可以用于優化關聯規則學習算法的性能。例如,可以通過改進算法的數據結構、減少候選項集的數量、利用數據挖掘中的采樣技術等來降低算法的計算復雜度。此外,還可以結合其他機器學習算法和技術來進一步提高關聯規則學習的準確性和效率。

在評估優化后的算法性能時,需要采用合適的評估指標和方法。常見的評估指標包括運行時間、內存消耗、生成的關聯規則的數量和質量等。為了獲得準確的評估結果,可以使用基準數據集進行測試,并將優化后的算法與原始算法以及其他相關算法進行比較。此外,還可以根據實際應用場景的需求和約束條件來定制評估指標和方法。

六、總結與展望

6.1 總結Apriori算法的優點和局限性

Apriori算法作為關聯規則學習的經典算法,具有其獨特的優點。首先,它通過逐步生成和評估候選項集,有效地找出了數據中的頻繁項集和關聯規則。其次,Apriori算法的計算過程簡單直觀,易于理解和實現。此外,Apriori算法還具有良好的可解釋性,生成的關聯規則可以直接用于實際應用中。

然而,Apriori算法也存在一些局限性。首先,在處理大型數據集時,Apriori算法的計算量可能會非常大,導致運行時間較長。其次,Apriori算法對候選項集的生成和評估采用了較為簡單的方式,可能會產生大量的冗余計算和冗余規則。最后,Apriori算法對數據的稀疏性和噪聲較為敏感,可能會影響其性能和準確性。

6.2 討論關聯規則學習領域的未來發展方向

關聯規則學習領域在未來將繼續發展,并呈現出以下幾個方向:

  1. 算法優化:針對Apriori算法等現有算法的局限性,研究者們將繼續探索新的優化方法和技術,以提高算法的性能和準確性。例如,可以進一步改進FP-Growth算法、利用并行化技術加速計算過程等。
  2. 深度學習在關聯規則學習中的應用:隨著深度學習技術的不斷發展,將深度學習應用于關聯規則學習中將是一個新的研究方向。深度學習可以自動學習數據中的復雜模式,有望進一步提高關聯規則學習的性能。
  3. 跨領域融合:關聯規則學習可以與其他數據挖掘和機器學習技術相結合,形成跨領域的融合方法。例如,可以將關聯規則學習與推薦系統、社交網絡分析等領域相結合,以發現更多有趣和有價值的信息。
  4. 實時關聯規則學習:隨著實時數據的不斷增長,實時關聯規則學習將成為一個重要的研究方向。研究者們將探索如何在數據流中實時發現關聯規則,并將其應用于實時推薦、異常檢測等場景中。
6.3 提出可能的改進方案和研究建議

針對Apriori算法和關聯規則學習領域的發展方向,我們提出以下可能的改進方案和研究建議:

  1. 優化候選項集生成和評估策略:通過改進候選項集的生成和評估策略,減少冗余計算和冗余規則的產生,提高算法的效率。
  2. 結合深度學習技術:將深度學習技術應用于關聯規則學習中,自動學習數據中的復雜模式,提高算法的準確性。
  3. 探索跨領域融合方法:將關聯規則學習與其他數據挖掘和機器學習技術相結合,形成跨領域的融合方法,以發現更多有趣和有價值的信息。
  4. 研究實時關聯規則學習算法:針對實時數據的特點,研究如何在數據流中實時發現關聯規則,并將其應用于實時應用中。

七、參考文獻

以下是本文引用的主要學術文獻和資料,這些文獻和資料為本文提供了理論基礎、算法細節和應用實例等方面的支持。

  1. Agrawal, R., & Srikant, R. (1994). Fast algorithms for mining association rules in large databases. In Proc. 20th int. conf. very large data bases, VLDB (pp. 487-499). This seminal paper introduced the Apriori algorithm for mining association rules in large databases. It discusses the basic principles and implementation of the algorithm.

  2. Han, J., & Kamber, M. (2006). Data mining: concepts and techniques. Morgan Kaufmann. This book provides a comprehensive overview of data mining techniques, including association rule learning. It discusses the Apriori algorithm and its extensions in detail.

  3. Li, H., Han, J., & Pei, J. (2001). FP-growth: frequent pattern growth in transactional databases. In Proc. 17th int. conf. data engineering (pp. 315-324). This paper proposes the FP-Growth algorithm as an efficient alternative to the Apriori algorithm for mining frequent itemsets and association rules.

  4. Liu, B., Hsu, W., & Ma, Y. (2002). Integrating classification and association rule mining. In Proc. 8th ACM SIGKDD int. conf. knowledge discovery and data mining (pp. 80-89). This paper discusses how association rule mining can be integrated with classification tasks to improve prediction performance.

  5. Zaki, M. J. (2000). Scalable algorithms for association mining. IEEE transactions on knowledge and data engineering, 12(3), 372-390. This paper discusses scalable algorithms for mining association rules in large datasets, including techniques for reducing the number of candidate itemsets.

八、附錄

額外數據集
  • GroceryStoreDataset.csv:一個包含超市購物籃數據的數據集,用于演示Apriori算法在市場籃子分析中的應用。

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

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

相關文章

[處理器芯片]-5 超標量CPU實現之ALU

ALU(Arithmetic Logic Unit,算術邏輯單元),是CPU執行單元中最主要的組成部分。 1 主要功能 算術運算:執行加法、減法、乘法和除法等算術運算。 邏輯運算:執行與、或、非、異或等邏輯運算。 移位運算&am…

動態路由實驗—OSPF

動態路由協議實驗-------OSPF 鏈路狀態路由選擇協議又被稱為最短路徑優先協議&#xff0c;它基SPF&#xff08;shortest path first &#xff09;算法 實驗要求&#xff1a;各個PC之間能夠互通 1.四臺PC配置如下 PC1 PC2 PC3 PC4 2.配置各個交換機的口子的IP R1 <HUAWE…

Room注解無效原因

在Android項目中&#xff0c;如果父模塊使用Kotlin&#xff0c;而子模塊用Java編寫&#xff0c;并且在子模塊中使用了Room庫&#xff0c;那么你會發現需要使用kapt而不是annotationProcessor來處理Room注解。這里有幾個原因和背景知識&#xff1a; 1. 項目配置的影響 父模塊的…

spiderfoot一鍵掃描IP信息(KALI工具系列九)

目錄 1、KALI LINUX簡介 2、spiderfoot工具簡介 3、在KALI中使用spiderfoot 3.1 目標主機IP&#xff08;win&#xff09; 3.2 KALI的IP 4、命令示例 4.1 web訪問 4.2 掃描并進行DNS解析 4.3 全面掃描 5、總結 1、KALI LINUX簡介 Kali Linux 是一個功能強大、多才多…

YOLOv8+PyQt:實時檢測(攝像頭、視頻)

1.YOLO&#xff1a;CPU實時檢測&#xff08;攝像頭、視頻&#xff09;https://blog.csdn.net/qq_45445740/article/details/106557451 2.YOLOv8PyQt&#xff0c;實現攝像頭或視頻的實時檢測 需要安裝 PySide6 和 ultralytics pip install PySide6 pip install ultralyticsfr…

基于docxtpl的模板生成Word

docxtpl是一個用于生成Microsoft Word文檔的模板引擎庫。它結合了docx模塊和Jinja2模板引擎&#xff0c;使用戶能夠使用Microsoft Word模板文件并在其中填充動態數據。這個庫提供了一種方便的方式來生成個性化的Word文檔&#xff0c;并支持條件語句、循環語句和變量等控制結構&…

如何在 Elasticsearch 中選擇精確 kNN 搜索和近似 kNN 搜索

作者&#xff1a;來自 Elastic Carlos Delgado kNN 是什么&#xff1f; 語義搜索&#xff08;semantic search&#xff09;是相關性排名的強大工具。 它使你不僅可以使用關鍵字&#xff0c;還可以考慮文檔和查詢的實際含義。 語義搜索基于向量搜索&#xff08;vector search&…

Angular Ivy:新渲染引擎的性能提升與優化

Angular Ivy是Angular 9及更高版本中引入的默認渲染引擎&#xff0c;它取代了以前的View Engine。Ivy的目標是提高Angular的性能、減少包大小和提高開發者的生產力。 1. AOT編譯的改進&#xff1a; 在Ivy中&#xff0c;Angular使用了更早的AOT&#xff08;Ahead-of-Time&…

在AnolisOS8.9系統安裝docker-compose

在AnolisOS8.9系統安裝docker-compose 下載docker-compose之前請先確保docker已經安裝完&#xff0c;教程可以參考 在阿里Anolis OS 8.9龍蜥操作系統安裝docker 下載最新版的docker-compose文件 sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0…

大數據工具之HIVE-參數調優,調度亂碼(二)

一、調度亂碼 在利用HUE工具,搭建WORKFLOW流程的過程中,如果直接執行hivesql數據正常,不會出現亂碼現象,如果利用WORKFLOW搭建的流程,進行數據的拉取,會出現數據中文亂碼現象,這些亂碼主要是由于select 中的硬編碼中文導致出現的現象 具體現象如下: select case when …

百度 提前批 國際化廣告部 (深圳-機器學習/數據挖掘/自然語言處理工程師) 一面+二面面經

文章目錄 0、面試情況1、一面1.1、簡歷上的項目介紹了個遍1.2、dbscan原理1.3、為什么梯度的負方向就是損失函數下降最快的方向&#xff1f;1.4、bn原理&#xff0c;為什么bn能解決過擬合&#xff0c;1.5、auc原理&#xff0c;為什么ctr或你的廣告推薦里用auc指標&#xff1f;1…

TG5032CGN TCXO 超高穩定10pin端子型適用于汽車動力轉向控制器

TG5032CGN TCXO / VC-TCXO是一款應用廣泛的晶振&#xff0c;具有超高穩定性&#xff0c;CMOS輸出和使用晶體基振的削波正弦波輸出形式。且有低相位噪聲優勢&#xff0c;是溫補晶體振蕩器(TCXO)和壓控晶體振蕩器(VCXO)結合的產物&#xff0c;具有TCXO和VCXO的共同優點&#xff0…

后臺接口返回void但是response有設置合適的相關信息,前端調用接口解析Blob數據下載excel文件

1、pom.xml文件增加依賴&#xff1a; <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency> 2、接口代碼如下&#xff1a; /*** 企業列表--導出*/GetMapping(value "/downloadTenantL…

微信小程序上線必備:SSL證書申請以及安裝

一、認識ssl證書 1、ssl證書是什么&#xff1f; SSL證書&#xff0c;全稱Secure Socket Layer Certificate&#xff0c;是一種數字證書&#xff0c;它遵循SSL&#xff08;現在通常指TLS&#xff0c;Transport Layer Security&#xff09;協議標準&#xff0c;用于在客戶端&…

SpringCloud系列(26)--OpenFeign超時控制

前言&#xff1a;在上一章節中我們簡單的介紹了如何使用OprnFeign去調用微服務&#xff0c;因為消費側和服務側是兩個不同的微服務&#xff0c;這樣可能會出現超時的現象&#xff0c;例如服務側需要3秒處理任何才能返回結果&#xff0c;但消費側可能2秒就斷開連接了&#xff0c…

【深度學習】2.單層感知機

目標&#xff1a; 實現一個簡單的二分類模型的訓練過程&#xff0c;通過模擬數據集進行訓練和優化&#xff0c;訓練目標是使模型能夠根據輸入特征正確分類數據。 演示: 1.通過PyTorch生成了一個模擬的二分類數據集&#xff0c;包括特征矩陣data_x和對應的標簽數據data_y。標簽…

加密與安全_AES RSA 密鑰對生成及PEM格式的代碼實現

文章目錄 RSA&#xff08;非對稱&#xff09;和AES&#xff08;對稱&#xff09;加密算法一、RSA&#xff08;Rivest-Shamir-Adleman&#xff09;二、AES&#xff08;Advanced Encryption Standard&#xff09; RSA加密三種填充模式一、RSA填充模式二、常見的RSA填充模式組合三…

新業務 新市場 | 靈途科技新品亮相馬來西亞亞洲防務展

5月6日&#xff0c;靈途科技攜新品模組與武漢長盈通光電&#xff08;股票代碼&#xff1a;688143&#xff09;攜手參加第18屆馬來西亞亞洲防務展。首次亮相海外&#xff0c;靈途科技便收獲全球客戶的廣泛關注&#xff0c;為公司海外市場開拓打下堅實基礎。 靈途科技與長盈通共同…

Dbs封裝_連接池

1.Dbs封裝 每一個數據庫都對應著一個dao 每個dao勢必存在公共部分 我們需要將公共部分抽取出來 封裝成一個工具類 保留個性化代碼即可 我們的工具類一般命名為xxxs 比如Strings 就是字符串相關的工具類 而工具類 我們將其放置于util包中我們以是否有<T>區分泛型方法和非泛…

Python并發編程學習記錄

1、初識并發編程 1.1、串行&#xff0c;并行&#xff0c;并發 串行(serial)&#xff1a;一個cpu上按順序完成多個任務&#xff1b; 并行(parallelism)&#xff1a;任務數小于或等于cup核數&#xff0c;多個任務是同時執行的&#xff1b; 并發(concurrency)&#xff1a;一個…