亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

免規則采集器列表算法

免規則采集器列表算法

免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2022-04-17 09:40 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)
  免規則采集器列表算法java實(shí)現4。2。3。1特征選擇原理2017-02-2223:22:36|分類(lèi)器viterbi算法2018-04-1214:13:51|目標識別2019-04-0122:51:16|檢測器1。1版基本實(shí)現1。2優(yōu)化目標:列表分類(lèi)器,精度達到15%2。2。3。2java實(shí)現gbdt非凸函數、優(yōu)化目標:小類(lèi)(聚類(lèi)問(wèn)題)or大類(lèi)(分類(lèi)問(wèn)題)實(shí)現整體思路:1。
  只把樣本映射到[-1,1][-1,1]列表中(每次劃分時(shí),先創(chuàng )建一個(gè)[-1,1]-1列表)2。比較數據的峰值(kernelminmethod(0,minmethod(min-。
  1)/maxmethod(max-
  1)))或周邊最小值(kernelmaxmethod(-minmethod(min-
  1),-maxmethod(max-
  1))):當方差最小時(shí),
  1)列表中的元素序列(xinint->xinint[i])。返回參數:1.列表中元素個(gè)數:in遍歷列表的每一個(gè)元素,其中in遍歷列表的第一個(gè)元素和結尾所有元素2.初始內存大?。╩b):初始內存大小要記?。翰灰褂胕nt3.列表中每一項的序號:是對象length+1并保存元素的序號,需求[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,167,169,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,187,188,189,189,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,18。 查看全部

  免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)
  免規則采集器列表算法java實(shí)現4。2。3。1特征選擇原理2017-02-2223:22:36|分類(lèi)器viterbi算法2018-04-1214:13:51|目標識別2019-04-0122:51:16|檢測器1。1版基本實(shí)現1。2優(yōu)化目標:列表分類(lèi)器,精度達到15%2。2。3。2java實(shí)現gbdt非凸函數、優(yōu)化目標:小類(lèi)(聚類(lèi)問(wèn)題)or大類(lèi)(分類(lèi)問(wèn)題)實(shí)現整體思路:1。
  只把樣本映射到[-1,1][-1,1]列表中(每次劃分時(shí),先創(chuàng )建一個(gè)[-1,1]-1列表)2。比較數據的峰值(kernelminmethod(0,minmethod(min-。
  1)/maxmethod(max-
  1)))或周邊最小值(kernelmaxmethod(-minmethod(min-
  1),-maxmethod(max-
  1))):當方差最小時(shí),
  1)列表中的元素序列(xinint->xinint[i])。返回參數:1.列表中元素個(gè)數:in遍歷列表的每一個(gè)元素,其中in遍歷列表的第一個(gè)元素和結尾所有元素2.初始內存大?。╩b):初始內存大小要記?。翰灰褂胕nt3.列表中每一項的序號:是對象length+1并保存元素的序號,需求[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,167,169,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,187,188,189,189,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,18。

免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-04-17 07:34 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)
  python處理圖像,opencv圖像識別算法 張世龍 02-25 08:0732 查看次數
  python環(huán)境下使用opencv壓縮圖片大小,python語(yǔ)言。在python環(huán)境下使用opencv壓縮圖像大小,并在python語(yǔ)言中引入poencv,使用utility PIL處理圖像比使用opencv更容易。opencv通常用于采集視頻圖像和圖像。
  數字圖像處理是如何在python和opencv上寫(xiě)一個(gè)瘦臉算法導致編輯器跌倒。誰(shuí)指著(zhù)心最小的編輯說(shuō):“你能不能讓老子別再傷他的心了?
  #參考項目 (whoami1978 ) f=1foriinrange (1,1001 ) : f*=i print(f ) f ) 結果很大,而且沒(méi)有像編輯員那樣成績(jì)差的同學(xué),怎么襯得好成績(jì)
  當前的圖像壓縮算法有哪些?目前有哪些圖像壓縮算法,請舉個(gè)例子?!緢D片壓縮】證明當小編學(xué)會(huì )控制自己的脾氣后,就知道小編什么都不需要
  淺談圖像壓縮算法 jzdm 本文只討論靜止圖像壓縮的基本算法。圖像壓縮的目的是通過(guò)用更少的數據表示圖像來(lái)節省存儲成本、傳輸時(shí)間和費用。JPEG壓縮算法可以處理帶有失真壓縮的圖像,但是肉眼無(wú)法識別失真的程度。
  基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?比別人剪電影中的3-cut輪廓(這是我在小編找到的一個(gè)博客網(wǎng)站。
  分享python和opencv的ssim計算代碼
  # importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2#constructtheargumentparseandparsetheargumentsap=arg parse.argument parser(AP.add_argument('-f','first',just
  有沒(méi)有人在c上有opencv圖像清晰度的算法代碼?圖像模糊的原因有很多,您正在處理哪一個(gè)?并非所有東西都共享。我該如何和不想失去的人說(shuō)再見(jiàn)?“主編沒(méi)說(shuō)再見(jiàn),主編也沒(méi)說(shuō)什么,就走了?!?br />   基于matlab的圖像壓縮算法包括matlab如Huffman編碼、算術(shù)編碼、字典編碼、游程編碼-Lempel-zev編碼、DCT、子帶編碼粒子、二次采樣、比特分配、矢量量化等。
  基于OpenCV的等速模糊圖像恢復及算法分析
  第二卷第35期1月21日21日501湖南工業(yè)大學(xué)學(xué)報VO.5n 031-2ma2v 011等速模糊圖像恢復及基于jurlofhununvestftehnogonanairiyocolyopnv eCcqdxtd的算法分析,ladbg(福建福州,300518)
  個(gè)人畢業(yè)設計基于python開(kāi)發(fā)的鏡像。蒼海月明在此吟詩(shī),白犬剛流。
  本科畢業(yè)論文(設計)主題:基于python開(kāi)發(fā)的圖像的Airppt采集器本科學(xué)科與專(zhuān)業(yè)Airppt基于python的圖像的摘要采集器本文使用普通USB數碼相機拍攝獲取實(shí)景時(shí)間 圖片
  將視頻壓縮成的最小格式是什么?格式工廠(chǎng)如何將視頻壓縮到指定大???1990年代世界三大經(jīng)濟中心,改變世界的九種算法 查看全部

  免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)
  python處理圖像,opencv圖像識別算法 張世龍 02-25 08:0732 查看次數
  python環(huán)境下使用opencv壓縮圖片大小,python語(yǔ)言。在python環(huán)境下使用opencv壓縮圖像大小,并在python語(yǔ)言中引入poencv,使用utility PIL處理圖像比使用opencv更容易。opencv通常用于采集視頻圖像和圖像。
  數字圖像處理是如何在python和opencv上寫(xiě)一個(gè)瘦臉算法導致編輯器跌倒。誰(shuí)指著(zhù)心最小的編輯說(shuō):“你能不能讓老子別再傷他的心了?
  #參考項目 (whoami1978 ) f=1foriinrange (1,1001 ) : f*=i print(f ) f ) 結果很大,而且沒(méi)有像編輯員那樣成績(jì)差的同學(xué),怎么襯得好成績(jì)
  當前的圖像壓縮算法有哪些?目前有哪些圖像壓縮算法,請舉個(gè)例子?!緢D片壓縮】證明當小編學(xué)會(huì )控制自己的脾氣后,就知道小編什么都不需要
  淺談圖像壓縮算法 jzdm 本文只討論靜止圖像壓縮的基本算法。圖像壓縮的目的是通過(guò)用更少的數據表示圖像來(lái)節省存儲成本、傳輸時(shí)間和費用。JPEG壓縮算法可以處理帶有失真壓縮的圖像,但是肉眼無(wú)法識別失真的程度。
  基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?比別人剪電影中的3-cut輪廓(這是我在小編找到的一個(gè)博客網(wǎng)站。
  分享python和opencv的ssim計算代碼
  # importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2#constructtheargumentparseandparsetheargumentsap=arg parse.argument parser(AP.add_argument('-f','first',just
  有沒(méi)有人在c上有opencv圖像清晰度的算法代碼?圖像模糊的原因有很多,您正在處理哪一個(gè)?并非所有東西都共享。我該如何和不想失去的人說(shuō)再見(jiàn)?“主編沒(méi)說(shuō)再見(jiàn),主編也沒(méi)說(shuō)什么,就走了?!?br />   基于matlab的圖像壓縮算法包括matlab如Huffman編碼、算術(shù)編碼、字典編碼、游程編碼-Lempel-zev編碼、DCT、子帶編碼粒子、二次采樣、比特分配、矢量量化等。
  基于OpenCV的等速模糊圖像恢復及算法分析
  第二卷第35期1月21日21日501湖南工業(yè)大學(xué)學(xué)報VO.5n 031-2ma2v 011等速模糊圖像恢復及基于jurlofhununvestftehnogonanairiyocolyopnv eCcqdxtd的算法分析,ladbg(福建福州,300518)
  個(gè)人畢業(yè)設計基于python開(kāi)發(fā)的鏡像。蒼海月明在此吟詩(shī),白犬剛流。
  本科畢業(yè)論文(設計)主題:基于python開(kāi)發(fā)的圖像的Airppt采集器本科學(xué)科與專(zhuān)業(yè)Airppt基于python的圖像的摘要采集器本文使用普通USB數碼相機拍攝獲取實(shí)景時(shí)間 圖片
  將視頻壓縮成的最小格式是什么?格式工廠(chǎng)如何將視頻壓縮到指定大???1990年代世界三大經(jīng)濟中心,改變世界的九種算法

免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2022-04-16 13:22 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)
  最近有很多朋友在詢(xún)問(wèn)優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)的方法,其實(shí)這些問(wèn)題都不是很難回答,可能是你不太關(guān)注,所以不知道,不過(guò)沒(méi)關(guān)系,今天給大家詳細分享一下具體優(yōu)采云采集器免登錄采集如何發(fā)布數據到DEDEcms織夢(mèng),真心希望對你有所幫助。
  將以下代碼放入 dede/config.php:
  
//檢驗用戶(hù)登錄狀態(tài)
 
$cuserLogin = new userLogin();

if($cuserLogin->getUserID()==-1)

{

header("location:login.php?gotopage=".urlencode($dedeNowurl));

exit();

}
修改為:
//檢驗用戶(hù)登錄狀態(tài)
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
if($my_u != ')
{
$res = $cuserLogin->checkUser($my_u,$my_p);
if($res==1)
$cuserLogin->keepUser();
}
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
}
  然后將 優(yōu)采云 發(fā)布模塊修改為
  article_add.php?my_u=你的后臺用戶(hù)名&my_p=你的后臺密碼
  以上就是對優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)方法的詳細介紹,如果你還想了解優(yōu)采云采集器免登錄采集如果數據發(fā)布到DEDEcms織夢(mèng),可以直接關(guān)注編輯器不斷推出的新文章 ,因為這些信息會(huì )及時(shí)更新給大家看。同時(shí)也希望大家多多支持關(guān)注46仿網(wǎng)站。更多信息將在此更新。
  如果你覺(jué)得這篇文章對你有幫助,就給個(gè)贊吧!
  沒(méi)有解決?點(diǎn)擊這里呼喚大神幫忙(付費)! 查看全部

  免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)
  最近有很多朋友在詢(xún)問(wèn)優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)的方法,其實(shí)這些問(wèn)題都不是很難回答,可能是你不太關(guān)注,所以不知道,不過(guò)沒(méi)關(guān)系,今天給大家詳細分享一下具體優(yōu)采云采集器免登錄采集如何發(fā)布數據到DEDEcms織夢(mèng),真心希望對你有所幫助。
  將以下代碼放入 dede/config.php:
  
//檢驗用戶(hù)登錄狀態(tài)
 
$cuserLogin = new userLogin();

if($cuserLogin->getUserID()==-1)

{

header("location:login.php?gotopage=".urlencode($dedeNowurl));

exit();

}
修改為:
//檢驗用戶(hù)登錄狀態(tài)
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
if($my_u != ')
{
$res = $cuserLogin->checkUser($my_u,$my_p);
if($res==1)
$cuserLogin->keepUser();
}
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
}
  然后將 優(yōu)采云 發(fā)布模塊修改為
  article_add.php?my_u=你的后臺用戶(hù)名&my_p=你的后臺密碼
  以上就是對優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)方法的詳細介紹,如果你還想了解優(yōu)采云采集器免登錄采集如果數據發(fā)布到DEDEcms織夢(mèng),可以直接關(guān)注編輯器不斷推出的新文章 ,因為這些信息會(huì )及時(shí)更新給大家看。同時(shí)也希望大家多多支持關(guān)注46仿網(wǎng)站。更多信息將在此更新。
  如果你覺(jué)得這篇文章對你有幫助,就給個(gè)贊吧!
  沒(méi)有解決?點(diǎn)擊這里呼喚大神幫忙(付費)!

免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 113 次瀏覽 ? 2022-04-15 04:11 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊
)
  優(yōu)采云采集器是目前使用最多的互聯(lián)網(wǎng)數據采集、處理、分析和挖掘軟件。該軟件以其靈活的配置和強大的性能,領(lǐng)先國內data采集產(chǎn)品,獲得了眾多用戶(hù)的一致認可。但是優(yōu)采云采集器有一個(gè)很麻煩的地方,就是需要編寫(xiě)采集規則,連接復雜的發(fā)布模塊。有沒(méi)有免費又強大的采集器?一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。
  
  免費采集器可以設置標題前綴和后綴(標題的區別更好收錄)。使 網(wǎng)站 內容更好。內容是網(wǎng)站的基礎。沒(méi)有好的內容,就沒(méi)有回頭客,如果在其他方面做得好,那就是白費了。好的內容不僅適合用戶(hù),也適合搜索引擎。優(yōu)秀的SEO文案可以找到兩者之間的共同點(diǎn)。
  免費的采集器可以合理的網(wǎng)站架構。網(wǎng)站架構是SEO的基礎部分。主要與代碼縮減、目錄結構、網(wǎng)頁(yè)收錄、網(wǎng)站網(wǎng)站的跳出率等有關(guān)。合理的架構可以讓搜索引擎爬取網(wǎng)站內容更好,它也會(huì )給訪(fǎng)問(wèn)者一個(gè)舒適的訪(fǎng)問(wèn)體驗。如果網(wǎng)站的結構不合理,搜索引擎不喜歡,用戶(hù)也不喜歡。
  
  免費采集器支持多種采集來(lái)源采集(覆蓋全網(wǎng)行業(yè)新聞來(lái)源,海量?jì)热輲?,采集最新內容)??梢陨钊胪诰蛴脩?hù)需求。一個(gè)合格的SEO工作者,大部分時(shí)間都是在挖掘用戶(hù)需求,也就是說(shuō),用戶(hù)還需要什么?此外,他們必須對行業(yè)有絕對的了解,這樣網(wǎng)站才能全面、專(zhuān)業(yè)、深刻。
  免費采集器搜索引擎推送(文章發(fā)布成功后主動(dòng)向搜索引擎推送文章,保證新鏈接能夠被搜索引擎收錄及時(shí)搜索到)。
  
  免費采集器提供高質(zhì)量的外部鏈接。雖然外鏈的作用在減少,但對于已經(jīng)被搜索引擎很好爬取的網(wǎng)站來(lái)說(shuō),他只需要做好內容就可以獲得好的排名。但是對于很多新網(wǎng)站來(lái)說(shuō),如果沒(méi)有外鏈誘餌,搜索引擎怎么能找到你呢?但是這個(gè)外鏈誘餌應該是高質(zhì)量的,高質(zhì)量應該從相關(guān)性和權威性開(kāi)始。優(yōu)質(zhì)的外鏈可以幫助網(wǎng)站快速走出新站考察期,對快速提升SEO排名有很大幫助。
  免費采集器給用戶(hù)完美體驗。用戶(hù)體驗包括很多方面,幾乎都是前面所有的內容,比如內容是否優(yōu)質(zhì)、專(zhuān)業(yè)、全面,瀏覽結構是否合理,是否需要與用戶(hù)互助等等。用戶(hù)體驗是一項工作每天都需要優(yōu)化。.
  
  從下拉詞、相關(guān)搜索詞和長(cháng)尾詞中免費生成行業(yè)相關(guān)詞采集器、關(guān)鍵詞??梢栽O置自動(dòng)刪除不相關(guān)的詞。如何為單個(gè)頁(yè)面編寫(xiě)網(wǎng)站標題。一個(gè)網(wǎng)站不僅有首頁(yè),還有欄目頁(yè)、新聞頁(yè)、產(chǎn)品頁(yè)、標簽頁(yè)等,這些頁(yè)面的標題應該怎么做呢?免費采集器支持其他平臺的圖片本地化或存儲。
  主頁(yè)標題。主頁(yè)的標題可以用一句話(huà)概括。在滿(mǎn)足你的關(guān)鍵詞的基礎上,盡量展現你獨特的優(yōu)勢,給人一種眼前一亮的感覺(jué),就是要給人點(diǎn)擊的欲望。
  免費采集器內容與標題一致(使內容與標題100%相關(guān))。欄目頁(yè)最重要的是內容的契合度,即相關(guān)性。如果你在標題上堆積了很多相關(guān)的內容,你可以做一些擴展來(lái)滿(mǎn)足我們對內容的準確命題。欄目?jì)热莺芏?,整合了很多。為此,我們可以適當擴展標題。以網(wǎng)站的建設為例,我們可以設置標題收錄網(wǎng)站建設。新聞標題、網(wǎng)站模板、技術(shù)文檔等。
  
  免費采集器自動(dòng)內鏈(在執行發(fā)布任務(wù)時(shí)自動(dòng)生成文章內容中的內鏈,有利于引導頁(yè)面蜘蛛抓取,提高頁(yè)面權限)。在新聞頁(yè)面方面,雖然單個(gè)頁(yè)面并不比首頁(yè)或欄目頁(yè)面好,但如果將多個(gè)新聞頁(yè)面與它們進(jìn)行比較,則不一定如此。這種比較的標準是基于流量的。新聞頁(yè)面的標題一般是信息標題加上公司名稱(chēng)。這種寫(xiě)法我也挺中肯的。我也用過(guò),效果不錯,但最重要的是效果不明顯或者關(guān)鍵詞的排名不高。,這個(gè)時(shí)候我們可以換個(gè)方法,用什么方法呢?就是寫(xiě)文章標題不帶公司名,這樣效果更好,
  
  批量監控不同的cms網(wǎng)站數據(你的網(wǎng)站是Empire, Yiyou, ZBLOG, 織夢(mèng), WP, Cyclone, 站群, PB, Apple, 搜外 和其他主要的cms 工具,可以同時(shí)管理和批量發(fā)布)。對于產(chǎn)品頁(yè)面的標??題,我個(gè)人遵循產(chǎn)品字+公司名稱(chēng)的原則。這樣做有兩個(gè)好處。一是提高公司知名度,推廣產(chǎn)品。更多人會(huì )看到,名字背后的公司也會(huì )受到關(guān)注。的。
  免費采集器自動(dòng)批量掛機采集,無(wú)縫對接各大cms發(fā)布者,采集之后自動(dòng)發(fā)布推送到搜索引擎。書(shū)簽頁(yè)面。標簽頁(yè),這是對一些信息網(wǎng)站或更多信息發(fā)布網(wǎng)站的類(lèi)似內容的分類(lèi),與欄目類(lèi)似,但與欄目頁(yè)不同,標簽頁(yè)只能是一個(gè)詞或一個(gè)長(cháng)尾 關(guān)鍵詞。今天關(guān)于優(yōu)采云采集器的講解就到這里了,下期會(huì )分享更多與SEO相關(guān)的功能。
   查看全部

  免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊
)
  優(yōu)采云采集器是目前使用最多的互聯(lián)網(wǎng)數據采集、處理、分析和挖掘軟件。該軟件以其靈活的配置和強大的性能,領(lǐng)先國內data采集產(chǎn)品,獲得了眾多用戶(hù)的一致認可。但是優(yōu)采云采集器有一個(gè)很麻煩的地方,就是需要編寫(xiě)采集規則,連接復雜的發(fā)布模塊。有沒(méi)有免費又強大的采集器?一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。
  
  免費采集器可以設置標題前綴和后綴(標題的區別更好收錄)。使 網(wǎng)站 內容更好。內容是網(wǎng)站的基礎。沒(méi)有好的內容,就沒(méi)有回頭客,如果在其他方面做得好,那就是白費了。好的內容不僅適合用戶(hù),也適合搜索引擎。優(yōu)秀的SEO文案可以找到兩者之間的共同點(diǎn)。
  免費的采集器可以合理的網(wǎng)站架構。網(wǎng)站架構是SEO的基礎部分。主要與代碼縮減、目錄結構、網(wǎng)頁(yè)收錄、網(wǎng)站網(wǎng)站的跳出率等有關(guān)。合理的架構可以讓搜索引擎爬取網(wǎng)站內容更好,它也會(huì )給訪(fǎng)問(wèn)者一個(gè)舒適的訪(fǎng)問(wèn)體驗。如果網(wǎng)站的結構不合理,搜索引擎不喜歡,用戶(hù)也不喜歡。
  
  免費采集器支持多種采集來(lái)源采集(覆蓋全網(wǎng)行業(yè)新聞來(lái)源,海量?jì)热輲?,采集最新內容)??梢陨钊胪诰蛴脩?hù)需求。一個(gè)合格的SEO工作者,大部分時(shí)間都是在挖掘用戶(hù)需求,也就是說(shuō),用戶(hù)還需要什么?此外,他們必須對行業(yè)有絕對的了解,這樣網(wǎng)站才能全面、專(zhuān)業(yè)、深刻。
  免費采集器搜索引擎推送(文章發(fā)布成功后主動(dòng)向搜索引擎推送文章,保證新鏈接能夠被搜索引擎收錄及時(shí)搜索到)。
  
  免費采集器提供高質(zhì)量的外部鏈接。雖然外鏈的作用在減少,但對于已經(jīng)被搜索引擎很好爬取的網(wǎng)站來(lái)說(shuō),他只需要做好內容就可以獲得好的排名。但是對于很多新網(wǎng)站來(lái)說(shuō),如果沒(méi)有外鏈誘餌,搜索引擎怎么能找到你呢?但是這個(gè)外鏈誘餌應該是高質(zhì)量的,高質(zhì)量應該從相關(guān)性和權威性開(kāi)始。優(yōu)質(zhì)的外鏈可以幫助網(wǎng)站快速走出新站考察期,對快速提升SEO排名有很大幫助。
  免費采集器給用戶(hù)完美體驗。用戶(hù)體驗包括很多方面,幾乎都是前面所有的內容,比如內容是否優(yōu)質(zhì)、專(zhuān)業(yè)、全面,瀏覽結構是否合理,是否需要與用戶(hù)互助等等。用戶(hù)體驗是一項工作每天都需要優(yōu)化。.
  
  從下拉詞、相關(guān)搜索詞和長(cháng)尾詞中免費生成行業(yè)相關(guān)詞采集器、關(guān)鍵詞??梢栽O置自動(dòng)刪除不相關(guān)的詞。如何為單個(gè)頁(yè)面編寫(xiě)網(wǎng)站標題。一個(gè)網(wǎng)站不僅有首頁(yè),還有欄目頁(yè)、新聞頁(yè)、產(chǎn)品頁(yè)、標簽頁(yè)等,這些頁(yè)面的標題應該怎么做呢?免費采集器支持其他平臺的圖片本地化或存儲。
  主頁(yè)標題。主頁(yè)的標題可以用一句話(huà)概括。在滿(mǎn)足你的關(guān)鍵詞的基礎上,盡量展現你獨特的優(yōu)勢,給人一種眼前一亮的感覺(jué),就是要給人點(diǎn)擊的欲望。
  免費采集器內容與標題一致(使內容與標題100%相關(guān))。欄目頁(yè)最重要的是內容的契合度,即相關(guān)性。如果你在標題上堆積了很多相關(guān)的內容,你可以做一些擴展來(lái)滿(mǎn)足我們對內容的準確命題。欄目?jì)热莺芏?,整合了很多。為此,我們可以適當擴展標題。以網(wǎng)站的建設為例,我們可以設置標題收錄網(wǎng)站建設。新聞標題、網(wǎng)站模板、技術(shù)文檔等。
  
  免費采集器自動(dòng)內鏈(在執行發(fā)布任務(wù)時(shí)自動(dòng)生成文章內容中的內鏈,有利于引導頁(yè)面蜘蛛抓取,提高頁(yè)面權限)。在新聞頁(yè)面方面,雖然單個(gè)頁(yè)面并不比首頁(yè)或欄目頁(yè)面好,但如果將多個(gè)新聞頁(yè)面與它們進(jìn)行比較,則不一定如此。這種比較的標準是基于流量的。新聞頁(yè)面的標題一般是信息標題加上公司名稱(chēng)。這種寫(xiě)法我也挺中肯的。我也用過(guò),效果不錯,但最重要的是效果不明顯或者關(guān)鍵詞的排名不高。,這個(gè)時(shí)候我們可以換個(gè)方法,用什么方法呢?就是寫(xiě)文章標題不帶公司名,這樣效果更好,
  
  批量監控不同的cms網(wǎng)站數據(你的網(wǎng)站是Empire, Yiyou, ZBLOG, 織夢(mèng), WP, Cyclone, 站群, PB, Apple, 搜外 和其他主要的cms 工具,可以同時(shí)管理和批量發(fā)布)。對于產(chǎn)品頁(yè)面的標??題,我個(gè)人遵循產(chǎn)品字+公司名稱(chēng)的原則。這樣做有兩個(gè)好處。一是提高公司知名度,推廣產(chǎn)品。更多人會(huì )看到,名字背后的公司也會(huì )受到關(guān)注。的。
  免費采集器自動(dòng)批量掛機采集,無(wú)縫對接各大cms發(fā)布者,采集之后自動(dòng)發(fā)布推送到搜索引擎。書(shū)簽頁(yè)面。標簽頁(yè),這是對一些信息網(wǎng)站或更多信息發(fā)布網(wǎng)站的類(lèi)似內容的分類(lèi),與欄目類(lèi)似,但與欄目頁(yè)不同,標簽頁(yè)只能是一個(gè)詞或一個(gè)長(cháng)尾 關(guān)鍵詞。今天關(guān)于優(yōu)采云采集器的講解就到這里了,下期會(huì )分享更多與SEO相關(guān)的功能。
  

免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 94 次瀏覽 ? 2022-04-13 21:19 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)
  過(guò)去我們通過(guò)時(shí)間和邏輯算法來(lái)控制它,做到標本兼治。樓上的太簡(jiǎn)單了。如果你真的想采集你的網(wǎng)站信息,其實(shí)很簡(jiǎn)單。
  我在網(wǎng)上找到了一個(gè)非常全面的防止采集的方法,可以參考一下
  在實(shí)現很多反采集的方法時(shí),需要考慮是否影響搜索引擎對網(wǎng)站的抓取,所以我們先來(lái)分析一下一般的采集器和搜索引擎有什么區別爬蟲(chóng) 采集 不同。
  相似之處:A。兩者都需要直接抓取網(wǎng)頁(yè)的源代碼才能有效工作,b. 兩者會(huì )在單位時(shí)間內多次抓取大量訪(fǎng)問(wèn)過(guò)的網(wǎng)站內容;C。宏觀(guān)上來(lái)說(shuō),兩者的IP都會(huì )發(fā)生變化;d。兩個(gè)都迫不及待的想破解你網(wǎng)頁(yè)的一些加密(驗證),比如網(wǎng)頁(yè)內容是用js文件加密的,比如需要輸入驗證碼才能瀏覽內容,比如需要登錄才能訪(fǎng)問(wèn)內容, ETC。
  區別:搜索引擎爬蟲(chóng)首先會(huì )忽略整個(gè)網(wǎng)頁(yè)的源腳本和樣式以及HTML標簽代碼,然后對剩下的文本進(jìn)行分詞、語(yǔ)法分析等一系列復雜的處理。而采集器一般使用html標簽特性來(lái)抓取需要的數據,而在制定采集規則時(shí),需要填寫(xiě)目標內容的開(kāi)始標記和結束標記,以便定位到需要的內容內容; 或者使用針對特定網(wǎng)頁(yè)制作特定的正則表達式來(lái)過(guò)濾掉需要的內容。無(wú)論你使用開(kāi)始和結束標記還是正則表達式,都會(huì )涉及到html標簽(網(wǎng)頁(yè)結構分析)。
  然后想出一些反采集的方法
  1、限制單位時(shí)間內每個(gè)IP地址的訪(fǎng)問(wèn)次數
  分析:沒(méi)有一個(gè)普通人可以在一秒鐘內訪(fǎng)問(wèn)同一個(gè)網(wǎng)站5次,除非是程序訪(fǎng)問(wèn),喜歡這樣的人就剩下搜索引擎爬蟲(chóng)和煩人的采集器。
  缺點(diǎn):一刀切,這也會(huì )阻止搜索引擎訪(fǎng)問(wèn) 收錄 或 網(wǎng)站
  適用于網(wǎng)站:網(wǎng)站不嚴重依賴(lài)搜索引擎的人
  采集器會(huì )做什么:減少單位時(shí)間的訪(fǎng)問(wèn)次數,降低采集的效率
  2、屏蔽ip
  分析:通過(guò)后臺計數器,記錄訪(fǎng)客IP和訪(fǎng)問(wèn)頻率,人工分析訪(fǎng)客記錄,屏蔽可疑IP。
  缺點(diǎn):好像沒(méi)有缺點(diǎn),就是站長(cháng)忙
  適用于網(wǎng)站:所有網(wǎng)站,站長(cháng)可以知道是google還是百度機器人
  采集器 會(huì )做什么:打游擊戰!使用ip代理采集改一次,但是會(huì )降低采集器的效率和網(wǎng)速(使用代理)。
  3、使用js加密網(wǎng)頁(yè)內容
  注意:我沒(méi)有接觸過(guò)這個(gè)方法,只是來(lái)自其他來(lái)源
  分析:不用分析,搜索引擎爬蟲(chóng)和采集器殺
  對于網(wǎng)站:討厭搜索引擎的網(wǎng)站和采集器
  采集器 會(huì )這樣做:你那么好,你要犧牲,他不會(huì )來(lái)接你
  4、隱藏網(wǎng)站網(wǎng)頁(yè)中的版權或一些隨機的垃圾文字,這些文字樣式寫(xiě)在css文件中
  分析:雖然不能阻止采集,但是會(huì )讓采集后面的內容被你的網(wǎng)站版權聲明或者一些垃圾文字填滿(mǎn),因為一般采集器不會(huì )采集您的 css 文件,這些文本顯示時(shí)沒(méi)有樣式。
  適用于 網(wǎng)站:所有 網(wǎng)站
  采集器怎么辦:對于版權文本,好辦,替換掉。對于隨機垃圾文本,沒(méi)辦法,快點(diǎn)。
  5、用戶(hù)登錄訪(fǎng)問(wèn)網(wǎng)站內容
  分析:搜索引擎爬蟲(chóng)不會(huì )為每一種此類(lèi)網(wǎng)站設計登錄程序。聽(tīng)說(shuō)采集器可以為某個(gè)網(wǎng)站設計模擬用戶(hù)登錄和提交表單的行為。
  對于網(wǎng)站:網(wǎng)站討厭搜索引擎,最想屏蔽采集器
  采集器 會(huì )做什么:制作一個(gè)模塊來(lái)模擬用戶(hù)登錄和提交表單的行為
  6、使用腳本語(yǔ)言進(jìn)行分頁(yè)(隱藏分頁(yè))
  分析:還是那句話(huà),搜索引擎爬蟲(chóng)不會(huì )分析各種網(wǎng)站的隱藏分頁(yè),影響搜索引擎的收錄。但是,采集作者在編寫(xiě)采集規則的時(shí)候,需要分析目標網(wǎng)頁(yè)的代碼,稍微懂一點(diǎn)腳本知識的就知道分頁(yè)的真實(shí)鏈接地址了。
  適用于網(wǎng)站:網(wǎng)站對搜索引擎依賴(lài)不高,采集你的人不懂腳本知識
  采集器會(huì )做什么:應該說(shuō)采集這個(gè)人會(huì )做什么,反正他要分析你的網(wǎng)頁(yè)代碼,順便分析一下你的分頁(yè)腳本,用不了多少額外的時(shí)間。
  7、反鏈保護措施(只允許通過(guò)本站頁(yè)面連接查看,如:Request.ServerVariables("HTTP_REFERER"))
  分析:asp和php可以通過(guò)讀取請求的HTTP_REFERER屬性來(lái)判斷請求是否來(lái)自這個(gè)網(wǎng)站,從而限制采集器,同時(shí)也限制了搜索引擎爬蟲(chóng),嚴重影響了搜索引擎對網(wǎng)站。@網(wǎng)站部分防盜鏈內容收錄。
  適用于網(wǎng)站:網(wǎng)站很少考慮搜索引擎收錄 查看全部

  免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)
  過(guò)去我們通過(guò)時(shí)間和邏輯算法來(lái)控制它,做到標本兼治。樓上的太簡(jiǎn)單了。如果你真的想采集你的網(wǎng)站信息,其實(shí)很簡(jiǎn)單。
  我在網(wǎng)上找到了一個(gè)非常全面的防止采集的方法,可以參考一下
  在實(shí)現很多反采集的方法時(shí),需要考慮是否影響搜索引擎對網(wǎng)站的抓取,所以我們先來(lái)分析一下一般的采集器和搜索引擎有什么區別爬蟲(chóng) 采集 不同。
  相似之處:A。兩者都需要直接抓取網(wǎng)頁(yè)的源代碼才能有效工作,b. 兩者會(huì )在單位時(shí)間內多次抓取大量訪(fǎng)問(wèn)過(guò)的網(wǎng)站內容;C。宏觀(guān)上來(lái)說(shuō),兩者的IP都會(huì )發(fā)生變化;d。兩個(gè)都迫不及待的想破解你網(wǎng)頁(yè)的一些加密(驗證),比如網(wǎng)頁(yè)內容是用js文件加密的,比如需要輸入驗證碼才能瀏覽內容,比如需要登錄才能訪(fǎng)問(wèn)內容, ETC。
  區別:搜索引擎爬蟲(chóng)首先會(huì )忽略整個(gè)網(wǎng)頁(yè)的源腳本和樣式以及HTML標簽代碼,然后對剩下的文本進(jìn)行分詞、語(yǔ)法分析等一系列復雜的處理。而采集器一般使用html標簽特性來(lái)抓取需要的數據,而在制定采集規則時(shí),需要填寫(xiě)目標內容的開(kāi)始標記和結束標記,以便定位到需要的內容內容; 或者使用針對特定網(wǎng)頁(yè)制作特定的正則表達式來(lái)過(guò)濾掉需要的內容。無(wú)論你使用開(kāi)始和結束標記還是正則表達式,都會(huì )涉及到html標簽(網(wǎng)頁(yè)結構分析)。
  然后想出一些反采集的方法
  1、限制單位時(shí)間內每個(gè)IP地址的訪(fǎng)問(wèn)次數
  分析:沒(méi)有一個(gè)普通人可以在一秒鐘內訪(fǎng)問(wèn)同一個(gè)網(wǎng)站5次,除非是程序訪(fǎng)問(wèn),喜歡這樣的人就剩下搜索引擎爬蟲(chóng)和煩人的采集器。
  缺點(diǎn):一刀切,這也會(huì )阻止搜索引擎訪(fǎng)問(wèn) 收錄 或 網(wǎng)站
  適用于網(wǎng)站:網(wǎng)站不嚴重依賴(lài)搜索引擎的人
  采集器會(huì )做什么:減少單位時(shí)間的訪(fǎng)問(wèn)次數,降低采集的效率
  2、屏蔽ip
  分析:通過(guò)后臺計數器,記錄訪(fǎng)客IP和訪(fǎng)問(wèn)頻率,人工分析訪(fǎng)客記錄,屏蔽可疑IP。
  缺點(diǎn):好像沒(méi)有缺點(diǎn),就是站長(cháng)忙
  適用于網(wǎng)站:所有網(wǎng)站,站長(cháng)可以知道是google還是百度機器人
  采集器 會(huì )做什么:打游擊戰!使用ip代理采集改一次,但是會(huì )降低采集器的效率和網(wǎng)速(使用代理)。
  3、使用js加密網(wǎng)頁(yè)內容
  注意:我沒(méi)有接觸過(guò)這個(gè)方法,只是來(lái)自其他來(lái)源
  分析:不用分析,搜索引擎爬蟲(chóng)和采集器殺
  對于網(wǎng)站:討厭搜索引擎的網(wǎng)站和采集器
  采集器 會(huì )這樣做:你那么好,你要犧牲,他不會(huì )來(lái)接你
  4、隱藏網(wǎng)站網(wǎng)頁(yè)中的版權或一些隨機的垃圾文字,這些文字樣式寫(xiě)在css文件中
  分析:雖然不能阻止采集,但是會(huì )讓采集后面的內容被你的網(wǎng)站版權聲明或者一些垃圾文字填滿(mǎn),因為一般采集器不會(huì )采集您的 css 文件,這些文本顯示時(shí)沒(méi)有樣式。
  適用于 網(wǎng)站:所有 網(wǎng)站
  采集器怎么辦:對于版權文本,好辦,替換掉。對于隨機垃圾文本,沒(méi)辦法,快點(diǎn)。
  5、用戶(hù)登錄訪(fǎng)問(wèn)網(wǎng)站內容
  分析:搜索引擎爬蟲(chóng)不會(huì )為每一種此類(lèi)網(wǎng)站設計登錄程序。聽(tīng)說(shuō)采集器可以為某個(gè)網(wǎng)站設計模擬用戶(hù)登錄和提交表單的行為。
  對于網(wǎng)站:網(wǎng)站討厭搜索引擎,最想屏蔽采集器
  采集器 會(huì )做什么:制作一個(gè)模塊來(lái)模擬用戶(hù)登錄和提交表單的行為
  6、使用腳本語(yǔ)言進(jìn)行分頁(yè)(隱藏分頁(yè))
  分析:還是那句話(huà),搜索引擎爬蟲(chóng)不會(huì )分析各種網(wǎng)站的隱藏分頁(yè),影響搜索引擎的收錄。但是,采集作者在編寫(xiě)采集規則的時(shí)候,需要分析目標網(wǎng)頁(yè)的代碼,稍微懂一點(diǎn)腳本知識的就知道分頁(yè)的真實(shí)鏈接地址了。
  適用于網(wǎng)站:網(wǎng)站對搜索引擎依賴(lài)不高,采集你的人不懂腳本知識
  采集器會(huì )做什么:應該說(shuō)采集這個(gè)人會(huì )做什么,反正他要分析你的網(wǎng)頁(yè)代碼,順便分析一下你的分頁(yè)腳本,用不了多少額外的時(shí)間。
  7、反鏈保護措施(只允許通過(guò)本站頁(yè)面連接查看,如:Request.ServerVariables("HTTP_REFERER"))
  分析:asp和php可以通過(guò)讀取請求的HTTP_REFERER屬性來(lái)判斷請求是否來(lái)自這個(gè)網(wǎng)站,從而限制采集器,同時(shí)也限制了搜索引擎爬蟲(chóng),嚴重影響了搜索引擎對網(wǎng)站。@網(wǎng)站部分防盜鏈內容收錄。
  適用于網(wǎng)站:網(wǎng)站很少考慮搜索引擎收錄

免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 141 次瀏覽 ? 2022-04-13 18:23 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))
  2019獨角獸企業(yè)招聘Python工程師標準>>>
  
  一、簡(jiǎn)單的PageRank計算
  首先,我們將Web抽象如下: 1、將每個(gè)網(wǎng)頁(yè)抽象成一個(gè)節點(diǎn);2、如果頁(yè)面 A 有直接到 B 的鏈接,則從 A 到 B 存在有向邊(多個(gè)相同鏈接不重復計算邊)。因此,整個(gè) Web 被抽象為一個(gè)有向圖。
  現在假設世界上只有四個(gè)網(wǎng)頁(yè):A、B、C、D。抽象結構如下圖所示。顯然,這個(gè)圖是強連接的(從任何節點(diǎn),你可以到達任何其他節點(diǎn))。
  
  然后需要使用合適的數據結構來(lái)表示頁(yè)面之間的連接關(guān)系。PageRank算法就是基于這樣一個(gè)背景思想:隨機上網(wǎng)者訪(fǎng)問(wèn)的頁(yè)面越多,質(zhì)量可能就越高,而隨機上網(wǎng)者在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接跳轉到頁(yè)面,所以我們需要分析構成的超鏈接。圖結構用于估計每個(gè)網(wǎng)頁(yè)被訪(fǎng)問(wèn)的頻率。更直觀(guān)地說(shuō),一個(gè)網(wǎng)頁(yè)的 PangRank 越高,隨機瀏覽者在瀏覽該網(wǎng)頁(yè)的過(guò)程中停留在該頁(yè)面的概率就越大,該網(wǎng)頁(yè)的重要性就越高。
  為簡(jiǎn)單起見(jiàn),我們可以假設當一個(gè)隨機的沖浪者停留在一個(gè)頁(yè)面上時(shí),跳轉到該頁(yè)面上每個(gè)鏈接頁(yè)面的概率是相同的。比如上圖中,頁(yè)面A鏈接到B、C、D,所以用戶(hù)從A跳轉到B、C、D的概率各為1/3。假設總共有N個(gè)網(wǎng)頁(yè),可以組織一個(gè)N維矩陣:第i行第j列的值代表用戶(hù)從第j頁(yè)到第i頁(yè)的概率。這樣的矩陣稱(chēng)為轉移矩陣。上圖中四個(gè)網(wǎng)頁(yè)對應的轉移矩陣M如下:
  
  那么,假設隨機瀏覽者從n個(gè)頁(yè)面出來(lái)的初始概率相等,那么初始概率分布向量是一個(gè)n維的列向量V0,每個(gè)維度為1/n。這里我們有 4 頁(yè),所以 V0-1=[1/4, 1/4, 1/4, 1/4]。
  這樣,我們就可以從初始向量 V0 開(kāi)始,不斷地將轉移矩陣 M 左乘。用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接使i跳轉后,停留在每個(gè)頁(yè)面的概率為:Mi*V。停止直到最后兩次迭代在結果向量中產(chǎn)生非常小的差異。實(shí)際上,對于 Web,50 到 75 次迭代足以收斂,誤差控制在雙精度。
  以下是前四次跳轉時(shí)每次迭代后每個(gè)頁(yè)面的PageRank值:
  
  可以看出,隨著(zhù)迭代次數的增加,網(wǎng)頁(yè)A的PageRank值越來(lái)越大,接近其極限概率3/9。這也說(shuō)明隨機上網(wǎng)者停留在A(yíng)頁(yè)面的概率大于B、C、D頁(yè)面,頁(yè)面也更重要。
  二、問(wèn)題一:死胡同
  終止點(diǎn)是沒(méi)有出鏈的點(diǎn),比如下圖中的C。
  
  如果我們不對其進(jìn)行處理,讓終止點(diǎn)存在,那么隨著(zhù)PageRank迭代次數的增加,每個(gè)網(wǎng)頁(yè)的PageRank值會(huì )趨于0,這樣就無(wú)法得到網(wǎng)頁(yè)相對重要性的信息.
  
  通過(guò)從圖中刪除它們及其傳入鏈來(lái)處理終止。這樣做之后,可以生成更多的端點(diǎn),并繼續迭代消除端點(diǎn)。但最終我們得到了一個(gè)強連通子圖,其中所有節點(diǎn)都是非終端的。我們以左圖為例進(jìn)行說(shuō)明。按照上述步驟消除終止點(diǎn)后得到左圖,得到右圖。
  
  我們得到右圖對應的轉移矩陣,計算圖中A、B、C的PageRank值。
  
  我們得到A、B、C的PageRank值分別為2/9、4/9、3/9,然后按照刪除的逆序計算C、E的PageRank值. 由于 C 是最后被刪除的,因此首先計算 C 的 PageRank 值。A有3個(gè)外鏈,所以它貢獻了1/3的PageRank值給C。D有3個(gè)外鏈,所以它貢獻了1/2的PageRank值給C。所以C的PageRank為
  
  . E的入鏈只有C,C的出鏈只有E,所以E的PageRank值等于C的PageRank值。
  需要注意的是,當前所有節點(diǎn)的PageRank值之和已經(jīng)超過(guò)1,因此不能代表隨機瀏覽者的概率分布,但仍能反映對頁(yè)面相對重要性的合理估計。
  三、問(wèn)題2:采集器蜘蛛陷阱
  采集器陷阱是一組節點(diǎn),雖然它們都不是終止點(diǎn),但它們都沒(méi)有出鏈指向該集合之外的其他節點(diǎn)。采集器 陷阱導致計算時(shí)將所有 PageRank 值分配給 采集器 陷阱內的節點(diǎn)。
  如下圖所示,C是一個(gè)單節點(diǎn)采集器陷阱及其轉移矩陣。
  
  隨著(zhù)迭代的進(jìn)行,C 的 PageRank 值趨于 1,而其他不在 采集器 陷阱中的節點(diǎn)的 PageRank 值趨于 0。
  
  采集器 陷阱的處理方式是允許每個(gè)隨機瀏覽者隨機跳轉到一個(gè)隨機頁(yè)面,跳轉概率很小,而不必遵循當前頁(yè)面上的外鏈。因此,根據上一次PageRank估計值V和轉移矩陣M估計下一次迭代后的PageRank值V'的迭代公式變?yōu)椋?br />   
  其中 β 是一個(gè)選定的常數,通常介于 0.8 和 0.9 之間。e 是一個(gè)向量,其分量全為 1,維度為 n,其中 n 是 Web 圖中所有節點(diǎn)的個(gè)數。βMv 表示隨機沖浪者以概率 β 從當前網(wǎng)頁(yè)中選擇外鏈向前移動(dòng)的情況。(1?β)e/n 是一個(gè)所有分量為 (1?β)/n 的向量,它表示一個(gè)新的隨機沖浪者具有 (1?β) 概率隨機選擇要訪(fǎng)問(wèn)的網(wǎng)頁(yè)。
  取β=0.8,上圖的迭代公式變?yōu)椋?br />   
  以下是之前迭代的結果:
  
  作為一個(gè)采集器 陷阱,C 獲得了超過(guò)一半的 PageRank 值,但這種影響是有限的,并且每個(gè)其他節點(diǎn)也獲得了一些 PageRank 值。
  -------------------------------------------------
  參考:
  《大數據:互聯(lián)網(wǎng)大規模數據挖掘與分布式處理》王斌老師_ICTIR及其對應英文電子書(shū)《海量數據集挖掘》 查看全部

  免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))
  2019獨角獸企業(yè)招聘Python工程師標準>>>
  
  一、簡(jiǎn)單的PageRank計算
  首先,我們將Web抽象如下: 1、將每個(gè)網(wǎng)頁(yè)抽象成一個(gè)節點(diǎn);2、如果頁(yè)面 A 有直接到 B 的鏈接,則從 A 到 B 存在有向邊(多個(gè)相同鏈接不重復計算邊)。因此,整個(gè) Web 被抽象為一個(gè)有向圖。
  現在假設世界上只有四個(gè)網(wǎng)頁(yè):A、B、C、D。抽象結構如下圖所示。顯然,這個(gè)圖是強連接的(從任何節點(diǎn),你可以到達任何其他節點(diǎn))。
  
  然后需要使用合適的數據結構來(lái)表示頁(yè)面之間的連接關(guān)系。PageRank算法就是基于這樣一個(gè)背景思想:隨機上網(wǎng)者訪(fǎng)問(wèn)的頁(yè)面越多,質(zhì)量可能就越高,而隨機上網(wǎng)者在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接跳轉到頁(yè)面,所以我們需要分析構成的超鏈接。圖結構用于估計每個(gè)網(wǎng)頁(yè)被訪(fǎng)問(wèn)的頻率。更直觀(guān)地說(shuō),一個(gè)網(wǎng)頁(yè)的 PangRank 越高,隨機瀏覽者在瀏覽該網(wǎng)頁(yè)的過(guò)程中停留在該頁(yè)面的概率就越大,該網(wǎng)頁(yè)的重要性就越高。
  為簡(jiǎn)單起見(jiàn),我們可以假設當一個(gè)隨機的沖浪者停留在一個(gè)頁(yè)面上時(shí),跳轉到該頁(yè)面上每個(gè)鏈接頁(yè)面的概率是相同的。比如上圖中,頁(yè)面A鏈接到B、C、D,所以用戶(hù)從A跳轉到B、C、D的概率各為1/3。假設總共有N個(gè)網(wǎng)頁(yè),可以組織一個(gè)N維矩陣:第i行第j列的值代表用戶(hù)從第j頁(yè)到第i頁(yè)的概率。這樣的矩陣稱(chēng)為轉移矩陣。上圖中四個(gè)網(wǎng)頁(yè)對應的轉移矩陣M如下:
  
  那么,假設隨機瀏覽者從n個(gè)頁(yè)面出來(lái)的初始概率相等,那么初始概率分布向量是一個(gè)n維的列向量V0,每個(gè)維度為1/n。這里我們有 4 頁(yè),所以 V0-1=[1/4, 1/4, 1/4, 1/4]。
  這樣,我們就可以從初始向量 V0 開(kāi)始,不斷地將轉移矩陣 M 左乘。用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接使i跳轉后,停留在每個(gè)頁(yè)面的概率為:Mi*V。停止直到最后兩次迭代在結果向量中產(chǎn)生非常小的差異。實(shí)際上,對于 Web,50 到 75 次迭代足以收斂,誤差控制在雙精度。
  以下是前四次跳轉時(shí)每次迭代后每個(gè)頁(yè)面的PageRank值:
  
  可以看出,隨著(zhù)迭代次數的增加,網(wǎng)頁(yè)A的PageRank值越來(lái)越大,接近其極限概率3/9。這也說(shuō)明隨機上網(wǎng)者停留在A(yíng)頁(yè)面的概率大于B、C、D頁(yè)面,頁(yè)面也更重要。
  二、問(wèn)題一:死胡同
  終止點(diǎn)是沒(méi)有出鏈的點(diǎn),比如下圖中的C。
  
  如果我們不對其進(jìn)行處理,讓終止點(diǎn)存在,那么隨著(zhù)PageRank迭代次數的增加,每個(gè)網(wǎng)頁(yè)的PageRank值會(huì )趨于0,這樣就無(wú)法得到網(wǎng)頁(yè)相對重要性的信息.
  
  通過(guò)從圖中刪除它們及其傳入鏈來(lái)處理終止。這樣做之后,可以生成更多的端點(diǎn),并繼續迭代消除端點(diǎn)。但最終我們得到了一個(gè)強連通子圖,其中所有節點(diǎn)都是非終端的。我們以左圖為例進(jìn)行說(shuō)明。按照上述步驟消除終止點(diǎn)后得到左圖,得到右圖。
  
  我們得到右圖對應的轉移矩陣,計算圖中A、B、C的PageRank值。
  
  我們得到A、B、C的PageRank值分別為2/9、4/9、3/9,然后按照刪除的逆序計算C、E的PageRank值. 由于 C 是最后被刪除的,因此首先計算 C 的 PageRank 值。A有3個(gè)外鏈,所以它貢獻了1/3的PageRank值給C。D有3個(gè)外鏈,所以它貢獻了1/2的PageRank值給C。所以C的PageRank為
  
  . E的入鏈只有C,C的出鏈只有E,所以E的PageRank值等于C的PageRank值。
  需要注意的是,當前所有節點(diǎn)的PageRank值之和已經(jīng)超過(guò)1,因此不能代表隨機瀏覽者的概率分布,但仍能反映對頁(yè)面相對重要性的合理估計。
  三、問(wèn)題2:采集器蜘蛛陷阱
  采集器陷阱是一組節點(diǎn),雖然它們都不是終止點(diǎn),但它們都沒(méi)有出鏈指向該集合之外的其他節點(diǎn)。采集器 陷阱導致計算時(shí)將所有 PageRank 值分配給 采集器 陷阱內的節點(diǎn)。
  如下圖所示,C是一個(gè)單節點(diǎn)采集器陷阱及其轉移矩陣。
  
  隨著(zhù)迭代的進(jìn)行,C 的 PageRank 值趨于 1,而其他不在 采集器 陷阱中的節點(diǎn)的 PageRank 值趨于 0。
  
  采集器 陷阱的處理方式是允許每個(gè)隨機瀏覽者隨機跳轉到一個(gè)隨機頁(yè)面,跳轉概率很小,而不必遵循當前頁(yè)面上的外鏈。因此,根據上一次PageRank估計值V和轉移矩陣M估計下一次迭代后的PageRank值V'的迭代公式變?yōu)椋?br />   
  其中 β 是一個(gè)選定的常數,通常介于 0.8 和 0.9 之間。e 是一個(gè)向量,其分量全為 1,維度為 n,其中 n 是 Web 圖中所有節點(diǎn)的個(gè)數。βMv 表示隨機沖浪者以概率 β 從當前網(wǎng)頁(yè)中選擇外鏈向前移動(dòng)的情況。(1?β)e/n 是一個(gè)所有分量為 (1?β)/n 的向量,它表示一個(gè)新的隨機沖浪者具有 (1?β) 概率隨機選擇要訪(fǎng)問(wèn)的網(wǎng)頁(yè)。
  取β=0.8,上圖的迭代公式變?yōu)椋?br />   
  以下是之前迭代的結果:
  
  作為一個(gè)采集器 陷阱,C 獲得了超過(guò)一半的 PageRank 值,但這種影響是有限的,并且每個(gè)其他節點(diǎn)也獲得了一些 PageRank 值。
  -------------------------------------------------
  參考:
  《大數據:互聯(lián)網(wǎng)大規模數據挖掘與分布式處理》王斌老師_ICTIR及其對應英文電子書(shū)《海量數據集挖掘》

免規則采集器列表算法( 基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2022-04-12 22:04 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))
  
  這個(gè)文章的研究?jì)热菔牵壕哂幸巹澞芰Φ腶gent。
  在此之前,許多研究都使用了基于樹(shù)的規劃方法。然而,在實(shí)際的業(yè)務(wù)應用中,動(dòng)態(tài)控制/仿真環(huán)境往往是復雜且未知的。
  這篇文章文章 提出了一種算法:MuZero,它通過(guò)將基于樹(shù)的搜索與學(xué)習模型相結合,在不了解環(huán)境底層動(dòng)態(tài)的情況下可以很好地執行。這很好。
  這里的學(xué)習模型實(shí)際上是迭代應用的,可以預測與計劃最相關(guān)的獎勵、行動(dòng)選擇策略和價(jià)值函數。
  所以,總而言之,MuZero 的研究目標有兩個(gè):
  下面就開(kāi)始看具體的作品吧!
  1 算法簡(jiǎn)介1.1 背景
  基于前瞻搜索的規劃算法有很多應用。然而,這些規劃算法都依賴(lài)于精確的模擬器和嚴格的規則,無(wú)法直接用于現實(shí)世界。
  我們知道強化學(xué)習算法分為基于模型和無(wú)模型。一般來(lái)說(shuō),我們的研究側重于無(wú)模型方法,即直接從與環(huán)境的交互中估計最優(yōu)策略和價(jià)值函數。這些方法在某些視頻游戲中運行良好,例如 Atari。但是,無(wú)模型在需要精確和復雜前瞻的領(lǐng)域(例如圍棋或國際象棋)中效果較差。
  在一般的基于模型的強化學(xué)習方法中,模型實(shí)際上是一個(gè)概率分布,也就是構建一個(gè)真實(shí)的環(huán)境,或者說(shuō)是一個(gè)完整的觀(guān)察。首先從環(huán)境的動(dòng)態(tài)中學(xué)習一個(gè)模型,然后根據學(xué)習到的模型進(jìn)行規劃。但在 Atari 游戲實(shí)驗中,性能不如 Model-based。
  本文文章介紹了一種新的基于模型的強化學(xué)習方法MuZero,它不僅可以在視覺(jué)復雜的Atari上表現出色,而且在精確規劃任務(wù)中也表現出色。這很好,
  MuZero 算法基于 AlphaZero 強大的搜索和基于搜索的策略算法,在訓練過(guò)程中加入了一個(gè)學(xué)習模型。
  除此之外,MuZero 將 AlphaZero 擴展到更廣泛的環(huán)境,包括單個(gè)代理域和中間時(shí)間步長(cháng)的非零獎勵。
  小總結:
  規劃(planning algorithm)是一個(gè)難點(diǎn)研究。眾所周知的 AlphaGo 是一種基于樹(shù)的規劃算法,但此類(lèi)算法需要完美的環(huán)境模型,這在現實(shí)世界中很難滿(mǎn)足。
  DeepMind 的 MuZero 算法是基于模型的 RL 領(lǐng)域的里程碑式成就,在促進(jìn)強化學(xué)習解決現實(shí)問(wèn)題方面邁出了新的一步。1.2 理解算法的思想
  首先介紹一下MuZero算法的思想:
  MuZero算法的主要思想是構造一個(gè)抽象的MDP模型,在這個(gè)MDP模型上,預測與Planning直接相關(guān)的未來(lái)數據(策略、價(jià)值函數和獎勵),并在此基礎上預測數據進(jìn)行規劃。
  那么為什么要這樣做,為什么它會(huì )起作用?讓我們將論文中的內容“分解”和“粉碎”來(lái)理解算法的思想:
  1.2.1 為什么要抽象
  我們知道,大多數基于模型的強化學(xué)習方法都會(huì )學(xué)習對應于真實(shí)環(huán)境的動(dòng)態(tài)模型。
  但是,如果是用于 Planning,我們并不關(guān)心 Dynamics Model 是否準確地還原了真實(shí)環(huán)境。
  只要這個(gè) Dynamics Model 給出的未來(lái)每一步的價(jià)值和回報接近真實(shí)環(huán)境中的價(jià)值,我們就可以將其作為 Planning 中的模擬器。
  MuZero 算法是首先將真實(shí)環(huán)境中通過(guò)編碼器(表示函數)獲得的狀態(tài)轉換為沒(méi)有直接約束的抽象狀態(tài)空間(abstract state space)中的隱藏狀態(tài)(hidden state)。狀態(tài)并假設循環(huán)迭代的下一個(gè)動(dòng)作)。
  然后在這個(gè)抽象的狀態(tài)空間中,學(xué)習Dynamics Model和價(jià)值預測,預測每個(gè)隱藏狀態(tài)上的策略(這就是和本文的區別),得到Policy Prediction Network。
  然后,使用蒙特卡洛樹(shù)搜索,使用 Dynamics Model 作為模擬器,在抽象狀態(tài)空間中做 Planning,預測接下來(lái)幾個(gè)步驟的策略、價(jià)值函數和獎勵。
  這里的隱藏狀態(tài)是不適合真實(shí)環(huán)境的。取而代之的是,在抽象狀態(tài)空間中訓練的 Dynamics Model 和價(jià)值預測網(wǎng)絡(luò )可以預測在初始隱藏狀態(tài)和執行接下來(lái)的 k 步后接下來(lái) k 步的價(jià)值和獎勵,以及通過(guò)搜索得到的價(jià)值和獎勵在真實(shí)環(huán)境中。觀(guān)察到的獎勵盡可能接近。
  簡(jiǎn)單來(lái)說(shuō),就是先在虛擬狀態(tài)空間中學(xué)習一個(gè)環(huán)境模型,然后在不與真實(shí)環(huán)境過(guò)多交互的情況下,根據學(xué)習到的環(huán)境模型進(jìn)行規劃。
  1.2.2 為什么有效
  那么我們如何保證抽象MDP中的規劃與真實(shí)環(huán)境中的規劃是等價(jià)的呢?
  這種等價(jià)是通過(guò)確保價(jià)值等價(jià)來(lái)實(shí)現的。
  也就是說(shuō),從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象 MDP 的軌跡累積獎勵與真實(shí)環(huán)境中軌跡的累積獎勵相匹配。
  2 型號圖解說(shuō)明
  首先,整體數據是模型的數學(xué)表達式:
  給定一個(gè)隱藏狀態(tài)和一個(gè)候選動(dòng)作,動(dòng)態(tài)模型需要生成一個(gè)即時(shí)獎勵和一個(gè)新的隱藏狀態(tài)。策略和價(jià)值函數是由預測函數從輸入中計算出來(lái)的。操作是從搜索策略中采樣的。環(huán)境收到一個(gè)動(dòng)作以產(chǎn)生新的觀(guān)察和獎勵。
  接下來(lái)通過(guò)圖文結合的方式,具體講講如何使用學(xué)習到的模型進(jìn)行策劃、演戲、訓練。
  2.1 MuZero中模型的組成
  MuZero 如何使用該模型進(jìn)行規劃?我們看圖A:
  
  所謂模型由以下3個(gè)相互關(guān)聯(lián)的部分組成:
  2.2 MuZero 如何與環(huán)境交互并做出決策
  圖 A 中描述的是,在每一步中,隱藏狀態(tài)執行蒙特卡洛樹(shù)搜索到下一個(gè)動(dòng)作。
  那么 MuZero 是如何在環(huán)境中做出決策的呢?
  下圖是橫看各招的情況:
  
  對于子圖1描述的情況(一黑一白),使用蒙特卡洛樹(shù)搜索對其建模得到一個(gè)策略網(wǎng)絡(luò ),并對策略網(wǎng)絡(luò )進(jìn)行采樣選擇可執行動(dòng)作,這個(gè)動(dòng)作與訪(fǎng)問(wèn)量成正比MCTS 根節點(diǎn)的每個(gè)操作的計數。
  執行動(dòng)作后,得到獎勵,得到下一時(shí)刻的觀(guān)察(子圖2),同樣使用MCTS進(jìn)行建模,得到策略網(wǎng)絡(luò ),選擇可執行動(dòng)作。
  環(huán)境接受動(dòng)作,產(chǎn)生新的觀(guān)察和獎勵,產(chǎn)生子圖 3。
  這樣,軌跡數據在劇集結束時(shí)存儲在重放緩沖區中。這是一個(gè)決定。
  2.3 MuZero 如何訓練模型
  那么 MuZero 是如何訓練模型的呢?讓我們看看下面的過(guò)程:
  
  對 Replay Buffer 中的軌跡數據進(jìn)行采樣,選擇一個(gè)序列,然后針對該軌跡運行 MuZero 模型。
  在初始步驟中,編碼器表示函數接受來(lái)自所選軌跡的過(guò)去觀(guān)察。
  隨后,模型展開(kāi)一個(gè) K 步循環(huán)。
  在第 k 步中,生成器動(dòng)力學(xué)函數接收上一步的隱藏狀態(tài)和實(shí)際動(dòng)作。
  編碼器表示函數、生成器動(dòng)力學(xué)函數、預測器預測函數的參數可以通過(guò)backpropagation-through-time的端到端聯(lián)合訓練來(lái)預測,可以預測三個(gè)量:
  其中是樣本回報,例如棋盤(pán)游戲中的最終獎勵,或 Atari 中 n 步的獎勵。
  3 MuZero算法詳解3.1 價(jià)值網(wǎng)絡(luò )和策略網(wǎng)絡(luò )
  MuZero 是一種機器學(xué)習算法,因此很自然地首先要了解它是如何使用神經(jīng)網(wǎng)絡(luò )的。
  簡(jiǎn)而言之,該算法使用了 AlphaGo 和 AlphaZero 的策略和價(jià)值網(wǎng)絡(luò ):
  
  政策網(wǎng)絡(luò )和價(jià)值網(wǎng)絡(luò )的直觀(guān)含義如下:
  根據策略網(wǎng)絡(luò ),可以預測每一步的動(dòng)作;依靠?jì)r(jià)值網(wǎng)絡(luò ),可以選擇價(jià)值最高的動(dòng)作。結合這兩個(gè)估計可以得到更好的結果。
  3.2 MuZero中的蒙特卡洛樹(shù)搜索3.2.1 MCTS簡(jiǎn)介
  MuZero 還使用 MCTS(蒙特卡洛樹(shù)搜索)聚合神經(jīng)網(wǎng)絡(luò )來(lái)預測和選擇當前環(huán)境中的下一個(gè)動(dòng)作。到達終點(diǎn)后,樹(shù)中的每個(gè)節點(diǎn)都會(huì )存儲一些相關(guān)的參數,包括訪(fǎng)問(wèn)次數、輪數、前一個(gè)動(dòng)作的概率、子節點(diǎn)以及是否有對應的隱藏狀態(tài)和獎勵。
  蒙特卡洛樹(shù)搜索是一個(gè)迭代的、最佳優(yōu)先的樹(shù)搜索過(guò)程。目標是幫助我們弄清楚要采取哪些行動(dòng)來(lái)最大化長(cháng)期利益。
  Best first,這意味著(zhù)搜索樹(shù)的擴展取決于搜索樹(shù)中的值估計。
  與常見(jiàn)的深度優(yōu)先和廣度優(yōu)先相比,最佳優(yōu)先搜索可以利用深度神經(jīng)網(wǎng)絡(luò )的啟發(fā)式估計,在非常大的搜索空間中找到最優(yōu)解。
  蒙特卡洛樹(shù)搜索有四個(gè)主要階段:
  通過(guò)重復這些階段,MCTS 每次都在節點(diǎn)可能的未來(lái)動(dòng)作序列上逐步構建搜索樹(shù)。在這棵樹(shù)中,每個(gè)節點(diǎn)代表一個(gè)未來(lái)狀態(tài),節點(diǎn)之間的線(xiàn)代表從一個(gè)狀態(tài)到下一個(gè)狀態(tài)的動(dòng)作。
  3.22 MuZero算法中MCTS的四個(gè)階段
  接下來(lái)我們對應MuZero算法中的蒙特卡洛樹(shù)搜索,看看上面四個(gè)階段分別對應什么:
  
  我們先來(lái)看看模擬。
  模擬過(guò)程與蒙特卡羅方法類(lèi)似,推導速度快。為了得到某個(gè)狀態(tài)的初始分數,讓游戲隨機玩到最后,記錄模擬次數和獲勝次數。
  接下來(lái)是選擇。
  雖然 Muzero 不知道游戲規則,但它知道該采取哪些步驟。在每個(gè)節點(diǎn)(狀態(tài) s),使用評分函數比較不同的動(dòng)作,并選擇得分最高的最佳動(dòng)作。
  
  每次選擇一個(gè)動(dòng)作時(shí),我們都會(huì )為 UCB 縮放因子 c 和后續動(dòng)作選擇增加其關(guān)聯(lián)的訪(fǎng)問(wèn)計數 N(s,a)。
  模擬沿著(zhù)樹(shù)向下進(jìn)行到尚未擴展的葉子。此時(shí),應用神經(jīng)網(wǎng)絡(luò )對節點(diǎn)進(jìn)行評估,將評估結果(優(yōu)先級和值估計)存儲在節點(diǎn)中。
  然后是擴展。
  選擇動(dòng)作 A 后,在搜索樹(shù)中生成一個(gè)新節點(diǎn),對應動(dòng)作 A 執行后前一個(gè)狀態(tài)的情況。
  最后回溯。
  模擬結束后,從子節點(diǎn)開(kāi)始沿著(zhù)剛剛下的路徑返回,沿途更新每個(gè)父節點(diǎn)的統計信息。每個(gè)節點(diǎn)都持有其下所有價(jià)值估計的連續平均值,這使得 UCB 公式可以隨著(zhù)時(shí)間的推移做出越來(lái)越準確的決策,確保 MCTS 收斂到最優(yōu)動(dòng)作。
  3.2.3 中級獎勵
  
  事實(shí)上,在 MCTS 的過(guò)程中,也收錄了對中間獎勵 r 的預測。
  在某些情況下,游戲完全結束后需要輸贏(yíng)反饋,這可以通過(guò)價(jià)值估計來(lái)建模。但是在頻繁反饋的情況下,從一種狀態(tài)到另一種狀態(tài)的每次轉換都會(huì )得到獎勵 r。
  因此,獎勵直接通過(guò)神經(jīng)網(wǎng)絡(luò )預測建模并用于搜索。在 UCB 策略中引入中間獎勵:
  其中是在狀態(tài) s 執行動(dòng)作 a 后觀(guān)察到的獎勵,折扣因子是對未來(lái)獎勵的關(guān)注程度。
  由于在某些環(huán)境中獎勵是無(wú)界的,因此可以將獎勵和價(jià)值估計歸一化到 [0,1] 期間,然后與先驗知識相結合:
  其中 和 分別是在整個(gè)搜索樹(shù)中觀(guān)察到的最大和最小估計值。
  3.3 總體說(shuō)明
  基于過(guò)去的觀(guān)察和未來(lái)的行為,對于給定步驟中的每一步,使用帶有參數的模型在每個(gè)時(shí)間步進(jìn)行預測。
  該模型預測 3 個(gè)數量:
  其中是地面實(shí)況觀(guān)察獎勵,是策略,是折扣因子。
  說(shuō)白了就是獲取過(guò)去的觀(guān)察數據,編碼成當前的隱藏狀態(tài),然后給出未來(lái)的動(dòng)作,然后在隱藏狀態(tài)空間進(jìn)行規劃。
  3.4 步分解
  在每個(gè)步驟中,模型由表示函數、動(dòng)力學(xué)函數和預測函數組成:
  使用這樣的模型,可以根據過(guò)去的觀(guān)察來(lái)搜索虛擬的未來(lái)軌跡。
  例如,可以簡(jiǎn)單地選擇 k 步動(dòng)作序列來(lái)搜索最大化價(jià)值函數。
  也可以使用類(lèi)似于 AlphaZero 搜索的 MCTS 算法來(lái)獲取策略和估計值,然后從策略中選擇動(dòng)作。此外,執行操作并生成中間獎勵和狀態(tài)空間。
  在第 k 步,通過(guò)聯(lián)合訓練模型的所有參數,將策略、價(jià)值和獎勵與實(shí)際觀(guān)察到的目標值圖像進(jìn)行匹配。
  模型的所有參數都經(jīng)過(guò)聯(lián)合訓練,使得每個(gè)假設步 k 的策略、值和獎勵與 k 個(gè)實(shí)際時(shí)間步后觀(guān)察到的相應目標值完全匹配。
  使用 MCTS,可以使用三個(gè)改進(jìn)的策略目標:
  最后加上L2正則化項得到最終的損失函數:
  4 總結
  強化學(xué)習分為兩類(lèi):基于模型的和無(wú)模型的。
  其中,基于模型的強化學(xué)習方法需要構建環(huán)境模型。通常,環(huán)境模型由馬爾可夫決策過(guò)程(MDP)表示。該過(guò)程由兩部分組成:
  模型通常針對選定的動(dòng)作或時(shí)間抽象的行為進(jìn)行訓練。一旦模型建立,MDP 規劃算法(例如:值迭代、蒙特卡洛樹(shù)搜索 MCTS)可以直接用于計算 MDP 的最優(yōu)值或最優(yōu)策略。
  因此,在復雜環(huán)境或局部觀(guān)察的情況下,很難構建模型應該預測的狀態(tài)表示。因為Agent沒(méi)有辦法優(yōu)化“有效規劃的目的”的表示和模型,這就導致了表示學(xué)習、模型學(xué)習和規劃之間的分離。
  另一方面,MuZero 是一種完全不同的基于模型的強化學(xué)習方法,專(zhuān)注于端到端的預測函數。主要思想是構造一個(gè)抽象的MDP模型,使抽象MDP中的規劃等價(jià)于真實(shí)環(huán)境中的規劃。
  這種等價(jià)是通過(guò)保證價(jià)值等價(jià)來(lái)實(shí)現的,即從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象MDP獲得的軌跡累積獎勵與真實(shí)環(huán)境中的軌跡累積獎勵相匹配。
  預測器首先引入價(jià)值等價(jià)模型來(lái)預測價(jià)值而無(wú)需采取行動(dòng)。
  雖然底層模型是 MDP,但它的變換模型不需要匹配環(huán)境中的真實(shí)狀態(tài),只需將 MDP 模型視為深度神經(jīng)網(wǎng)絡(luò )中的隱藏層即可。展開(kāi)的 MDP 被訓練,例如通過(guò)時(shí)間差異學(xué)習,以將累積獎勵的預期總和與實(shí)際環(huán)境的預期值相匹配。
  然后,將價(jià)值等價(jià)模型擴展為以行動(dòng)優(yōu)化價(jià)值。TreeQN 學(xué)習一個(gè)抽象的 MDP 模型,以便在該模型上的樹(shù)搜索(由樹(shù)結構的神經(jīng)網(wǎng)絡(luò )表示)近似于最優(yōu)值函數。值迭代網(wǎng)絡(luò )學(xué)習一個(gè)局部 MDP 模型,使得該模型上的值迭代(由卷積神經(jīng)網(wǎng)絡(luò )表示)接近最優(yōu)值函數。
  價(jià)值預測網(wǎng)絡(luò )更接近于 MuZero:根據實(shí)際動(dòng)作學(xué)習一個(gè) MDP 模型;對展開(kāi)的 MDP 進(jìn)行訓練,以使獎勵的累積總和(以簡(jiǎn)單前向搜索產(chǎn)生的實(shí)際動(dòng)作序列為條件)與真實(shí)環(huán)境匹配一致。如果沒(méi)有策略預測,則搜索僅使用值預測。
  通過(guò)論文的學(xué)習,雖然理解了MuZero算法的思想,但是在實(shí)際項目中使用MuZero還是比較困難的。
  比如如何設計表示、動(dòng)態(tài)、預測等,這些都需要在對代碼實(shí)現非常熟悉的情況下結合具體的業(yè)務(wù)場(chǎng)景來(lái)實(shí)現。
  提供基于pytorch的muzero算法實(shí)現:
  如果有時(shí)間,我會(huì )繼續研究代碼并嘗試復現論文。
  結束 查看全部

  免規則采集器列表算法(
基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))
  
  這個(gè)文章的研究?jì)热菔牵壕哂幸巹澞芰Φ腶gent。
  在此之前,許多研究都使用了基于樹(shù)的規劃方法。然而,在實(shí)際的業(yè)務(wù)應用中,動(dòng)態(tài)控制/仿真環(huán)境往往是復雜且未知的。
  這篇文章文章 提出了一種算法:MuZero,它通過(guò)將基于樹(shù)的搜索與學(xué)習模型相結合,在不了解環(huán)境底層動(dòng)態(tài)的情況下可以很好地執行。這很好。
  這里的學(xué)習模型實(shí)際上是迭代應用的,可以預測與計劃最相關(guān)的獎勵、行動(dòng)選擇策略和價(jià)值函數。
  所以,總而言之,MuZero 的研究目標有兩個(gè):
  下面就開(kāi)始看具體的作品吧!
  1 算法簡(jiǎn)介1.1 背景
  基于前瞻搜索的規劃算法有很多應用。然而,這些規劃算法都依賴(lài)于精確的模擬器和嚴格的規則,無(wú)法直接用于現實(shí)世界。
  我們知道強化學(xué)習算法分為基于模型和無(wú)模型。一般來(lái)說(shuō),我們的研究側重于無(wú)模型方法,即直接從與環(huán)境的交互中估計最優(yōu)策略和價(jià)值函數。這些方法在某些視頻游戲中運行良好,例如 Atari。但是,無(wú)模型在需要精確和復雜前瞻的領(lǐng)域(例如圍棋或國際象棋)中效果較差。
  在一般的基于模型的強化學(xué)習方法中,模型實(shí)際上是一個(gè)概率分布,也就是構建一個(gè)真實(shí)的環(huán)境,或者說(shuō)是一個(gè)完整的觀(guān)察。首先從環(huán)境的動(dòng)態(tài)中學(xué)習一個(gè)模型,然后根據學(xué)習到的模型進(jìn)行規劃。但在 Atari 游戲實(shí)驗中,性能不如 Model-based。
  本文文章介紹了一種新的基于模型的強化學(xué)習方法MuZero,它不僅可以在視覺(jué)復雜的Atari上表現出色,而且在精確規劃任務(wù)中也表現出色。這很好,
  MuZero 算法基于 AlphaZero 強大的搜索和基于搜索的策略算法,在訓練過(guò)程中加入了一個(gè)學(xué)習模型。
  除此之外,MuZero 將 AlphaZero 擴展到更廣泛的環(huán)境,包括單個(gè)代理域和中間時(shí)間步長(cháng)的非零獎勵。
  小總結:
  規劃(planning algorithm)是一個(gè)難點(diǎn)研究。眾所周知的 AlphaGo 是一種基于樹(shù)的規劃算法,但此類(lèi)算法需要完美的環(huán)境模型,這在現實(shí)世界中很難滿(mǎn)足。
  DeepMind 的 MuZero 算法是基于模型的 RL 領(lǐng)域的里程碑式成就,在促進(jìn)強化學(xué)習解決現實(shí)問(wèn)題方面邁出了新的一步。1.2 理解算法的思想
  首先介紹一下MuZero算法的思想:
  MuZero算法的主要思想是構造一個(gè)抽象的MDP模型,在這個(gè)MDP模型上,預測與Planning直接相關(guān)的未來(lái)數據(策略、價(jià)值函數和獎勵),并在此基礎上預測數據進(jìn)行規劃。
  那么為什么要這樣做,為什么它會(huì )起作用?讓我們將論文中的內容“分解”和“粉碎”來(lái)理解算法的思想:
  1.2.1 為什么要抽象
  我們知道,大多數基于模型的強化學(xué)習方法都會(huì )學(xué)習對應于真實(shí)環(huán)境的動(dòng)態(tài)模型。
  但是,如果是用于 Planning,我們并不關(guān)心 Dynamics Model 是否準確地還原了真實(shí)環(huán)境。
  只要這個(gè) Dynamics Model 給出的未來(lái)每一步的價(jià)值和回報接近真實(shí)環(huán)境中的價(jià)值,我們就可以將其作為 Planning 中的模擬器。
  MuZero 算法是首先將真實(shí)環(huán)境中通過(guò)編碼器(表示函數)獲得的狀態(tài)轉換為沒(méi)有直接約束的抽象狀態(tài)空間(abstract state space)中的隱藏狀態(tài)(hidden state)。狀態(tài)并假設循環(huán)迭代的下一個(gè)動(dòng)作)。
  然后在這個(gè)抽象的狀態(tài)空間中,學(xué)習Dynamics Model和價(jià)值預測,預測每個(gè)隱藏狀態(tài)上的策略(這就是和本文的區別),得到Policy Prediction Network。
  然后,使用蒙特卡洛樹(shù)搜索,使用 Dynamics Model 作為模擬器,在抽象狀態(tài)空間中做 Planning,預測接下來(lái)幾個(gè)步驟的策略、價(jià)值函數和獎勵。
  這里的隱藏狀態(tài)是不適合真實(shí)環(huán)境的。取而代之的是,在抽象狀態(tài)空間中訓練的 Dynamics Model 和價(jià)值預測網(wǎng)絡(luò )可以預測在初始隱藏狀態(tài)和執行接下來(lái)的 k 步后接下來(lái) k 步的價(jià)值和獎勵,以及通過(guò)搜索得到的價(jià)值和獎勵在真實(shí)環(huán)境中。觀(guān)察到的獎勵盡可能接近。
  簡(jiǎn)單來(lái)說(shuō),就是先在虛擬狀態(tài)空間中學(xué)習一個(gè)環(huán)境模型,然后在不與真實(shí)環(huán)境過(guò)多交互的情況下,根據學(xué)習到的環(huán)境模型進(jìn)行規劃。
  1.2.2 為什么有效
  那么我們如何保證抽象MDP中的規劃與真實(shí)環(huán)境中的規劃是等價(jià)的呢?
  這種等價(jià)是通過(guò)確保價(jià)值等價(jià)來(lái)實(shí)現的。
  也就是說(shuō),從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象 MDP 的軌跡累積獎勵與真實(shí)環(huán)境中軌跡的累積獎勵相匹配。
  2 型號圖解說(shuō)明
  首先,整體數據是模型的數學(xué)表達式:
  給定一個(gè)隱藏狀態(tài)和一個(gè)候選動(dòng)作,動(dòng)態(tài)模型需要生成一個(gè)即時(shí)獎勵和一個(gè)新的隱藏狀態(tài)。策略和價(jià)值函數是由預測函數從輸入中計算出來(lái)的。操作是從搜索策略中采樣的。環(huán)境收到一個(gè)動(dòng)作以產(chǎn)生新的觀(guān)察和獎勵。
  接下來(lái)通過(guò)圖文結合的方式,具體講講如何使用學(xué)習到的模型進(jìn)行策劃、演戲、訓練。
  2.1 MuZero中模型的組成
  MuZero 如何使用該模型進(jìn)行規劃?我們看圖A:
  
  所謂模型由以下3個(gè)相互關(guān)聯(lián)的部分組成:
  2.2 MuZero 如何與環(huán)境交互并做出決策
  圖 A 中描述的是,在每一步中,隱藏狀態(tài)執行蒙特卡洛樹(shù)搜索到下一個(gè)動(dòng)作。
  那么 MuZero 是如何在環(huán)境中做出決策的呢?
  下圖是橫看各招的情況:
  
  對于子圖1描述的情況(一黑一白),使用蒙特卡洛樹(shù)搜索對其建模得到一個(gè)策略網(wǎng)絡(luò ),并對策略網(wǎng)絡(luò )進(jìn)行采樣選擇可執行動(dòng)作,這個(gè)動(dòng)作與訪(fǎng)問(wèn)量成正比MCTS 根節點(diǎn)的每個(gè)操作的計數。
  執行動(dòng)作后,得到獎勵,得到下一時(shí)刻的觀(guān)察(子圖2),同樣使用MCTS進(jìn)行建模,得到策略網(wǎng)絡(luò ),選擇可執行動(dòng)作。
  環(huán)境接受動(dòng)作,產(chǎn)生新的觀(guān)察和獎勵,產(chǎn)生子圖 3。
  這樣,軌跡數據在劇集結束時(shí)存儲在重放緩沖區中。這是一個(gè)決定。
  2.3 MuZero 如何訓練模型
  那么 MuZero 是如何訓練模型的呢?讓我們看看下面的過(guò)程:
  
  對 Replay Buffer 中的軌跡數據進(jìn)行采樣,選擇一個(gè)序列,然后針對該軌跡運行 MuZero 模型。
  在初始步驟中,編碼器表示函數接受來(lái)自所選軌跡的過(guò)去觀(guān)察。
  隨后,模型展開(kāi)一個(gè) K 步循環(huán)。
  在第 k 步中,生成器動(dòng)力學(xué)函數接收上一步的隱藏狀態(tài)和實(shí)際動(dòng)作。
  編碼器表示函數、生成器動(dòng)力學(xué)函數、預測器預測函數的參數可以通過(guò)backpropagation-through-time的端到端聯(lián)合訓練來(lái)預測,可以預測三個(gè)量:
  其中是樣本回報,例如棋盤(pán)游戲中的最終獎勵,或 Atari 中 n 步的獎勵。
  3 MuZero算法詳解3.1 價(jià)值網(wǎng)絡(luò )和策略網(wǎng)絡(luò )
  MuZero 是一種機器學(xué)習算法,因此很自然地首先要了解它是如何使用神經(jīng)網(wǎng)絡(luò )的。
  簡(jiǎn)而言之,該算法使用了 AlphaGo 和 AlphaZero 的策略和價(jià)值網(wǎng)絡(luò ):
  
  政策網(wǎng)絡(luò )和價(jià)值網(wǎng)絡(luò )的直觀(guān)含義如下:
  根據策略網(wǎng)絡(luò ),可以預測每一步的動(dòng)作;依靠?jì)r(jià)值網(wǎng)絡(luò ),可以選擇價(jià)值最高的動(dòng)作。結合這兩個(gè)估計可以得到更好的結果。
  3.2 MuZero中的蒙特卡洛樹(shù)搜索3.2.1 MCTS簡(jiǎn)介
  MuZero 還使用 MCTS(蒙特卡洛樹(shù)搜索)聚合神經(jīng)網(wǎng)絡(luò )來(lái)預測和選擇當前環(huán)境中的下一個(gè)動(dòng)作。到達終點(diǎn)后,樹(shù)中的每個(gè)節點(diǎn)都會(huì )存儲一些相關(guān)的參數,包括訪(fǎng)問(wèn)次數、輪數、前一個(gè)動(dòng)作的概率、子節點(diǎn)以及是否有對應的隱藏狀態(tài)和獎勵。
  蒙特卡洛樹(shù)搜索是一個(gè)迭代的、最佳優(yōu)先的樹(shù)搜索過(guò)程。目標是幫助我們弄清楚要采取哪些行動(dòng)來(lái)最大化長(cháng)期利益。
  Best first,這意味著(zhù)搜索樹(shù)的擴展取決于搜索樹(shù)中的值估計。
  與常見(jiàn)的深度優(yōu)先和廣度優(yōu)先相比,最佳優(yōu)先搜索可以利用深度神經(jīng)網(wǎng)絡(luò )的啟發(fā)式估計,在非常大的搜索空間中找到最優(yōu)解。
  蒙特卡洛樹(shù)搜索有四個(gè)主要階段:
  通過(guò)重復這些階段,MCTS 每次都在節點(diǎn)可能的未來(lái)動(dòng)作序列上逐步構建搜索樹(shù)。在這棵樹(shù)中,每個(gè)節點(diǎn)代表一個(gè)未來(lái)狀態(tài),節點(diǎn)之間的線(xiàn)代表從一個(gè)狀態(tài)到下一個(gè)狀態(tài)的動(dòng)作。
  3.22 MuZero算法中MCTS的四個(gè)階段
  接下來(lái)我們對應MuZero算法中的蒙特卡洛樹(shù)搜索,看看上面四個(gè)階段分別對應什么:
  
  我們先來(lái)看看模擬。
  模擬過(guò)程與蒙特卡羅方法類(lèi)似,推導速度快。為了得到某個(gè)狀態(tài)的初始分數,讓游戲隨機玩到最后,記錄模擬次數和獲勝次數。
  接下來(lái)是選擇。
  雖然 Muzero 不知道游戲規則,但它知道該采取哪些步驟。在每個(gè)節點(diǎn)(狀態(tài) s),使用評分函數比較不同的動(dòng)作,并選擇得分最高的最佳動(dòng)作。
  
  每次選擇一個(gè)動(dòng)作時(shí),我們都會(huì )為 UCB 縮放因子 c 和后續動(dòng)作選擇增加其關(guān)聯(lián)的訪(fǎng)問(wèn)計數 N(s,a)。
  模擬沿著(zhù)樹(shù)向下進(jìn)行到尚未擴展的葉子。此時(shí),應用神經(jīng)網(wǎng)絡(luò )對節點(diǎn)進(jìn)行評估,將評估結果(優(yōu)先級和值估計)存儲在節點(diǎn)中。
  然后是擴展。
  選擇動(dòng)作 A 后,在搜索樹(shù)中生成一個(gè)新節點(diǎn),對應動(dòng)作 A 執行后前一個(gè)狀態(tài)的情況。
  最后回溯。
  模擬結束后,從子節點(diǎn)開(kāi)始沿著(zhù)剛剛下的路徑返回,沿途更新每個(gè)父節點(diǎn)的統計信息。每個(gè)節點(diǎn)都持有其下所有價(jià)值估計的連續平均值,這使得 UCB 公式可以隨著(zhù)時(shí)間的推移做出越來(lái)越準確的決策,確保 MCTS 收斂到最優(yōu)動(dòng)作。
  3.2.3 中級獎勵
  
  事實(shí)上,在 MCTS 的過(guò)程中,也收錄了對中間獎勵 r 的預測。
  在某些情況下,游戲完全結束后需要輸贏(yíng)反饋,這可以通過(guò)價(jià)值估計來(lái)建模。但是在頻繁反饋的情況下,從一種狀態(tài)到另一種狀態(tài)的每次轉換都會(huì )得到獎勵 r。
  因此,獎勵直接通過(guò)神經(jīng)網(wǎng)絡(luò )預測建模并用于搜索。在 UCB 策略中引入中間獎勵:
  其中是在狀態(tài) s 執行動(dòng)作 a 后觀(guān)察到的獎勵,折扣因子是對未來(lái)獎勵的關(guān)注程度。
  由于在某些環(huán)境中獎勵是無(wú)界的,因此可以將獎勵和價(jià)值估計歸一化到 [0,1] 期間,然后與先驗知識相結合:
  其中 和 分別是在整個(gè)搜索樹(shù)中觀(guān)察到的最大和最小估計值。
  3.3 總體說(shuō)明
  基于過(guò)去的觀(guān)察和未來(lái)的行為,對于給定步驟中的每一步,使用帶有參數的模型在每個(gè)時(shí)間步進(jìn)行預測。
  該模型預測 3 個(gè)數量:
  其中是地面實(shí)況觀(guān)察獎勵,是策略,是折扣因子。
  說(shuō)白了就是獲取過(guò)去的觀(guān)察數據,編碼成當前的隱藏狀態(tài),然后給出未來(lái)的動(dòng)作,然后在隱藏狀態(tài)空間進(jìn)行規劃。
  3.4 步分解
  在每個(gè)步驟中,模型由表示函數、動(dòng)力學(xué)函數和預測函數組成:
  使用這樣的模型,可以根據過(guò)去的觀(guān)察來(lái)搜索虛擬的未來(lái)軌跡。
  例如,可以簡(jiǎn)單地選擇 k 步動(dòng)作序列來(lái)搜索最大化價(jià)值函數。
  也可以使用類(lèi)似于 AlphaZero 搜索的 MCTS 算法來(lái)獲取策略和估計值,然后從策略中選擇動(dòng)作。此外,執行操作并生成中間獎勵和狀態(tài)空間。
  在第 k 步,通過(guò)聯(lián)合訓練模型的所有參數,將策略、價(jià)值和獎勵與實(shí)際觀(guān)察到的目標值圖像進(jìn)行匹配。
  模型的所有參數都經(jīng)過(guò)聯(lián)合訓練,使得每個(gè)假設步 k 的策略、值和獎勵與 k 個(gè)實(shí)際時(shí)間步后觀(guān)察到的相應目標值完全匹配。
  使用 MCTS,可以使用三個(gè)改進(jìn)的策略目標:
  最后加上L2正則化項得到最終的損失函數:
  4 總結
  強化學(xué)習分為兩類(lèi):基于模型的和無(wú)模型的。
  其中,基于模型的強化學(xué)習方法需要構建環(huán)境模型。通常,環(huán)境模型由馬爾可夫決策過(guò)程(MDP)表示。該過(guò)程由兩部分組成:
  模型通常針對選定的動(dòng)作或時(shí)間抽象的行為進(jìn)行訓練。一旦模型建立,MDP 規劃算法(例如:值迭代、蒙特卡洛樹(shù)搜索 MCTS)可以直接用于計算 MDP 的最優(yōu)值或最優(yōu)策略。
  因此,在復雜環(huán)境或局部觀(guān)察的情況下,很難構建模型應該預測的狀態(tài)表示。因為Agent沒(méi)有辦法優(yōu)化“有效規劃的目的”的表示和模型,這就導致了表示學(xué)習、模型學(xué)習和規劃之間的分離。
  另一方面,MuZero 是一種完全不同的基于模型的強化學(xué)習方法,專(zhuān)注于端到端的預測函數。主要思想是構造一個(gè)抽象的MDP模型,使抽象MDP中的規劃等價(jià)于真實(shí)環(huán)境中的規劃。
  這種等價(jià)是通過(guò)保證價(jià)值等價(jià)來(lái)實(shí)現的,即從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象MDP獲得的軌跡累積獎勵與真實(shí)環(huán)境中的軌跡累積獎勵相匹配。
  預測器首先引入價(jià)值等價(jià)模型來(lái)預測價(jià)值而無(wú)需采取行動(dòng)。
  雖然底層模型是 MDP,但它的變換模型不需要匹配環(huán)境中的真實(shí)狀態(tài),只需將 MDP 模型視為深度神經(jīng)網(wǎng)絡(luò )中的隱藏層即可。展開(kāi)的 MDP 被訓練,例如通過(guò)時(shí)間差異學(xué)習,以將累積獎勵的預期總和與實(shí)際環(huán)境的預期值相匹配。
  然后,將價(jià)值等價(jià)模型擴展為以行動(dòng)優(yōu)化價(jià)值。TreeQN 學(xué)習一個(gè)抽象的 MDP 模型,以便在該模型上的樹(shù)搜索(由樹(shù)結構的神經(jīng)網(wǎng)絡(luò )表示)近似于最優(yōu)值函數。值迭代網(wǎng)絡(luò )學(xué)習一個(gè)局部 MDP 模型,使得該模型上的值迭代(由卷積神經(jīng)網(wǎng)絡(luò )表示)接近最優(yōu)值函數。
  價(jià)值預測網(wǎng)絡(luò )更接近于 MuZero:根據實(shí)際動(dòng)作學(xué)習一個(gè) MDP 模型;對展開(kāi)的 MDP 進(jìn)行訓練,以使獎勵的累積總和(以簡(jiǎn)單前向搜索產(chǎn)生的實(shí)際動(dòng)作序列為條件)與真實(shí)環(huán)境匹配一致。如果沒(méi)有策略預測,則搜索僅使用值預測。
  通過(guò)論文的學(xué)習,雖然理解了MuZero算法的思想,但是在實(shí)際項目中使用MuZero還是比較困難的。
  比如如何設計表示、動(dòng)態(tài)、預測等,這些都需要在對代碼實(shí)現非常熟悉的情況下結合具體的業(yè)務(wù)場(chǎng)景來(lái)實(shí)現。
  提供基于pytorch的muzero算法實(shí)現:
  如果有時(shí)間,我會(huì )繼續研究代碼并嘗試復現論文。
  結束

免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2022-04-12 14:12 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)
  SQL注入的主要手段
  開(kāi)源
  錯誤回聲
  百葉窗
  防御是
  消毒
  參數綁定
  CSRF(Cross Site Request Forgery,跨站請求)
  主要防御是識別請求者
  表單令牌
  驗證碼
  推薦人檢查
  其他攻擊和漏洞
  錯誤代碼錯誤回顯
  HTML 注釋
  上傳文件
  最有效的方法是設置上傳白名單,只允許上傳可靠的文件類(lèi)型。另外,可以修改文件名,
  使用專(zhuān)門(mén)的存儲手段來(lái)保護服務(wù)器免受上傳文件攻擊。
  路徑遍歷
  攻擊者使用請求 URL 中的相對路徑來(lái)遍歷系統上未打開(kāi)的目錄和文件。防御方法主要是轉換JS、CSS等資源文件
  部署在獨立服務(wù)器上,使用獨立域名,其他文件不使用靜態(tài)URL訪(fǎng)問(wèn),動(dòng)態(tài)參數不收錄文件路徑等信息。
  ModSecurity 是一個(gè)開(kāi)源的網(wǎng)絡(luò )應用防火墻。
  ModSecurity 采用一種架構模式,其中處理邏輯與攻擊規則集分離。
  NEC 的 SiteShell
  信息加密技術(shù)可分為三類(lèi):
  1:?jiǎn)蜗蚬<用?2:對稱(chēng)加密 3:非對稱(chēng)加密
  雖然單向哈希密文無(wú)法通過(guò)算法逆計算得到明文,但由于人們將密碼設置為具有一定的模式,
  因此,猜測破解可以通過(guò)彩虹表(人們常用的密碼和對應的密文關(guān)系)等手段進(jìn)行。
  可以在哈希算法中加鹽,相當于加密密鑰,增加破解難度。
  對稱(chēng)加密意味著(zhù)加密和解密使用相同的密鑰。
  非對稱(chēng)加密是指加密和解密使用不同的密鑰。其中,公鑰稱(chēng)為公鑰,它所擁有的就是秘鑰。
  RSA是一種非對稱(chēng)加密算法。
  一種是將密鑰和算法放在同一臺服務(wù)器上,甚至制作專(zhuān)用的硬件設施,對外提供加解密服務(wù)。
  應用系統通過(guò)調用該服務(wù)來(lái)實(shí)現數據的加解密。
  另一種解決方案是將加解密算法放在應用系統中,秘鑰放在獨立的服務(wù)器中。為了提供密鑰的安全性,在實(shí)際存儲過(guò)程中,
  密鑰被分成若干份,加密后存儲在不同的存儲介質(zhì)中,既考慮了密鑰的安全性,又提高了性能。
  信息過(guò)濾和反垃圾郵件
  文本匹配
  有很多公共算法,基本上都是 Trie 樹(shù)的變種。
  另一個(gè)更簡(jiǎn)單的實(shí)現是為文本匹配構建一個(gè)多級哈希表。先做降噪,再做文字匹配。如“A_La_Bo”
  分類(lèi)算法
  貝葉斯分類(lèi)算法
  除了反垃圾郵件,分類(lèi)算法還可以用來(lái)自動(dòng)分類(lèi)信息。門(mén)戶(hù)網(wǎng)站可以使用該算法自動(dòng)分類(lèi)和分發(fā)來(lái)自采集的新聞文章
  到不同的頻道。電子郵件服務(wù)提供商基于電子郵件內容推送的個(gè)性化廣告也可以使用分類(lèi)算法來(lái)提供傳遞相關(guān)性。
  黑名單,可用于信息去重,可使用布隆過(guò)濾器代替哈希表
  規則引擎是一種分離業(yè)務(wù)規則和規則處理邏輯的技術(shù)。業(yè)務(wù)規則文件由運維人員通過(guò)容器管理界面進(jìn)行編輯。
  修改規則時(shí),可以實(shí)時(shí)使用新規則,而無(wú)需更改代碼發(fā)布者。規則處理邏輯調用規則來(lái)處理輸入數據。
  統計模型
  目前,大型網(wǎng)站傾向于使用統計模型進(jìn)行風(fēng)險控制。
  統計模式包括分類(lèi)算法或更復雜的智能統計機器學(xué)習算法
  這個(gè)世界沒(méi)有絕對的安全,就像有絕對的自由一樣。
  秒殺系統對應的策略
  1:秒殺系統獨立部署
  2:秒殺產(chǎn)品頁(yè)面是靜態(tài)的
  3:租賃秒殺活動(dòng)網(wǎng)絡(luò )寬帶
  4:動(dòng)態(tài)生成隨機訂單頁(yè)面URL
  軟件設計有兩種風(fēng)格
  一種是將軟件設計得復雜,使缺陷不那么明顯
  一是軟件設計得簡(jiǎn)單到?jīng)]有明顯的缺陷。 查看全部

  免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)
  SQL注入的主要手段
  開(kāi)源
  錯誤回聲
  百葉窗
  防御是
  消毒
  參數綁定
  CSRF(Cross Site Request Forgery,跨站請求)
  主要防御是識別請求者
  表單令牌
  驗證碼
  推薦人檢查
  其他攻擊和漏洞
  錯誤代碼錯誤回顯
  HTML 注釋
  上傳文件
  最有效的方法是設置上傳白名單,只允許上傳可靠的文件類(lèi)型。另外,可以修改文件名,
  使用專(zhuān)門(mén)的存儲手段來(lái)保護服務(wù)器免受上傳文件攻擊。
  路徑遍歷
  攻擊者使用請求 URL 中的相對路徑來(lái)遍歷系統上未打開(kāi)的目錄和文件。防御方法主要是轉換JS、CSS等資源文件
  部署在獨立服務(wù)器上,使用獨立域名,其他文件不使用靜態(tài)URL訪(fǎng)問(wèn),動(dòng)態(tài)參數不收錄文件路徑等信息。
  ModSecurity 是一個(gè)開(kāi)源的網(wǎng)絡(luò )應用防火墻。
  ModSecurity 采用一種架構模式,其中處理邏輯與攻擊規則集分離。
  NEC 的 SiteShell
  信息加密技術(shù)可分為三類(lèi):
  1:?jiǎn)蜗蚬<用?2:對稱(chēng)加密 3:非對稱(chēng)加密
  雖然單向哈希密文無(wú)法通過(guò)算法逆計算得到明文,但由于人們將密碼設置為具有一定的模式,
  因此,猜測破解可以通過(guò)彩虹表(人們常用的密碼和對應的密文關(guān)系)等手段進(jìn)行。
  可以在哈希算法中加鹽,相當于加密密鑰,增加破解難度。
  對稱(chēng)加密意味著(zhù)加密和解密使用相同的密鑰。
  非對稱(chēng)加密是指加密和解密使用不同的密鑰。其中,公鑰稱(chēng)為公鑰,它所擁有的就是秘鑰。
  RSA是一種非對稱(chēng)加密算法。
  一種是將密鑰和算法放在同一臺服務(wù)器上,甚至制作專(zhuān)用的硬件設施,對外提供加解密服務(wù)。
  應用系統通過(guò)調用該服務(wù)來(lái)實(shí)現數據的加解密。
  另一種解決方案是將加解密算法放在應用系統中,秘鑰放在獨立的服務(wù)器中。為了提供密鑰的安全性,在實(shí)際存儲過(guò)程中,
  密鑰被分成若干份,加密后存儲在不同的存儲介質(zhì)中,既考慮了密鑰的安全性,又提高了性能。
  信息過(guò)濾和反垃圾郵件
  文本匹配
  有很多公共算法,基本上都是 Trie 樹(shù)的變種。
  另一個(gè)更簡(jiǎn)單的實(shí)現是為文本匹配構建一個(gè)多級哈希表。先做降噪,再做文字匹配。如“A_La_Bo”
  分類(lèi)算法
  貝葉斯分類(lèi)算法
  除了反垃圾郵件,分類(lèi)算法還可以用來(lái)自動(dòng)分類(lèi)信息。門(mén)戶(hù)網(wǎng)站可以使用該算法自動(dòng)分類(lèi)和分發(fā)來(lái)自采集的新聞文章
  到不同的頻道。電子郵件服務(wù)提供商基于電子郵件內容推送的個(gè)性化廣告也可以使用分類(lèi)算法來(lái)提供傳遞相關(guān)性。
  黑名單,可用于信息去重,可使用布隆過(guò)濾器代替哈希表
  規則引擎是一種分離業(yè)務(wù)規則和規則處理邏輯的技術(shù)。業(yè)務(wù)規則文件由運維人員通過(guò)容器管理界面進(jìn)行編輯。
  修改規則時(shí),可以實(shí)時(shí)使用新規則,而無(wú)需更改代碼發(fā)布者。規則處理邏輯調用規則來(lái)處理輸入數據。
  統計模型
  目前,大型網(wǎng)站傾向于使用統計模型進(jìn)行風(fēng)險控制。
  統計模式包括分類(lèi)算法或更復雜的智能統計機器學(xué)習算法
  這個(gè)世界沒(méi)有絕對的安全,就像有絕對的自由一樣。
  秒殺系統對應的策略
  1:秒殺系統獨立部署
  2:秒殺產(chǎn)品頁(yè)面是靜態(tài)的
  3:租賃秒殺活動(dòng)網(wǎng)絡(luò )寬帶
  4:動(dòng)態(tài)生成隨機訂單頁(yè)面URL
  軟件設計有兩種風(fēng)格
  一種是將軟件設計得復雜,使缺陷不那么明顯
  一是軟件設計得簡(jiǎn)單到?jīng)]有明顯的缺陷。

免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 116 次瀏覽 ? 2022-04-11 06:06 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)
  系列目錄
  基于Python網(wǎng)絡(luò )爬蟲(chóng)和推薦算法的新聞推薦平臺
  文章目錄
  特征
  一個(gè)有規律的采集新聞內容的網(wǎng)絡(luò )爬蟲(chóng),只需要配置間隔時(shí)間,就可以自動(dòng)爬取新聞。消息來(lái)源采集為新浪新聞
  一、結構
  新聞爬蟲(chóng)由兩部分組成:URL采集器、詳情頁(yè)采集器、定時(shí)器
  采集器特征
  網(wǎng)址采集器
  專(zhuān)門(mén)用于采集新浪滾動(dòng)新聞上的新聞詳情頁(yè)URL
  詳情頁(yè)采集器
  詳情頁(yè)采集的內容(例如:新聞)通過(guò)來(lái)自URL采集的URL數據
  時(shí)序采集器
  控制news采集器的啟動(dòng)和關(guān)閉,以及定時(shí)任務(wù)的設置
  二、具體實(shí)現1.網(wǎng)址采集器
  '''
使用新浪新聞滾動(dòng)新聞的API進(jìn)行新聞采集
參數分析:
pageid 目前看應該是固定的參數默認值為153
lid 類(lèi)別ID 2509(全部) 2510(國內) 2511(國際) 2669(國際) 2512(體育) 2513(娛樂(lè )) 2514(軍事) 2515(科技) 2516(財經(jīng)) 2517(股市) 2518(美股)
num 獲取新聞數量 上限為50
'''
def urlcollect(lid):
op_mysql = OperationMysql() #創(chuàng )建數據庫連接對象
url = 'https://feed.mix.sina.com.cn/a ... 2Bstr(lid)+'&num=50' #網(wǎng)易新聞API
result = requests.get(url) #對API發(fā)起請求
result.encoding = 'utf-8' #由于A(yíng)PI返回的數據為ISO編碼的,中文在此處顯示會(huì )出現亂碼,因此更改為UTF-8編碼
# print('Web:', result.text)
urls = re.findall(r'"url":"(.*?)"', result.text) #獲取API返回結果中的所有新聞詳情頁(yè)URL
# times = re.findall(r'"ctime":"(.*?)"', result.text)
# 逐條處理被\轉義的字符,使之成為為轉義的字符串
# 并把處理號的URL導入到數據庫中儲存
changedict = {"2518": 0, "2510": 1, "2511": 2, "2669": 3, "2512": 4, "2513": 5, "2514": 6, "2515": 7, "2516": 8, "2517": 9}
Type = changedict.get(str(lid))
for numbers in range(len(urls)):
urls[numbers] = urls[numbers].replace('\\', '')
logger.info("url:{}".format(urls[numbers]))
time = datetime.datetime.now().strftime('%Y-%m-%d')
sql_i = "INSERT INTO news_api_urlcollect(url, type, time) values ('%s', '%d', '%s')" % (urls[numbers], Type, time)
op_mysql.insert_one(sql_i)
op_mysql.conn.close()
  2.詳情頁(yè)面采集器
  3. 時(shí)序采集器
  #創(chuàng )建一個(gè)APScheduler對象(用于配置定時(shí)任務(wù))
sched = BlockingScheduler()
def begincollect(time):
time = int(time)
try:
# 'interval'關(guān)鍵詞表示的是按照固定時(shí)間間隔進(jìn)行的任務(wù) add_job()添加一個(gè)定時(shí)任務(wù)
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect1', kwargs={"lid": "2510",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect2', kwargs={"lid": "2511",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect3', kwargs={"lid": "2669",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect4', kwargs={"lid": "2512",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect5', kwargs={"lid": "2513",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect6', kwargs={"lid": "2514",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect7', kwargs={"lid": "2515",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect8', kwargs={"lid": "2516",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect9', kwargs={"lid": "2517",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect10', kwargs={"lid": "2518",})
# urlcollect(lid)
# 為了可以控制定時(shí)任務(wù)的關(guān)閉因此需要在任務(wù)開(kāi)始時(shí)保存下該進(jìn)程的PID值并保存與文件中
# 用于ClossScheduler.py中進(jìn)行殺死進(jìn)程
pid = os.getpid()
f1 = open(file='urlSpider.txt', mode='w')
f1.write(pid.__str__())
f1.close()
sched.start()
except Exception:
logger.error('error:'+Exception)
def endsched():
sched.shutdown()
  總結
  新聞采集系統可以穩定詳細地采集新浪新聞滾動(dòng)新聞中的所有新聞。目前只寫(xiě)單線(xiàn)程,效率略低。還有一個(gè)未知的bug,就是在消息采集的過(guò)程中,當調度任務(wù)被APScheduler控制時(shí),一旦任務(wù)采集任務(wù)啟動(dòng),就不能直接停止采集@ > 任務(wù),并且需要讓他在相應的循環(huán)中完全運行當前任務(wù),才能停止。簡(jiǎn)而言之,定時(shí)器對任務(wù)的控制只控制間隔時(shí)間和運行次數,不能立即啟動(dòng)和停止。
  另外,采集器還不是通用的,也就是只能用于指定網(wǎng)頁(yè)的內容采集,這是一個(gè)可擴展的功能,通過(guò)對頁(yè)面的分析,大致的內容采集 函數。
  項目完整源碼已經(jīng)更新,有需要可以自行下載
  歡迎提出問(wèn)題和錯誤
  個(gè)人碼云主頁(yè),歡迎交流??!
  個(gè)人GitHub主頁(yè),歡迎交流??! 查看全部

  免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)
  系列目錄
  基于Python網(wǎng)絡(luò )爬蟲(chóng)和推薦算法的新聞推薦平臺
  文章目錄
  特征
  一個(gè)有規律的采集新聞內容的網(wǎng)絡(luò )爬蟲(chóng),只需要配置間隔時(shí)間,就可以自動(dòng)爬取新聞。消息來(lái)源采集為新浪新聞
  一、結構
  新聞爬蟲(chóng)由兩部分組成:URL采集器、詳情頁(yè)采集器、定時(shí)器
  采集器特征
  網(wǎng)址采集器
  專(zhuān)門(mén)用于采集新浪滾動(dòng)新聞上的新聞詳情頁(yè)URL
  詳情頁(yè)采集器
  詳情頁(yè)采集的內容(例如:新聞)通過(guò)來(lái)自URL采集的URL數據
  時(shí)序采集器
  控制news采集器的啟動(dòng)和關(guān)閉,以及定時(shí)任務(wù)的設置
  二、具體實(shí)現1.網(wǎng)址采集器
  '''
使用新浪新聞滾動(dòng)新聞的API進(jìn)行新聞采集
參數分析:
pageid 目前看應該是固定的參數默認值為153
lid 類(lèi)別ID 2509(全部) 2510(國內) 2511(國際) 2669(國際) 2512(體育) 2513(娛樂(lè )) 2514(軍事) 2515(科技) 2516(財經(jīng)) 2517(股市) 2518(美股)
num 獲取新聞數量 上限為50
'''
def urlcollect(lid):
op_mysql = OperationMysql() #創(chuàng )建數據庫連接對象
url = 'https://feed.mix.sina.com.cn/a ... 2Bstr(lid)+'&num=50' #網(wǎng)易新聞API
result = requests.get(url) #對API發(fā)起請求
result.encoding = 'utf-8' #由于A(yíng)PI返回的數據為ISO編碼的,中文在此處顯示會(huì )出現亂碼,因此更改為UTF-8編碼
# print('Web:', result.text)
urls = re.findall(r'"url":"(.*?)"', result.text) #獲取API返回結果中的所有新聞詳情頁(yè)URL
# times = re.findall(r'"ctime":"(.*?)"', result.text)
# 逐條處理被\轉義的字符,使之成為為轉義的字符串
# 并把處理號的URL導入到數據庫中儲存
changedict = {"2518": 0, "2510": 1, "2511": 2, "2669": 3, "2512": 4, "2513": 5, "2514": 6, "2515": 7, "2516": 8, "2517": 9}
Type = changedict.get(str(lid))
for numbers in range(len(urls)):
urls[numbers] = urls[numbers].replace('\\', '')
logger.info("url:{}".format(urls[numbers]))
time = datetime.datetime.now().strftime('%Y-%m-%d')
sql_i = "INSERT INTO news_api_urlcollect(url, type, time) values ('%s', '%d', '%s')" % (urls[numbers], Type, time)
op_mysql.insert_one(sql_i)
op_mysql.conn.close()
  2.詳情頁(yè)面采集器
  3. 時(shí)序采集器
  #創(chuàng )建一個(gè)APScheduler對象(用于配置定時(shí)任務(wù))
sched = BlockingScheduler()
def begincollect(time):
time = int(time)
try:
# 'interval'關(guān)鍵詞表示的是按照固定時(shí)間間隔進(jìn)行的任務(wù) add_job()添加一個(gè)定時(shí)任務(wù)
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect1', kwargs={"lid": "2510",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect2', kwargs={"lid": "2511",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect3', kwargs={"lid": "2669",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect4', kwargs={"lid": "2512",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect5', kwargs={"lid": "2513",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect6', kwargs={"lid": "2514",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect7', kwargs={"lid": "2515",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect8', kwargs={"lid": "2516",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect9', kwargs={"lid": "2517",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect10', kwargs={"lid": "2518",})
# urlcollect(lid)
# 為了可以控制定時(shí)任務(wù)的關(guān)閉因此需要在任務(wù)開(kāi)始時(shí)保存下該進(jìn)程的PID值并保存與文件中
# 用于ClossScheduler.py中進(jìn)行殺死進(jìn)程
pid = os.getpid()
f1 = open(file='urlSpider.txt', mode='w')
f1.write(pid.__str__())
f1.close()
sched.start()
except Exception:
logger.error('error:'+Exception)
def endsched():
sched.shutdown()
  總結
  新聞采集系統可以穩定詳細地采集新浪新聞滾動(dòng)新聞中的所有新聞。目前只寫(xiě)單線(xiàn)程,效率略低。還有一個(gè)未知的bug,就是在消息采集的過(guò)程中,當調度任務(wù)被APScheduler控制時(shí),一旦任務(wù)采集任務(wù)啟動(dòng),就不能直接停止采集@ > 任務(wù),并且需要讓他在相應的循環(huán)中完全運行當前任務(wù),才能停止。簡(jiǎn)而言之,定時(shí)器對任務(wù)的控制只控制間隔時(shí)間和運行次數,不能立即啟動(dòng)和停止。
  另外,采集器還不是通用的,也就是只能用于指定網(wǎng)頁(yè)的內容采集,這是一個(gè)可擴展的功能,通過(guò)對頁(yè)面的分析,大致的內容采集 函數。
  項目完整源碼已經(jīng)更新,有需要可以自行下載
  歡迎提出問(wèn)題和錯誤
  個(gè)人碼云主頁(yè),歡迎交流??!
  個(gè)人GitHub主頁(yè),歡迎交流??!

免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2022-04-10 13:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)
  免規則采集器列表算法:注冊,登錄,消費,加入,注銷(xiāo),轉移密碼支付算法:支付完成日期,支付完成手續費比例,支付完成手續費比例用戶(hù)運營(yíng):拉新,復購,活躍,留存,轉化,付費,廣告位,內容付費,會(huì )員價(jià)值,數據打通,時(shí)間差反饋,業(yè)務(wù)評估。社群運營(yíng):微信群,qq群,聚會(huì ),游戲,單機,小團隊會(huì )員管理:離線(xiàn)計費(流量成本遠高于線(xiàn)上),彈性計費(擴張乏力),預付費(100元起步,低頻率/經(jīng)常聯(lián)網(wǎng)用戶(hù)請慎重)預付費產(chǎn)品:熱門(mén)/賣(mài)點(diǎn)產(chǎn)品,剛需產(chǎn)品,爆款產(chǎn)品商品采購:全采購,不同時(shí)段不同采購,訂單匹配選擇差異,競品渠道商對比產(chǎn)品集采:低于30元每件,中高端產(chǎn)品,需求強度差異同時(shí)電商:轉化率降低,活躍度下降,用戶(hù)平均停留時(shí)間下降,庫存出現不正常,付款成功率大幅下降;直通車(chē),鉆展,付費效果未知,付費渠道等流量運營(yíng):流量成本,付費轉化率效果表現,無(wú)數據模型或支撐數據日報周報年報是否可靠,虧損,利潤,成本負擔是否下降,做廣告投放是否花費過(guò)高,多商品是否可以通過(guò)購買(mǎi)建議獲得產(chǎn)品全鏈路優(yōu)化:對比進(jìn)行優(yōu)化,同時(shí)問(wèn)題產(chǎn)品-增加平臺商家多比、增加價(jià)格優(yōu)勢,對比用戶(hù)數量多比、增加增加活躍度,對比活躍度多比、增加轉化率多比等等等級運營(yíng)或外部推廣:產(chǎn)品品牌,銷(xiāo)售提成等評估運營(yíng)效果:銷(xiāo)售業(yè)績(jì)、流量入口、cpd成本/轉化率、促銷(xiāo)力度、平臺資源等等高流量自營(yíng):生意參謀-營(yíng)銷(xiāo)工具--寶貝詳情中等以上流量自營(yíng):移動(dòng)端、pc端、公眾號廣告投放投放渠道:第三方,同行,微博,貼吧,知乎,抖音,快手,頭條,最右,火山,西瓜視頻,荔枝,今日頭條等等等,全部是合作比價(jià)可私信一起交流。 查看全部

  免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)
  免規則采集器列表算法:注冊,登錄,消費,加入,注銷(xiāo),轉移密碼支付算法:支付完成日期,支付完成手續費比例,支付完成手續費比例用戶(hù)運營(yíng):拉新,復購,活躍,留存,轉化,付費,廣告位,內容付費,會(huì )員價(jià)值,數據打通,時(shí)間差反饋,業(yè)務(wù)評估。社群運營(yíng):微信群,qq群,聚會(huì ),游戲,單機,小團隊會(huì )員管理:離線(xiàn)計費(流量成本遠高于線(xiàn)上),彈性計費(擴張乏力),預付費(100元起步,低頻率/經(jīng)常聯(lián)網(wǎng)用戶(hù)請慎重)預付費產(chǎn)品:熱門(mén)/賣(mài)點(diǎn)產(chǎn)品,剛需產(chǎn)品,爆款產(chǎn)品商品采購:全采購,不同時(shí)段不同采購,訂單匹配選擇差異,競品渠道商對比產(chǎn)品集采:低于30元每件,中高端產(chǎn)品,需求強度差異同時(shí)電商:轉化率降低,活躍度下降,用戶(hù)平均停留時(shí)間下降,庫存出現不正常,付款成功率大幅下降;直通車(chē),鉆展,付費效果未知,付費渠道等流量運營(yíng):流量成本,付費轉化率效果表現,無(wú)數據模型或支撐數據日報周報年報是否可靠,虧損,利潤,成本負擔是否下降,做廣告投放是否花費過(guò)高,多商品是否可以通過(guò)購買(mǎi)建議獲得產(chǎn)品全鏈路優(yōu)化:對比進(jìn)行優(yōu)化,同時(shí)問(wèn)題產(chǎn)品-增加平臺商家多比、增加價(jià)格優(yōu)勢,對比用戶(hù)數量多比、增加增加活躍度,對比活躍度多比、增加轉化率多比等等等級運營(yíng)或外部推廣:產(chǎn)品品牌,銷(xiāo)售提成等評估運營(yíng)效果:銷(xiāo)售業(yè)績(jì)、流量入口、cpd成本/轉化率、促銷(xiāo)力度、平臺資源等等高流量自營(yíng):生意參謀-營(yíng)銷(xiāo)工具--寶貝詳情中等以上流量自營(yíng):移動(dòng)端、pc端、公眾號廣告投放投放渠道:第三方,同行,微博,貼吧,知乎,抖音,快手,頭條,最右,火山,西瓜視頻,荔枝,今日頭條等等等,全部是合作比價(jià)可私信一起交流。

免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 195 次瀏覽 ? 2022-04-09 15:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)
  2018年9月20日,百度正式發(fā)布公告,為營(yíng)造良好的互聯(lián)網(wǎng)內容搜索生態(tài),保護用戶(hù)的搜索閱讀和瀏覽體驗,保護百度搜索引擎中優(yōu)質(zhì)內容生產(chǎn)者的合法權益,百度官方網(wǎng)站將于2018年9月發(fā)布。颶風(fēng)算法將于6月下旬升級。
  一周前,百度發(fā)布公告“百度搜索將上線(xiàn)颶風(fēng)算法2.0,嚴厲打擊不良采集行為”,今天我們將詳細講解颶風(fēng)算法的覆蓋范圍2.0 個(gè)問(wèn)題,站長(cháng)應該怎么做。
  颶風(fēng)算法主要包括四種不良采集行為,如下:
  1、更明顯的采集跟蹤行為
  網(wǎng)站收錄大量?jì)热莶杉?,是從其他網(wǎng)站、公眾號、自媒體等轉來(lái)的。采集后面的信息沒(méi)有整理排版混亂,結構差,缺少一些功能,文章可讀性差,有明顯的采集痕跡,用戶(hù)閱讀體驗特別差。
  示例:采集文章的內容收錄不可點(diǎn)擊的超鏈接,功能缺失,采集痕跡明顯。如下所示
  
  整改建議:網(wǎng)站發(fā)布的內容,要注意文章內容的排版和排版,不得出現與文章主題弱相關(guān)或無(wú)關(guān)的信息。不允許使用@文章 或不可用的功能。干擾用戶(hù)的瀏覽體驗。
  2、body內容有拼接行為
  網(wǎng)站采集多個(gè)不同的文章拼接或疊加。文章整體內容沒(méi)有形成完整的邏輯,閱讀不流暢,段落不連貫,文章話(huà)題多等問(wèn)題無(wú)法正常滿(mǎn)足用戶(hù)需求。
  例子:文章正文前后的內容沒(méi)有關(guān)系,邏輯不連貫。如下所示
  
  整改建議:百度嚴禁使用采集器、采集軟件等編輯工具采集隨意制作拼接內容。制作大量對用戶(hù)有價(jià)值的優(yōu)質(zhì)原創(chuàng )內容。
  3、廣泛的內容采集行為
  網(wǎng)站中文章的大部分內容都是采集。質(zhì)量較低。
  整改建議:百度鼓勵網(wǎng)站運營(yíng)商大力制作優(yōu)質(zhì)原創(chuàng )內容,對原創(chuàng )內容給予保護。如需轉載,需注明內容出處(如:轉載內容注明新聞、政策等出處將不視為采集內容)。
  4、跨域采集內容行為
  網(wǎng)站通過(guò)采集大量與本站域名不一致的內容獲取流量的行為。
  示例:Education 網(wǎng)站 發(fā)布與食品行業(yè)相關(guān)的內容。如下所示
  
  整改建議:百度鼓勵網(wǎng)站制作文章和該領(lǐng)域的內容,通過(guò)專(zhuān)注于該領(lǐng)域獲得更多搜索用戶(hù)的青睞。不要試圖采集跨域內容來(lái)獲取短期利益。這樣做會(huì )降低域焦點(diǎn)并影響 網(wǎng)站 在搜索引擎中的表現。
  總結:
  綜上所述,颶風(fēng)算法2.0旨在保障搜索用戶(hù)的瀏覽體驗,保障搜索生態(tài)的健康健康發(fā)展。對于任何違反網(wǎng)站的行為,百度搜索將使用網(wǎng)站對存在問(wèn)題的嚴重性進(jìn)行相應的限制搜索展示,情節嚴重的將給予永久停牌處分。 查看全部

  免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)
  2018年9月20日,百度正式發(fā)布公告,為營(yíng)造良好的互聯(lián)網(wǎng)內容搜索生態(tài),保護用戶(hù)的搜索閱讀和瀏覽體驗,保護百度搜索引擎中優(yōu)質(zhì)內容生產(chǎn)者的合法權益,百度官方網(wǎng)站將于2018年9月發(fā)布。颶風(fēng)算法將于6月下旬升級。
  一周前,百度發(fā)布公告“百度搜索將上線(xiàn)颶風(fēng)算法2.0,嚴厲打擊不良采集行為”,今天我們將詳細講解颶風(fēng)算法的覆蓋范圍2.0 個(gè)問(wèn)題,站長(cháng)應該怎么做。
  颶風(fēng)算法主要包括四種不良采集行為,如下:
  1、更明顯的采集跟蹤行為
  網(wǎng)站收錄大量?jì)热莶杉?,是從其他網(wǎng)站、公眾號、自媒體等轉來(lái)的。采集后面的信息沒(méi)有整理排版混亂,結構差,缺少一些功能,文章可讀性差,有明顯的采集痕跡,用戶(hù)閱讀體驗特別差。
  示例:采集文章的內容收錄不可點(diǎn)擊的超鏈接,功能缺失,采集痕跡明顯。如下所示
  
  整改建議:網(wǎng)站發(fā)布的內容,要注意文章內容的排版和排版,不得出現與文章主題弱相關(guān)或無(wú)關(guān)的信息。不允許使用@文章 或不可用的功能。干擾用戶(hù)的瀏覽體驗。
  2、body內容有拼接行為
  網(wǎng)站采集多個(gè)不同的文章拼接或疊加。文章整體內容沒(méi)有形成完整的邏輯,閱讀不流暢,段落不連貫,文章話(huà)題多等問(wèn)題無(wú)法正常滿(mǎn)足用戶(hù)需求。
  例子:文章正文前后的內容沒(méi)有關(guān)系,邏輯不連貫。如下所示
  
  整改建議:百度嚴禁使用采集器、采集軟件等編輯工具采集隨意制作拼接內容。制作大量對用戶(hù)有價(jià)值的優(yōu)質(zhì)原創(chuàng )內容。
  3、廣泛的內容采集行為
  網(wǎng)站中文章的大部分內容都是采集。質(zhì)量較低。
  整改建議:百度鼓勵網(wǎng)站運營(yíng)商大力制作優(yōu)質(zhì)原創(chuàng )內容,對原創(chuàng )內容給予保護。如需轉載,需注明內容出處(如:轉載內容注明新聞、政策等出處將不視為采集內容)。
  4、跨域采集內容行為
  網(wǎng)站通過(guò)采集大量與本站域名不一致的內容獲取流量的行為。
  示例:Education 網(wǎng)站 發(fā)布與食品行業(yè)相關(guān)的內容。如下所示
  
  整改建議:百度鼓勵網(wǎng)站制作文章和該領(lǐng)域的內容,通過(guò)專(zhuān)注于該領(lǐng)域獲得更多搜索用戶(hù)的青睞。不要試圖采集跨域內容來(lái)獲取短期利益。這樣做會(huì )降低域焦點(diǎn)并影響 網(wǎng)站 在搜索引擎中的表現。
  總結:
  綜上所述,颶風(fēng)算法2.0旨在保障搜索用戶(hù)的瀏覽體驗,保障搜索生態(tài)的健康健康發(fā)展。對于任何違反網(wǎng)站的行為,百度搜索將使用網(wǎng)站對存在問(wèn)題的嚴重性進(jìn)行相應的限制搜索展示,情節嚴重的將給予永久停牌處分。

免規則采集器列表算法( 如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 189 次瀏覽 ? 2022-04-07 18:18 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))
  
  
  PowerBI商品關(guān)聯(lián)規則的可視化
  在上一篇文章中,我解釋了關(guān)聯(lián)規則的原理和實(shí)現步驟。如果你理解它,它實(shí)際上很容易理解。但說(shuō)起來(lái)容易做起來(lái)難,如何通過(guò)工具處理原創(chuàng )數據以獲得有效可靠的結果仍然存在問(wèn)題。實(shí)際的工作是讓你解決問(wèn)題,而不是僅僅談?wù)摻鉀Q方案。本文以理論為基礎,結合實(shí)際數據展示如何使用Python實(shí)現關(guān)聯(lián)規則,以及如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)展示。
  使用Python解決一個(gè)問(wèn)題時(shí),實(shí)際上并不是從0到1的一步一步構建,這個(gè)過(guò)程非常繁瑣。有時(shí),為了達到一個(gè)小的效果,可能要繞很多路,所以就像“調參”一樣,我們傾向于使用其他內置的梯子。這就是 Python 語(yǔ)言如此受歡迎的原因,因為它擁有完善的開(kāi)源社區和無(wú)數的工具庫來(lái)實(shí)現某種目的。我們在實(shí)現關(guān)聯(lián)規則的計算時(shí),使用機器學(xué)習庫mlxtend中的apriori、fpgrowth、association_rules算法。apriori 是一種流行的算法,用于提取關(guān)聯(lián)規則學(xué)習中的頻繁項集。先驗算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的一組項。
  一、數據集
  #導入相關(guān)的庫
import pandas as pd
import mlxtend #機器學(xué)習庫
#編碼包
from mlxtend.preprocessing import TransactionEncoder
#關(guān)聯(lián)規則計算包
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
pd.set_option('max_colwidth',150) #對pandas顯示效果設置,列顯示字段長(cháng)度最長(cháng)為150個(gè)字符 #導入數據集
Order = pd.read_excel("D:/orders.xlsx")
#查看數據集的大小
Order.shape
  
  #查看數據前10行
Order.tail(5)
  
  數據集中有121253條數據,總共有四個(gè)字段。SalesOrderNumber 指訂單號;ordernumber 是指子訂單號。換行和數字表示訂單的子訂單。每個(gè)訂單號下可能有一個(gè)或多個(gè)子訂單。有子訂單,每個(gè)子訂單都是唯一的,對應一個(gè)產(chǎn)品;產(chǎn)品是指產(chǎn)品名稱(chēng)。
  二、mlxtend
  在真正開(kāi)始之前,我們先來(lái)了解一下這個(gè)mlxtend中的包是怎么使用的。mlxtend 官網(wǎng)演示了如何實(shí)現關(guān)聯(lián)規則的計算。我們來(lái)看看這三個(gè)步驟:
  第一步,導入apriori算法包;
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式;
  第三步,計算support、confidence、lift等指標,過(guò)濾掉強規則。
  第一步:導入先驗算法包
  
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式:
  得到的實(shí)際數據往往和我之前文章中的例子一樣,產(chǎn)品在訂單號后面排列成一個(gè)列表。所以 mlxtend 包接受這種數據格式。但是,它不能直接用于計算。首先,真實(shí)數據都是文本。其次,apriori算法包需要將原創(chuàng )數據轉換為商品的one-hot編碼的Pandas Dataframe格式。這是輸入數據:
  
  它使用 TransactionEncoder 包將輸入數據轉換為我們需要的形式。這是轉換后的代碼和結果:
  
  接下來(lái),它將處理后的數據格式輸入到 apriori 算法包中,以計算頻繁項集和支持度。根據預設的最小支持度0.6,排除不頻繁項集。
  
  但是,上面有一個(gè)問(wèn)題。上面返回的結果集是一個(gè)數字,其實(shí)就是df表中每一項(item)的索引,這樣比較方便后面的處理,但是如果只想用這個(gè)結果的話(huà)。為了增加可讀性,使用參數 use_colnames=True 來(lái)顯示原創(chuàng )產(chǎn)品名稱(chēng)。
  
  第三步,計算支持度、置信度和提升度
  apriori算法包中沒(méi)有演示第三步,這是為什么呢?因為apriori算法包只是關(guān)聯(lián)規則的第一步——尋找頻繁項集,當然強關(guān)聯(lián)規則是不會(huì )找到的!這一步在另一個(gè)包 association_rules 中實(shí)現。這也是很多初學(xué)者容易遇到的問(wèn)題。他們不知道每個(gè)包的用途,也不知道如何調用包。
  
  這樣,我們就可以計算出所有滿(mǎn)足最小支持度的頻繁項集的支持度、置信度和提升度。還有杠桿作用和收斂性。這兩個(gè)的作用和之前說(shuō)的lift的作用是一樣的。最好使用 KLUC 指標和 IR 不平衡率,但顯然 mlxtend 的開(kāi)發(fā)人員更喜歡使用杠桿和信念,并將其放在一邊。本案例僅演示支撐升降機的使用。
  三、Python實(shí)現第一步關(guān)聯(lián)規則代碼,生成格式數據
  以上是官網(wǎng)給出的關(guān)聯(lián)規則包的使用方法。接下來(lái)我使用自己的數據集進(jìn)行實(shí)際操作,演示如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)顯示。上面已經(jīng)給出了示例數據??梢钥闯?,數據集每個(gè)訂單有多個(gè)商品,但是是逐行的,而不是一個(gè)訂單后跟一行所有商品的形式。所以這是一種從行轉換為列的方法。這里使用了Pandas中的分組功能,要達到的效果如下:
  
  #使用DataFrame的groupby函數
group_df = Order.groupby(['SalesOrderNumber'])
  如果你會(huì )寫(xiě)SQL,你應該知道groupby必須和聚合函數一起使用,因為它是一個(gè)mapreduce過(guò)程。如果不使用聚合函數按訂單號分組,SQL Server 會(huì )報錯,Mysql 只會(huì )返回第一行數據。而這里直接使用groupby分組,不用聚合功能,這樣會(huì )不會(huì )有問(wèn)題?讓我們看一下生成的 group_df:
  group_df.head(2) #查看數據集
  
  上圖是groupby的結果(我以為是數據集),拿前2和前5看,發(fā)現返回的數據和數據集的大小不一樣(注意我們的第一次查看數據顯示121253條數據)。其實(shí)這個(gè)groupby的結果就是一個(gè)生成器,它返回一個(gè)動(dòng)態(tài)的分組過(guò)程。如果你想使用結果,你可以輸入不同的參數來(lái)得到實(shí)際的結果。所以使用這個(gè)函數來(lái)實(shí)現group_oncat并生成一個(gè)產(chǎn)品列表。
  df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_productlist.head(5)
  上面代碼的意思是生成一個(gè)新表,按SalesOrderNumber分組,然后將每個(gè)訂單組的Products聚合成一個(gè)列表;此表只有兩列,一列按 SalesOrderNumber 分組,另一列按 SalesOrderNumber 分組。將其命名為產(chǎn)品列表;最后去掉原創(chuàng )數據目標的索引,重新設置索引,最后得到df_productlist表,這樣我們就形成了算法接受的輸入數據格式。這是查看前 5 行的結果:
  
  #因為只需要頻繁項集,所以這里去掉訂單號,將productlist轉為numpy數組格式。
df_array = df_productlist["productlist"].tolist()
df_array[0:3] #取前三個(gè)查看
  
  可以看出輸入數據形成了,然后我們使用TransactionEncoder對數據進(jìn)行處理,為每個(gè)item(item)生成one-hot編碼的DataFrame格式:
  
  第二步,生成頻繁項集
  生成最終的數據格式后,將數據饋送到 apriori 算法包生成頻繁項集:
  #給定最小支持度為0.01,顯示列名
frequent_itemset = apriori(df_item,min_support=0.01,use_colnames=True)
frequent_itemset.tail(5)
  
  算法生成的結果也是DataFrame格式的頻繁項集。它將返回所有大于或等于最小支持度的結果,例如頻繁 1 項集、頻繁 2 項集和頻繁 3 項集。這里顯示的是頻繁 1 項集。
  其實(shí)為了方便我們查看和過(guò)濾,我們還可以統計頻繁項集的長(cháng)度,這樣就可以動(dòng)態(tài)索引了。
  frequent_itemset['length'] = frequent_itemset['itemsets'].apply(lambda x: len(x))
frequent_itemset[ (frequent_itemset['length'] == 2) &(frequent_itemset['support'] >= 0.01) ]
  這段代碼的意思是找到支持度大于等于0.01的頻繁2項集,也就是我們經(jīng)常關(guān)心的客戶(hù)購買(mǎi)一個(gè)產(chǎn)品的情況,他們會(huì )購買(mǎi)哪種產(chǎn)品。
  
  在完成了上面生成頻繁項集的第一步之后,下面就是挖掘關(guān)聯(lián)規則了。
  第三步,計算支持度、置信度和提升度
  association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
association.head()
  
  上表顯示,一共找到了 169034 條關(guān)聯(lián)規則可供選擇。列名是什么意思?
  antecedents:代表先購買(mǎi)的產(chǎn)品(組合),consequents代表后購買(mǎi)的產(chǎn)品(組合);
  先行支持:表示先購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  后續支持:表示后面購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  support:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)占所有訂單的支持;
  Confidence:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)與所有訂單的支持度與前期支持度的比值,即規則的置信度;
  Lift:表示置信度與一致支持的比值,即提升度,驗證了先購買(mǎi)產(chǎn)品(組合)再購買(mǎi)產(chǎn)品組合B的可能性的有效性;
  最后我們只關(guān)注買(mǎi)一買(mǎi)一,買(mǎi)二再買(mǎi)一的情況,這是最常見(jiàn)的實(shí)際場(chǎng)景需求。因此生成兩個(gè)表 df_BuyAB 和 df_BuyABC。下面是完整的代碼,如果你有相同格式的數據集,可以直接運行這個(gè)算法。
  import pandas as pd
import mlxtend
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
Allorder = pd.read_excel("D:/4_MySQL/AdventureWorksDW2012/Allorder.xlsx")
group_df = Allorder.groupby(['SalesOrderNumber'])
df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_array = df_productlist["productlist"].tolist()
trans= TransactionEncoder()
trans_array = trans.fit_transform(df_array)
df_association = pd.DataFrame(trans_array, columns=trans.columns_)
frequent_itemset = apriori(df_association,min_support=0.01,use_colnames=True)
association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
BuyAB = association[(association['antecedents'].apply(lambda x :len(x)==1)) & (association['consequents'].apply(lambda x :len(x)==1))]
BuyABC = association[(association['antecedents'].apply(lambda x :len(x)==2)) & (association['consequents'].apply(lambda x :len(x)==1))]
  文章開(kāi)頭的視頻展示了如何使用這個(gè)Python腳本實(shí)現動(dòng)態(tài)可視化,供商務(wù)人士使用,提高銷(xiāo)售業(yè)績(jì)。 查看全部

  免規則采集器列表算法(
如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))
  
  
  PowerBI商品關(guān)聯(lián)規則的可視化
  在上一篇文章中,我解釋了關(guān)聯(lián)規則的原理和實(shí)現步驟。如果你理解它,它實(shí)際上很容易理解。但說(shuō)起來(lái)容易做起來(lái)難,如何通過(guò)工具處理原創(chuàng )數據以獲得有效可靠的結果仍然存在問(wèn)題。實(shí)際的工作是讓你解決問(wèn)題,而不是僅僅談?wù)摻鉀Q方案。本文以理論為基礎,結合實(shí)際數據展示如何使用Python實(shí)現關(guān)聯(lián)規則,以及如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)展示。
  使用Python解決一個(gè)問(wèn)題時(shí),實(shí)際上并不是從0到1的一步一步構建,這個(gè)過(guò)程非常繁瑣。有時(shí),為了達到一個(gè)小的效果,可能要繞很多路,所以就像“調參”一樣,我們傾向于使用其他內置的梯子。這就是 Python 語(yǔ)言如此受歡迎的原因,因為它擁有完善的開(kāi)源社區和無(wú)數的工具庫來(lái)實(shí)現某種目的。我們在實(shí)現關(guān)聯(lián)規則的計算時(shí),使用機器學(xué)習庫mlxtend中的apriori、fpgrowth、association_rules算法。apriori 是一種流行的算法,用于提取關(guān)聯(lián)規則學(xué)習中的頻繁項集。先驗算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的一組項。
  一、數據集
  #導入相關(guān)的庫
import pandas as pd
import mlxtend #機器學(xué)習庫
#編碼包
from mlxtend.preprocessing import TransactionEncoder
#關(guān)聯(lián)規則計算包
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
pd.set_option('max_colwidth',150) #對pandas顯示效果設置,列顯示字段長(cháng)度最長(cháng)為150個(gè)字符 #導入數據集
Order = pd.read_excel("D:/orders.xlsx")
#查看數據集的大小
Order.shape
  
  #查看數據前10行
Order.tail(5)
  
  數據集中有121253條數據,總共有四個(gè)字段。SalesOrderNumber 指訂單號;ordernumber 是指子訂單號。換行和數字表示訂單的子訂單。每個(gè)訂單號下可能有一個(gè)或多個(gè)子訂單。有子訂單,每個(gè)子訂單都是唯一的,對應一個(gè)產(chǎn)品;產(chǎn)品是指產(chǎn)品名稱(chēng)。
  二、mlxtend
  在真正開(kāi)始之前,我們先來(lái)了解一下這個(gè)mlxtend中的包是怎么使用的。mlxtend 官網(wǎng)演示了如何實(shí)現關(guān)聯(lián)規則的計算。我們來(lái)看看這三個(gè)步驟:
  第一步,導入apriori算法包;
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式;
  第三步,計算support、confidence、lift等指標,過(guò)濾掉強規則。
  第一步:導入先驗算法包
  
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式:
  得到的實(shí)際數據往往和我之前文章中的例子一樣,產(chǎn)品在訂單號后面排列成一個(gè)列表。所以 mlxtend 包接受這種數據格式。但是,它不能直接用于計算。首先,真實(shí)數據都是文本。其次,apriori算法包需要將原創(chuàng )數據轉換為商品的one-hot編碼的Pandas Dataframe格式。這是輸入數據:
  
  它使用 TransactionEncoder 包將輸入數據轉換為我們需要的形式。這是轉換后的代碼和結果:
  
  接下來(lái),它將處理后的數據格式輸入到 apriori 算法包中,以計算頻繁項集和支持度。根據預設的最小支持度0.6,排除不頻繁項集。
  
  但是,上面有一個(gè)問(wèn)題。上面返回的結果集是一個(gè)數字,其實(shí)就是df表中每一項(item)的索引,這樣比較方便后面的處理,但是如果只想用這個(gè)結果的話(huà)。為了增加可讀性,使用參數 use_colnames=True 來(lái)顯示原創(chuàng )產(chǎn)品名稱(chēng)。
  
  第三步,計算支持度、置信度和提升度
  apriori算法包中沒(méi)有演示第三步,這是為什么呢?因為apriori算法包只是關(guān)聯(lián)規則的第一步——尋找頻繁項集,當然強關(guān)聯(lián)規則是不會(huì )找到的!這一步在另一個(gè)包 association_rules 中實(shí)現。這也是很多初學(xué)者容易遇到的問(wèn)題。他們不知道每個(gè)包的用途,也不知道如何調用包。
  
  這樣,我們就可以計算出所有滿(mǎn)足最小支持度的頻繁項集的支持度、置信度和提升度。還有杠桿作用和收斂性。這兩個(gè)的作用和之前說(shuō)的lift的作用是一樣的。最好使用 KLUC 指標和 IR 不平衡率,但顯然 mlxtend 的開(kāi)發(fā)人員更喜歡使用杠桿和信念,并將其放在一邊。本案例僅演示支撐升降機的使用。
  三、Python實(shí)現第一步關(guān)聯(lián)規則代碼,生成格式數據
  以上是官網(wǎng)給出的關(guān)聯(lián)規則包的使用方法。接下來(lái)我使用自己的數據集進(jìn)行實(shí)際操作,演示如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)顯示。上面已經(jīng)給出了示例數據??梢钥闯?,數據集每個(gè)訂單有多個(gè)商品,但是是逐行的,而不是一個(gè)訂單后跟一行所有商品的形式。所以這是一種從行轉換為列的方法。這里使用了Pandas中的分組功能,要達到的效果如下:
  
  #使用DataFrame的groupby函數
group_df = Order.groupby(['SalesOrderNumber'])
  如果你會(huì )寫(xiě)SQL,你應該知道groupby必須和聚合函數一起使用,因為它是一個(gè)mapreduce過(guò)程。如果不使用聚合函數按訂單號分組,SQL Server 會(huì )報錯,Mysql 只會(huì )返回第一行數據。而這里直接使用groupby分組,不用聚合功能,這樣會(huì )不會(huì )有問(wèn)題?讓我們看一下生成的 group_df:
  group_df.head(2) #查看數據集
  
  上圖是groupby的結果(我以為是數據集),拿前2和前5看,發(fā)現返回的數據和數據集的大小不一樣(注意我們的第一次查看數據顯示121253條數據)。其實(shí)這個(gè)groupby的結果就是一個(gè)生成器,它返回一個(gè)動(dòng)態(tài)的分組過(guò)程。如果你想使用結果,你可以輸入不同的參數來(lái)得到實(shí)際的結果。所以使用這個(gè)函數來(lái)實(shí)現group_oncat并生成一個(gè)產(chǎn)品列表。
  df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_productlist.head(5)
  上面代碼的意思是生成一個(gè)新表,按SalesOrderNumber分組,然后將每個(gè)訂單組的Products聚合成一個(gè)列表;此表只有兩列,一列按 SalesOrderNumber 分組,另一列按 SalesOrderNumber 分組。將其命名為產(chǎn)品列表;最后去掉原創(chuàng )數據目標的索引,重新設置索引,最后得到df_productlist表,這樣我們就形成了算法接受的輸入數據格式。這是查看前 5 行的結果:
  
  #因為只需要頻繁項集,所以這里去掉訂單號,將productlist轉為numpy數組格式。
df_array = df_productlist["productlist"].tolist()
df_array[0:3] #取前三個(gè)查看
  
  可以看出輸入數據形成了,然后我們使用TransactionEncoder對數據進(jìn)行處理,為每個(gè)item(item)生成one-hot編碼的DataFrame格式:
  
  第二步,生成頻繁項集
  生成最終的數據格式后,將數據饋送到 apriori 算法包生成頻繁項集:
  #給定最小支持度為0.01,顯示列名
frequent_itemset = apriori(df_item,min_support=0.01,use_colnames=True)
frequent_itemset.tail(5)
  
  算法生成的結果也是DataFrame格式的頻繁項集。它將返回所有大于或等于最小支持度的結果,例如頻繁 1 項集、頻繁 2 項集和頻繁 3 項集。這里顯示的是頻繁 1 項集。
  其實(shí)為了方便我們查看和過(guò)濾,我們還可以統計頻繁項集的長(cháng)度,這樣就可以動(dòng)態(tài)索引了。
  frequent_itemset['length'] = frequent_itemset['itemsets'].apply(lambda x: len(x))
frequent_itemset[ (frequent_itemset['length'] == 2) &(frequent_itemset['support'] >= 0.01) ]
  這段代碼的意思是找到支持度大于等于0.01的頻繁2項集,也就是我們經(jīng)常關(guān)心的客戶(hù)購買(mǎi)一個(gè)產(chǎn)品的情況,他們會(huì )購買(mǎi)哪種產(chǎn)品。
  
  在完成了上面生成頻繁項集的第一步之后,下面就是挖掘關(guān)聯(lián)規則了。
  第三步,計算支持度、置信度和提升度
  association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
association.head()
  
  上表顯示,一共找到了 169034 條關(guān)聯(lián)規則可供選擇。列名是什么意思?
  antecedents:代表先購買(mǎi)的產(chǎn)品(組合),consequents代表后購買(mǎi)的產(chǎn)品(組合);
  先行支持:表示先購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  后續支持:表示后面購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  support:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)占所有訂單的支持;
  Confidence:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)與所有訂單的支持度與前期支持度的比值,即規則的置信度;
  Lift:表示置信度與一致支持的比值,即提升度,驗證了先購買(mǎi)產(chǎn)品(組合)再購買(mǎi)產(chǎn)品組合B的可能性的有效性;
  最后我們只關(guān)注買(mǎi)一買(mǎi)一,買(mǎi)二再買(mǎi)一的情況,這是最常見(jiàn)的實(shí)際場(chǎng)景需求。因此生成兩個(gè)表 df_BuyAB 和 df_BuyABC。下面是完整的代碼,如果你有相同格式的數據集,可以直接運行這個(gè)算法。
  import pandas as pd
import mlxtend
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
Allorder = pd.read_excel("D:/4_MySQL/AdventureWorksDW2012/Allorder.xlsx")
group_df = Allorder.groupby(['SalesOrderNumber'])
df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_array = df_productlist["productlist"].tolist()
trans= TransactionEncoder()
trans_array = trans.fit_transform(df_array)
df_association = pd.DataFrame(trans_array, columns=trans.columns_)
frequent_itemset = apriori(df_association,min_support=0.01,use_colnames=True)
association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
BuyAB = association[(association['antecedents'].apply(lambda x :len(x)==1)) & (association['consequents'].apply(lambda x :len(x)==1))]
BuyABC = association[(association['antecedents'].apply(lambda x :len(x)==2)) & (association['consequents'].apply(lambda x :len(x)==1))]
  文章開(kāi)頭的視頻展示了如何使用這個(gè)Python腳本實(shí)現動(dòng)態(tài)可視化,供商務(wù)人士使用,提高銷(xiāo)售業(yè)績(jì)。

免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 166 次瀏覽 ? 2022-04-07 18:16 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率
)
  介紹
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值配置文件
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的項集?;贏(yíng)priori算法,我們可以從海量的用戶(hù)行為數據中找到關(guān)聯(lián)規則的頻繁項集組合,例如挖掘購物行業(yè)用戶(hù)的頻繁購買(mǎi)組合。
  定義
  支持度(support):support(A=>B) = P(A∪B),表示A和B同時(shí)出現的概率。
  confidence:confidence(A=>B)=support(A∪B)/support(A),表示A和B同時(shí)出現的概率與A出現的概率的比值。
  頻繁項集:在項集中頻繁出現且滿(mǎn)足最小支持閾值的集合,如{牛奶、面包}、{手機、手機殼}等。
  強關(guān)聯(lián)規則:滿(mǎn)足最小支持度和最小置信度的關(guān)聯(lián)規則。
  算法步驟從記錄中計算所有候選項集,并計算頻繁項集和支持。k-item 候選集是從頻繁的 1-item 集生成的,k-item 頻繁集是從 k-item 候選集計算出來(lái)的。用k-item頻繁集生成所有關(guān)聯(lián)規則,計算生成規則的置信度,過(guò)濾滿(mǎn)足最小置信度的關(guān)聯(lián)規則。先驗原理
  任何頻繁項的所有非空子集也必須是頻繁的。即在生成k-item候選集時(shí),如果候選集中的元素不在k-1項頻繁集中,則該元素一定不是頻繁集。這時(shí)候不需要計算支持度,直接去掉即可。例如,我們有一個(gè)由 0、1、2、3 組成的集合,下面是它的所有項集組合:
  
  從 1 個(gè)項集計算 k 個(gè)項集的支持度,當我們計算出 {0,1} 集在 2 個(gè)項集候選集中不頻繁時(shí),那么它的所有子集都是不頻繁的,即 2 個(gè)項集 {0 , 1, 2} 和?? { 0, 1, 3} 也是不頻繁的,它們的子集 {0, 1, 2, 3} 也是不頻繁的,我們不需要計算不頻繁集的支持度。
  
  當所有的頻繁項都找到后,需要從頻繁集中挖掘出所有的關(guān)聯(lián)規則。假設頻繁項集{0, 1, 2, 3},下圖顯示了它生成的所有關(guān)聯(lián)規則。規則,它們的子集也將是低置信度。
  
  Python 實(shí)現
  網(wǎng)上一些Apriori算法的Python實(shí)現,其實(shí)并不符合python風(fēng)格。還有一點(diǎn)就是有點(diǎn)難理解,所以實(shí)現盡量簡(jiǎn)潔。
  1. 數據集
  用一個(gè)列表來(lái)表示多條交易記錄,每條交易記錄也用一個(gè)列表來(lái)表示一個(gè)項集。
  data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
  2. 創(chuàng )建初始候選集
  這里使用frozenset不可變集合,用于后續以集合為key的支持字典的計算。
  def apriori(data_set):
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
  3. 從候選項集中選擇頻繁項集
  如下圖所示,我們需要從初始的候選項集中計算出k個(gè)頻繁項集,所以這里的封裝函數用于每次計算頻繁項集和支持度,當候選項集中的每個(gè)元素都存在于對事務(wù)記錄集進(jìn)行統計并存入字典,計算出支持度后輸出頻繁項集和支持度。
  def generate_freq_supports(data_set, item_set, min_support):
freq_set = set() # 保存頻繁項集元素
item_count = {} # 保存元素頻次,用于計算支持度
supports = {} # 保存支持度
# 如果項集中元素在數據集中則計數
for record in data_set:
for item in item_set:
if item.issubset(record):
if item not in item_count:
item_count[item] = 1
else:
item_count[item] += 1
data_len = float(len(data_set))
# 計算項集支持度
for item in item_count:
if (item_count[item] / data_len) >= min_support:
freq_set.add(item)
supports[item] = item_count[item] / data_len
return freq_set, supports
  4.生成新組合
  {1, 2, 3, 5}的頻繁項集將從初始候選集生成,后面需要生成一個(gè)新的候選集Ck。
  def generate_new_combinations(freq_set, k):
new_combinations = set() # 保存新組合
sets_len = len(freq_set) # 集合含有元素個(gè)數,用于遍歷求得組合
freq_set_list = list(freq_set) # 集合轉為列表用于索引
for i in range(sets_len):
for j in range(i + 1, sets_len):
l1 = list(freq_set_list[i])
l2 = list(freq_set_list[j])
l1.sort()
l2.sort()
# 項集若有相同的父集則合并項集
if l1[0:k-2] == l2[0:k-2]:
freq_item = freq_set_list[i] | freq_set_list[j]
new_combinations.add(freq_item)
return new_combinations
  
  5.循環(huán)生成候選集和頻繁集
  def apriori(data_set, min_support, max_len=None):
max_items = 2 # 初始項集元素個(gè)數
freq_sets = [] # 保存所有頻繁項集
supports = {} # 保存所有支持度
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
# 頻繁項1項集及其支持度
l1, support1 = generate_freq_supports(data_set, c1, min_support)
freq_sets.append(l1)
supports.update(support1)
if max_len is None:
max_len = float('inf')
while max_items and max_items = min_conf:
rules.append(rule)
return rules
  7.主程序
  if __name__ == '__main__':
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
L, support_data = apriori(data, min_support=0.5)
rules = association_rules(L, support_data, min_conf=0.7)
print('='*50)
print('frequent \t\tsupport')
print('='*50)
for i in L:
for j in i:
print(set(j), '\t\t', support_data[j])
print()
print('='*50)
print('antecedent consequent \t\tconf')
print('='*50)
rules = association_rules(L, support_data, min_conf=0.7)
for _rule in rules:
print('{} => {}\t\t{}'.format(set(_rule[0]), set(_rule[1]), _rule[2]))
  
  Mlxtend 實(shí)現
  Mlxtend 是用于日常數據科學(xué)任務(wù)的 Python 庫。這個(gè)庫是google在搜索Apriori算法信息時(shí)給出的搜索結果之一。通過(guò)庫的文檔可以發(fā)現,庫的frequent_patterns模塊實(shí)現了Apriori算法,挖掘關(guān)聯(lián)規則。有興趣的可以自行搜索相關(guān)文檔。當然,如果自己實(shí)現的話(huà),整個(gè)算法的思路會(huì )更加清晰。具體實(shí)現如下:
  import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, min_threshold=0.7)
  通過(guò)TransactionEncoder轉換成正確的數據格式,然后使用apriori函數生成頻繁項集,最后使用association_rules生成關(guān)聯(lián)規則??梢钥闯?,編碼后的數據實(shí)際上是一個(gè)特征矩陣,每一列對應一個(gè)項集元素。
  
  
   查看全部

  免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率
)
  介紹
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值配置文件
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的項集?;贏(yíng)priori算法,我們可以從海量的用戶(hù)行為數據中找到關(guān)聯(lián)規則的頻繁項集組合,例如挖掘購物行業(yè)用戶(hù)的頻繁購買(mǎi)組合。
  定義
  支持度(support):support(A=>B) = P(A∪B),表示A和B同時(shí)出現的概率。
  confidence:confidence(A=>B)=support(A∪B)/support(A),表示A和B同時(shí)出現的概率與A出現的概率的比值。
  頻繁項集:在項集中頻繁出現且滿(mǎn)足最小支持閾值的集合,如{牛奶、面包}、{手機、手機殼}等。
  強關(guān)聯(lián)規則:滿(mǎn)足最小支持度和最小置信度的關(guān)聯(lián)規則。
  算法步驟從記錄中計算所有候選項集,并計算頻繁項集和支持。k-item 候選集是從頻繁的 1-item 集生成的,k-item 頻繁集是從 k-item 候選集計算出來(lái)的。用k-item頻繁集生成所有關(guān)聯(lián)規則,計算生成規則的置信度,過(guò)濾滿(mǎn)足最小置信度的關(guān)聯(lián)規則。先驗原理
  任何頻繁項的所有非空子集也必須是頻繁的。即在生成k-item候選集時(shí),如果候選集中的元素不在k-1項頻繁集中,則該元素一定不是頻繁集。這時(shí)候不需要計算支持度,直接去掉即可。例如,我們有一個(gè)由 0、1、2、3 組成的集合,下面是它的所有項集組合:
  
  從 1 個(gè)項集計算 k 個(gè)項集的支持度,當我們計算出 {0,1} 集在 2 個(gè)項集候選集中不頻繁時(shí),那么它的所有子集都是不頻繁的,即 2 個(gè)項集 {0 , 1, 2} 和?? { 0, 1, 3} 也是不頻繁的,它們的子集 {0, 1, 2, 3} 也是不頻繁的,我們不需要計算不頻繁集的支持度。
  
  當所有的頻繁項都找到后,需要從頻繁集中挖掘出所有的關(guān)聯(lián)規則。假設頻繁項集{0, 1, 2, 3},下圖顯示了它生成的所有關(guān)聯(lián)規則。規則,它們的子集也將是低置信度。
  
  Python 實(shí)現
  網(wǎng)上一些Apriori算法的Python實(shí)現,其實(shí)并不符合python風(fēng)格。還有一點(diǎn)就是有點(diǎn)難理解,所以實(shí)現盡量簡(jiǎn)潔。
  1. 數據集
  用一個(gè)列表來(lái)表示多條交易記錄,每條交易記錄也用一個(gè)列表來(lái)表示一個(gè)項集。
  data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
  2. 創(chuàng )建初始候選集
  這里使用frozenset不可變集合,用于后續以集合為key的支持字典的計算。
  def apriori(data_set):
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
  3. 從候選項集中選擇頻繁項集
  如下圖所示,我們需要從初始的候選項集中計算出k個(gè)頻繁項集,所以這里的封裝函數用于每次計算頻繁項集和支持度,當候選項集中的每個(gè)元素都存在于對事務(wù)記錄集進(jìn)行統計并存入字典,計算出支持度后輸出頻繁項集和支持度。
  def generate_freq_supports(data_set, item_set, min_support):
freq_set = set() # 保存頻繁項集元素
item_count = {} # 保存元素頻次,用于計算支持度
supports = {} # 保存支持度
# 如果項集中元素在數據集中則計數
for record in data_set:
for item in item_set:
if item.issubset(record):
if item not in item_count:
item_count[item] = 1
else:
item_count[item] += 1
data_len = float(len(data_set))
# 計算項集支持度
for item in item_count:
if (item_count[item] / data_len) >= min_support:
freq_set.add(item)
supports[item] = item_count[item] / data_len
return freq_set, supports
  4.生成新組合
  {1, 2, 3, 5}的頻繁項集將從初始候選集生成,后面需要生成一個(gè)新的候選集Ck。
  def generate_new_combinations(freq_set, k):
new_combinations = set() # 保存新組合
sets_len = len(freq_set) # 集合含有元素個(gè)數,用于遍歷求得組合
freq_set_list = list(freq_set) # 集合轉為列表用于索引
for i in range(sets_len):
for j in range(i + 1, sets_len):
l1 = list(freq_set_list[i])
l2 = list(freq_set_list[j])
l1.sort()
l2.sort()
# 項集若有相同的父集則合并項集
if l1[0:k-2] == l2[0:k-2]:
freq_item = freq_set_list[i] | freq_set_list[j]
new_combinations.add(freq_item)
return new_combinations
  
  5.循環(huán)生成候選集和頻繁集
  def apriori(data_set, min_support, max_len=None):
max_items = 2 # 初始項集元素個(gè)數
freq_sets = [] # 保存所有頻繁項集
supports = {} # 保存所有支持度
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
# 頻繁項1項集及其支持度
l1, support1 = generate_freq_supports(data_set, c1, min_support)
freq_sets.append(l1)
supports.update(support1)
if max_len is None:
max_len = float('inf')
while max_items and max_items = min_conf:
rules.append(rule)
return rules
  7.主程序
  if __name__ == '__main__':
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
L, support_data = apriori(data, min_support=0.5)
rules = association_rules(L, support_data, min_conf=0.7)
print('='*50)
print('frequent \t\tsupport')
print('='*50)
for i in L:
for j in i:
print(set(j), '\t\t', support_data[j])
print()
print('='*50)
print('antecedent consequent \t\tconf')
print('='*50)
rules = association_rules(L, support_data, min_conf=0.7)
for _rule in rules:
print('{} => {}\t\t{}'.format(set(_rule[0]), set(_rule[1]), _rule[2]))
  
  Mlxtend 實(shí)現
  Mlxtend 是用于日常數據科學(xué)任務(wù)的 Python 庫。這個(gè)庫是google在搜索Apriori算法信息時(shí)給出的搜索結果之一。通過(guò)庫的文檔可以發(fā)現,庫的frequent_patterns模塊實(shí)現了Apriori算法,挖掘關(guān)聯(lián)規則。有興趣的可以自行搜索相關(guān)文檔。當然,如果自己實(shí)現的話(huà),整個(gè)算法的思路會(huì )更加清晰。具體實(shí)現如下:
  import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, min_threshold=0.7)
  通過(guò)TransactionEncoder轉換成正確的數據格式,然后使用apriori函數生成頻繁項集,最后使用association_rules生成關(guān)聯(lián)規則??梢钥闯?,編碼后的數據實(shí)際上是一個(gè)特征矩陣,每一列對應一個(gè)項集元素。
  
  
  

免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2022-04-05 01:04 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表
)
  2
  同時(shí)可以觀(guān)察到需要采集的字段顯示在列表頁(yè)頁(yè)面
  
  第三步:
  那么采集器中的起始URL就可以使用批量URL的操作了:
  
  打開(kāi)列表頁(yè)URL源代碼,獲取源代碼中提取內容頁(yè)URL的字符串:
  
  同時(shí)可以看到需要采集的字段也存在于列表頁(yè)的源碼中(在列表頁(yè)的源碼中可以看到td位置對應的值需要采集的字段),則可以直接進(jìn)入列表頁(yè)采集
  
  用組合標簽獲取列表頁(yè)中所有需要的數據,然后在內容頁(yè)的采集規則中細分多個(gè)標簽。
  第四步:
  處理組合標簽,使組合標簽中的數據只
  數據
  ,以方便分割標簽的提取。
  
  然后在細分標簽中使用組合標簽,根據td的個(gè)數提取出來(lái):比如廠(chǎng)家名稱(chēng)(第一個(gè)td中的值)
  
  第五步:
  例如電話(huà)標簽(這是第三個(gè) td 中的值)
  
  
  每周一采集數據和采集規則的時(shí)間為2019年10月30日文件發(fā)布后5個(gè)工作日內。采集該規則涉及商業(yè)版功能,建議用戶(hù)登錄商業(yè)版使用該規則。
  數據采集??資格:優(yōu)采云采集器/優(yōu)采云Browser/Touch Genius商業(yè)版軟件用戶(hù)(服務(wù)期內),如果您不是商業(yè)用戶(hù)或已過(guò)了服務(wù)期,而且如果您想參加活動(dòng),您可以購買(mǎi)新軟件或升級更新費用,以便您參加活動(dòng)!告訴我,雙11優(yōu)采云活動(dòng)折扣很大!活動(dòng)將于11月1日開(kāi)始,詳情請訪(fǎng)問(wèn)官網(wǎng):查看。
  如何獲取數據:
  第一步:掃碼添加優(yōu)采云運營(yíng)微信公眾號,優(yōu)采云運營(yíng)助手會(huì )拉你進(jìn)入活動(dòng)群。
  
  第二步:進(jìn)群后,添加數據咨詢(xún)客服。雅的微信賬號在服務(wù)期內經(jīng)客服驗證為企業(yè)用戶(hù)即可獲取。
  好了,本期《每周一數數》就到此為止。如果還想獲取更多的數據資源和采集器規則,可以在文章下方或者公眾號后臺留言。小菜會(huì )根據大家的意見(jiàn),在下一期中挑選出數據。哦主題!
   查看全部

  免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表
)
  2
  同時(shí)可以觀(guān)察到需要采集的字段顯示在列表頁(yè)頁(yè)面
  
  第三步:
  那么采集器中的起始URL就可以使用批量URL的操作了:
  
  打開(kāi)列表頁(yè)URL源代碼,獲取源代碼中提取內容頁(yè)URL的字符串:
  
  同時(shí)可以看到需要采集的字段也存在于列表頁(yè)的源碼中(在列表頁(yè)的源碼中可以看到td位置對應的值需要采集的字段),則可以直接進(jìn)入列表頁(yè)采集
  
  用組合標簽獲取列表頁(yè)中所有需要的數據,然后在內容頁(yè)的采集規則中細分多個(gè)標簽。
  第四步:
  處理組合標簽,使組合標簽中的數據只
  數據
  ,以方便分割標簽的提取。
  
  然后在細分標簽中使用組合標簽,根據td的個(gè)數提取出來(lái):比如廠(chǎng)家名稱(chēng)(第一個(gè)td中的值)
  
  第五步:
  例如電話(huà)標簽(這是第三個(gè) td 中的值)
  
  
  每周一采集數據和采集規則的時(shí)間為2019年10月30日文件發(fā)布后5個(gè)工作日內。采集該規則涉及商業(yè)版功能,建議用戶(hù)登錄商業(yè)版使用該規則。
  數據采集??資格:優(yōu)采云采集器/優(yōu)采云Browser/Touch Genius商業(yè)版軟件用戶(hù)(服務(wù)期內),如果您不是商業(yè)用戶(hù)或已過(guò)了服務(wù)期,而且如果您想參加活動(dòng),您可以購買(mǎi)新軟件或升級更新費用,以便您參加活動(dòng)!告訴我,雙11優(yōu)采云活動(dòng)折扣很大!活動(dòng)將于11月1日開(kāi)始,詳情請訪(fǎng)問(wèn)官網(wǎng):查看。
  如何獲取數據:
  第一步:掃碼添加優(yōu)采云運營(yíng)微信公眾號,優(yōu)采云運營(yíng)助手會(huì )拉你進(jìn)入活動(dòng)群。
  
  第二步:進(jìn)群后,添加數據咨詢(xún)客服。雅的微信賬號在服務(wù)期內經(jīng)客服驗證為企業(yè)用戶(hù)即可獲取。
  好了,本期《每周一數數》就到此為止。如果還想獲取更多的數據資源和采集器規則,可以在文章下方或者公眾號后臺留言。小菜會(huì )根據大家的意見(jiàn),在下一期中挑選出數據。哦主題!
  

免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 83 次瀏覽 ? 2022-04-04 23:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)
  現在越來(lái)越多的網(wǎng)站使用了一個(gè)叫做優(yōu)采云采集器的采集軟件,在采集之后發(fā)布操作或多或少會(huì )遇到一系列問(wèn)題,但是客服只為付費客戶(hù)服務(wù),找人處理也不便宜。這個(gè)時(shí)候你是不是很頭疼?今天給大家分享一下上傳圖片時(shí)提示421 Too many connections (10) from this IP)的終極解決方案。
  優(yōu)采云采集上傳圖片時(shí)提示421
  在采集之后的發(fā)布操作中,或多或少會(huì )遇到提示421 Too many connections (10) from this IP 上傳圖片時(shí),
  
  別著(zhù)急,這只是一道小菜,下面教你如何對付他。
  421提示解決方法:重啟FTP
  這個(gè)421提示往往是ftp中的一個(gè)小異常導致上傳文件失敗。我們可以選擇重啟ftp軟件嘗試解決21提示問(wèn)題。以下是一些常見(jiàn)的解決方案:
  1、如果是從寶塔安裝的,那么進(jìn)入寶塔面板后,找到軟件管理界面,會(huì )有很多免費和付費的插件,只需要重啟ftp就可以完美解決這個(gè)問(wèn)題;
  2、如果上面的重啟方法對你來(lái)說(shuō)有難度的話(huà),除了上面的重啟方法,還有一種更簡(jiǎn)單的。在寶塔面板的“首頁(yè)”上尋找軟件模塊,里面也會(huì )有ftp。,如下所示
  
  按照上圖從左到右搜索,方法很簡(jiǎn)單,找到他點(diǎn)擊他,最后點(diǎn)擊重啟按鈕,然后去優(yōu)采云發(fā)布試試看。 查看全部

  免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)
  現在越來(lái)越多的網(wǎng)站使用了一個(gè)叫做優(yōu)采云采集器的采集軟件,在采集之后發(fā)布操作或多或少會(huì )遇到一系列問(wèn)題,但是客服只為付費客戶(hù)服務(wù),找人處理也不便宜。這個(gè)時(shí)候你是不是很頭疼?今天給大家分享一下上傳圖片時(shí)提示421 Too many connections (10) from this IP)的終極解決方案。
  優(yōu)采云采集上傳圖片時(shí)提示421
  在采集之后的發(fā)布操作中,或多或少會(huì )遇到提示421 Too many connections (10) from this IP 上傳圖片時(shí),
  
  別著(zhù)急,這只是一道小菜,下面教你如何對付他。
  421提示解決方法:重啟FTP
  這個(gè)421提示往往是ftp中的一個(gè)小異常導致上傳文件失敗。我們可以選擇重啟ftp軟件嘗試解決21提示問(wèn)題。以下是一些常見(jiàn)的解決方案:
  1、如果是從寶塔安裝的,那么進(jìn)入寶塔面板后,找到軟件管理界面,會(huì )有很多免費和付費的插件,只需要重啟ftp就可以完美解決這個(gè)問(wèn)題;
  2、如果上面的重啟方法對你來(lái)說(shuō)有難度的話(huà),除了上面的重啟方法,還有一種更簡(jiǎn)單的。在寶塔面板的“首頁(yè)”上尋找軟件模塊,里面也會(huì )有ftp。,如下所示
  
  按照上圖從左到右搜索,方法很簡(jiǎn)單,找到他點(diǎn)擊他,最后點(diǎn)擊重啟按鈕,然后去優(yōu)采云發(fā)布試試看。

免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 119 次瀏覽 ? 2022-04-03 08:08 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)
  免規則采集器列表算法修改技術(shù)能力強,我見(jiàn)過(guò)sparkstreaming只用了一小時(shí)以?xún)热缓缶湍芊?wù)百萬(wàn)用戶(hù)那種,比我見(jiàn)過(guò)的ceo數量多很多.技術(shù)修煉過(guò)的人,并且已經(jīng)利用好技術(shù)來(lái)服務(wù)用戶(hù)的,
  ,傳送門(mén):
  先看能力,再看經(jīng)驗。北京有哪些有潛力的創(chuàng )業(yè)團隊?首頁(yè)-avazu-com歡迎試水。
  知乎有討論一個(gè)私人問(wèn)題:如何評價(jià)本人從頭至尾設計的產(chǎn)品-不需要下載,只要點(diǎn)開(kāi)就可以讓每個(gè)人都可以免費使用的正版操作系統-知乎?-產(chǎn)品,你可以看看創(chuàng )業(yè)就是磨練技能和提高忍耐力的過(guò)程,你再看看這問(wèn)題。
  應該隨便問(wèn)就能有人答吧。
  ?;丶铱纯?!
  上網(wǎng)應用、咨詢(xún)產(chǎn)品領(lǐng)域用戶(hù)粘性不高,體量太小,前景一般,除非說(shuō)領(lǐng)域內先樹(shù)立一個(gè)標桿品牌,然后逐步做好口碑,有先發(fā)優(yōu)勢的優(yōu)勢,畢竟5g電信網(wǎng)絡(luò )普及之后,本地服務(wù)業(yè)會(huì )出現爆發(fā)性增長(cháng),不僅僅是簡(jiǎn)單的軟件或互聯(lián)網(wǎng)業(yè)務(wù)提供。
  創(chuàng )業(yè)就是改變一種環(huán)境,至于怎么改變,怎么適應環(huán)境,完全看個(gè)人能力。有人說(shuō)電視臺會(huì )逐步被自動(dòng)機取代,因為傳統電視臺太重了,等社交媒體普及,整個(gè)電視臺都已經(jīng)不復存在了。微信和小程序也正在往服務(wù)業(yè)方向做布局,一個(gè)互聯(lián)網(wǎng)只是一個(gè)加法關(guān)系,你就是如何成為未來(lái)的社會(huì )中心。 查看全部

  免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)
  免規則采集器列表算法修改技術(shù)能力強,我見(jiàn)過(guò)sparkstreaming只用了一小時(shí)以?xún)热缓缶湍芊?wù)百萬(wàn)用戶(hù)那種,比我見(jiàn)過(guò)的ceo數量多很多.技術(shù)修煉過(guò)的人,并且已經(jīng)利用好技術(shù)來(lái)服務(wù)用戶(hù)的,
  ,傳送門(mén):
  先看能力,再看經(jīng)驗。北京有哪些有潛力的創(chuàng )業(yè)團隊?首頁(yè)-avazu-com歡迎試水。
  知乎有討論一個(gè)私人問(wèn)題:如何評價(jià)本人從頭至尾設計的產(chǎn)品-不需要下載,只要點(diǎn)開(kāi)就可以讓每個(gè)人都可以免費使用的正版操作系統-知乎?-產(chǎn)品,你可以看看創(chuàng )業(yè)就是磨練技能和提高忍耐力的過(guò)程,你再看看這問(wèn)題。
  應該隨便問(wèn)就能有人答吧。
  ?;丶铱纯?!
  上網(wǎng)應用、咨詢(xún)產(chǎn)品領(lǐng)域用戶(hù)粘性不高,體量太小,前景一般,除非說(shuō)領(lǐng)域內先樹(shù)立一個(gè)標桿品牌,然后逐步做好口碑,有先發(fā)優(yōu)勢的優(yōu)勢,畢竟5g電信網(wǎng)絡(luò )普及之后,本地服務(wù)業(yè)會(huì )出現爆發(fā)性增長(cháng),不僅僅是簡(jiǎn)單的軟件或互聯(lián)網(wǎng)業(yè)務(wù)提供。
  創(chuàng )業(yè)就是改變一種環(huán)境,至于怎么改變,怎么適應環(huán)境,完全看個(gè)人能力。有人說(shuō)電視臺會(huì )逐步被自動(dòng)機取代,因為傳統電視臺太重了,等社交媒體普及,整個(gè)電視臺都已經(jīng)不復存在了。微信和小程序也正在往服務(wù)業(yè)方向做布局,一個(gè)互聯(lián)網(wǎng)只是一個(gè)加法關(guān)系,你就是如何成為未來(lái)的社會(huì )中心。

免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 140 次瀏覽 ? 2022-04-02 19:25 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器
)
  軟件介紹:上一頁(yè)優(yōu)采云采集cms全站大移V1.0 免費版最新無(wú)限破解版測試可用下一頁(yè)Pakku(bilibili彈幕過(guò)濾瀏覽器)V 8.10.1 Chrome版最新無(wú)限破解版測試可用
  本軟件由啟道奇為您精心采集,轉載自網(wǎng)絡(luò )。收錄軟件為正式版,軟件著(zhù)作權歸軟件作者所有。以下是其具體內容:
  優(yōu)采云采集器是新一代智能網(wǎng)頁(yè)采集工具,智能分析,可視化界面,一鍵式采集無(wú)需編程,支持自動(dòng)生成采集可以采集99% 的互聯(lián)網(wǎng)網(wǎng)站 的腳本。該軟件簡(jiǎn)單易學(xué)。通過(guò)智能算法+可視化界面,你可以抓取任何你想要的數據。采集網(wǎng)頁(yè)上的數據只需點(diǎn)擊一下即可。
  
  【軟件特色】
  一鍵提取數據
  簡(jiǎn)單易學(xué),通過(guò)可視化界面,鼠標點(diǎn)擊即可抓取數據
  快速高效
  內置一套高速瀏覽器內核,配合HTTP引擎模式,實(shí)現快速采集數據
  適用于各種網(wǎng)站
  能夠采集99%的互聯(lián)網(wǎng)網(wǎng)站,包括單頁(yè)應用Ajax加載等動(dòng)態(tài)類(lèi)型網(wǎng)站
  【特征】
  向導模式
  使用簡(jiǎn)單,通過(guò)鼠標點(diǎn)擊輕松自動(dòng)生成
  定期運行的腳本
  無(wú)需人工即可按計劃運行
  原裝高速核心
  自研瀏覽器內核速度快,遠超對手
  智能識別
  智能識別網(wǎng)頁(yè)中的列表和表單結構(多選框下拉列表等)
  廣告攔截
  自定義廣告攔截模塊,兼容AdblockPlus語(yǔ)法,可添加自定義規則
  各種數據導出
  支持Txt、Excel、MySQL、SQLServer、SQlite、Access、網(wǎng)站等。
  
  【手動(dòng)的】
  輸入 采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  將數據導出到表、數據庫、網(wǎng)站 等。
  運行任務(wù),將采集中的數據導出到Csv、Excel等各種數據庫,支持api導出。
  
  【常見(jiàn)問(wèn)題】
  Q:如何過(guò)濾列表中的前N個(gè)數據?
  1、有時(shí)候我們需要對采集收到的列表進(jìn)行過(guò)濾,比如過(guò)濾掉第一組數據(當采集表時(shí),過(guò)濾掉表列名)
  2、點(diǎn)擊列表模式菜單設置列表xpath
  Q:如何抓包獲取cookies并手動(dòng)設置?
  1、首先,使用谷歌瀏覽器打開(kāi)網(wǎng)站為采集,并登錄。
  2、 然后按F12,會(huì )出現開(kāi)發(fā)者工具,選擇Network
  3、然后按 F5 刷新下一頁(yè)并選擇其中一個(gè)請求。
  4、復制完成后,在優(yōu)采云采集器中,編輯任務(wù),進(jìn)入第三步,指定HTTP Header。
  【更新日志】
  V2.1.8.0
  1、添加插件功能
  2、添加導出txt(一個(gè)文件保存為一個(gè)文件)
  3、多值連接器支持換行
  4、修改數據處理的文本圖(支持查找和替換)
  5、修復了登錄時(shí)的 DNS 問(wèn)題
  6、修復圖片下載問(wèn)題
  7、修復一些json問(wèn)題
  【下載鏈接】
  優(yōu)采云采集器 V2.1.8.0 正式版 查看全部

  免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器
)
  軟件介紹:上一頁(yè)優(yōu)采云采集cms全站大移V1.0 免費版最新無(wú)限破解版測試可用下一頁(yè)Pakku(bilibili彈幕過(guò)濾瀏覽器)V 8.10.1 Chrome版最新無(wú)限破解版測試可用
  本軟件由啟道奇為您精心采集,轉載自網(wǎng)絡(luò )。收錄軟件為正式版,軟件著(zhù)作權歸軟件作者所有。以下是其具體內容:
  優(yōu)采云采集器是新一代智能網(wǎng)頁(yè)采集工具,智能分析,可視化界面,一鍵式采集無(wú)需編程,支持自動(dòng)生成采集可以采集99% 的互聯(lián)網(wǎng)網(wǎng)站 的腳本。該軟件簡(jiǎn)單易學(xué)。通過(guò)智能算法+可視化界面,你可以抓取任何你想要的數據。采集網(wǎng)頁(yè)上的數據只需點(diǎn)擊一下即可。
  
  【軟件特色】
  一鍵提取數據
  簡(jiǎn)單易學(xué),通過(guò)可視化界面,鼠標點(diǎn)擊即可抓取數據
  快速高效
  內置一套高速瀏覽器內核,配合HTTP引擎模式,實(shí)現快速采集數據
  適用于各種網(wǎng)站
  能夠采集99%的互聯(lián)網(wǎng)網(wǎng)站,包括單頁(yè)應用Ajax加載等動(dòng)態(tài)類(lèi)型網(wǎng)站
  【特征】
  向導模式
  使用簡(jiǎn)單,通過(guò)鼠標點(diǎn)擊輕松自動(dòng)生成
  定期運行的腳本
  無(wú)需人工即可按計劃運行
  原裝高速核心
  自研瀏覽器內核速度快,遠超對手
  智能識別
  智能識別網(wǎng)頁(yè)中的列表和表單結構(多選框下拉列表等)
  廣告攔截
  自定義廣告攔截模塊,兼容AdblockPlus語(yǔ)法,可添加自定義規則
  各種數據導出
  支持Txt、Excel、MySQL、SQLServer、SQlite、Access、網(wǎng)站等。
  
  【手動(dòng)的】
  輸入 采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  將數據導出到表、數據庫、網(wǎng)站 等。
  運行任務(wù),將采集中的數據導出到Csv、Excel等各種數據庫,支持api導出。
  
  【常見(jiàn)問(wèn)題】
  Q:如何過(guò)濾列表中的前N個(gè)數據?
  1、有時(shí)候我們需要對采集收到的列表進(jìn)行過(guò)濾,比如過(guò)濾掉第一組數據(當采集表時(shí),過(guò)濾掉表列名)
  2、點(diǎn)擊列表模式菜單設置列表xpath
  Q:如何抓包獲取cookies并手動(dòng)設置?
  1、首先,使用谷歌瀏覽器打開(kāi)網(wǎng)站為采集,并登錄。
  2、 然后按F12,會(huì )出現開(kāi)發(fā)者工具,選擇Network
  3、然后按 F5 刷新下一頁(yè)并選擇其中一個(gè)請求。
  4、復制完成后,在優(yōu)采云采集器中,編輯任務(wù),進(jìn)入第三步,指定HTTP Header。
  【更新日志】
  V2.1.8.0
  1、添加插件功能
  2、添加導出txt(一個(gè)文件保存為一個(gè)文件)
  3、多值連接器支持換行
  4、修改數據處理的文本圖(支持查找和替換)
  5、修復了登錄時(shí)的 DNS 問(wèn)題
  6、修復圖片下載問(wèn)題
  7、修復一些json問(wèn)題
  【下載鏈接】
  優(yōu)采云采集器 V2.1.8.0 正式版

免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 187 次瀏覽 ? 2022-04-02 19:24 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據
)
  指示
  一:輸入采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  二:智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  三:導出數據到表、數據庫、網(wǎng)站等
  運行任務(wù)將采集中的數據導出到表、網(wǎng)站和各種數據庫中,并支持api導出。
  計算機系統要求
  它可以支持Windows XP以上的系統。
  .Net 4.0 框架,下載地址
  安裝步驟
  第一步:打開(kāi)下載的安裝包,直接選擇運行。
  第二步:收到相關(guān)條款后,運行安裝程序PashanhuV2Setup.exe。安裝
  
  第3步:然后繼續單擊下一步直到完成。
  第四步:安裝完成后可以看到優(yōu)采云采集器V2的主界面
  
  常問(wèn)問(wèn)題
  1、如何采集移動(dòng)網(wǎng)頁(yè)數據?
  一般情況下,一個(gè)網(wǎng)站有電腦版網(wǎng)頁(yè)和手機版網(wǎng)頁(yè)。如果電腦版(PC)網(wǎng)頁(yè)的反爬蟲(chóng)非常嚴格,我們可以嘗試爬取手機網(wǎng)頁(yè)。
 ?、龠x擇新的編輯任務(wù);
 ?、谠谛陆ǖ摹揪庉嬋蝿?wù)】中,選擇【第三步,設置】;
  
 ?、?將UA(瀏覽器ID)設置為“手機”。
  2、如何手動(dòng)選擇列表數據(自動(dòng)識別失敗時(shí))
  在采集列表頁(yè)面,如果列表自動(dòng)識別失敗,或者識別出的數據不是我們想到的數據,那么我們需要手動(dòng)選擇列表數據。
  如何手動(dòng)選擇列表數據?
 ?、冱c(diǎn)擊【全部清除】,清除已有字段。
  
 ?、邳c(diǎn)擊菜單欄上的【列表數據】,選擇【選擇列表】
  
 ?、?用鼠標單擊列表中的任意元素。
  
 ?、?單擊列表中另一行的相似元素。
  
  一般情況下,此時(shí)采集器會(huì )自動(dòng)枚舉列表中的所有字段。我們可以對結果進(jìn)行一些修改。
  如果沒(méi)有列出字段,我們需要手動(dòng)添加字段。單擊[添加字段],然后單擊列表中的元素數據。
  3、采集文章鼠標不能全選怎么辦?
  一般情況下,在優(yōu)采云采集器中,點(diǎn)擊鼠標選擇要抓取的內容。但是,在某些情況下,比如要抓取一個(gè)文章的完整內容時(shí),當內容較長(cháng)時(shí),鼠標有時(shí)會(huì )難以定位。
 ?、傥覀兛梢酝ㄟ^(guò)在網(wǎng)頁(yè)上右擊選擇【Inspect Element】來(lái)定位內容。
  
 ?、?點(diǎn)擊【向上】按鈕,展開(kāi)選中的內容。
  
 ?、?展開(kāi)到我們全部?jì)热莸臅r(shí)候,全選【XPath】,然后復制。
  
 ?、苄薷淖侄蔚腦Path,粘貼剛才復制的XPath,確認。
  
 ?、?最后修改value屬性,如果要HMTL,使用InnerHTML或OuterHTML。
   查看全部

  免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據
)
  指示
  一:輸入采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  二:智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  三:導出數據到表、數據庫、網(wǎng)站等
  運行任務(wù)將采集中的數據導出到表、網(wǎng)站和各種數據庫中,并支持api導出。
  計算機系統要求
  它可以支持Windows XP以上的系統。
  .Net 4.0 框架,下載地址
  安裝步驟
  第一步:打開(kāi)下載的安裝包,直接選擇運行。
  第二步:收到相關(guān)條款后,運行安裝程序PashanhuV2Setup.exe。安裝
  
  第3步:然后繼續單擊下一步直到完成。
  第四步:安裝完成后可以看到優(yōu)采云采集器V2的主界面
  
  常問(wèn)問(wèn)題
  1、如何采集移動(dòng)網(wǎng)頁(yè)數據?
  一般情況下,一個(gè)網(wǎng)站有電腦版網(wǎng)頁(yè)和手機版網(wǎng)頁(yè)。如果電腦版(PC)網(wǎng)頁(yè)的反爬蟲(chóng)非常嚴格,我們可以嘗試爬取手機網(wǎng)頁(yè)。
 ?、龠x擇新的編輯任務(wù);
 ?、谠谛陆ǖ摹揪庉嬋蝿?wù)】中,選擇【第三步,設置】;
  
 ?、?將UA(瀏覽器ID)設置為“手機”。
  2、如何手動(dòng)選擇列表數據(自動(dòng)識別失敗時(shí))
  在采集列表頁(yè)面,如果列表自動(dòng)識別失敗,或者識別出的數據不是我們想到的數據,那么我們需要手動(dòng)選擇列表數據。
  如何手動(dòng)選擇列表數據?
 ?、冱c(diǎn)擊【全部清除】,清除已有字段。
  
 ?、邳c(diǎn)擊菜單欄上的【列表數據】,選擇【選擇列表】
  
 ?、?用鼠標單擊列表中的任意元素。
  
 ?、?單擊列表中另一行的相似元素。
  
  一般情況下,此時(shí)采集器會(huì )自動(dòng)枚舉列表中的所有字段。我們可以對結果進(jìn)行一些修改。
  如果沒(méi)有列出字段,我們需要手動(dòng)添加字段。單擊[添加字段],然后單擊列表中的元素數據。
  3、采集文章鼠標不能全選怎么辦?
  一般情況下,在優(yōu)采云采集器中,點(diǎn)擊鼠標選擇要抓取的內容。但是,在某些情況下,比如要抓取一個(gè)文章的完整內容時(shí),當內容較長(cháng)時(shí),鼠標有時(shí)會(huì )難以定位。
 ?、傥覀兛梢酝ㄟ^(guò)在網(wǎng)頁(yè)上右擊選擇【Inspect Element】來(lái)定位內容。
  
 ?、?點(diǎn)擊【向上】按鈕,展開(kāi)選中的內容。
  
 ?、?展開(kāi)到我們全部?jì)热莸臅r(shí)候,全選【XPath】,然后復制。
  
 ?、苄薷淖侄蔚腦Path,粘貼剛才復制的XPath,確認。
  
 ?、?最后修改value屬性,如果要HMTL,使用InnerHTML或OuterHTML。
  

免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 352 次瀏覽 ? 2022-04-01 03:13 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)
  WordPress采集,作為網(wǎng)站 每日更新的工具。解決了網(wǎng)站日常維護更新的麻煩問(wèn)題,特別是全網(wǎng)批量自動(dòng)采集,讓網(wǎng)站的內容再也不用擔心,有是 文章 源源不斷的 網(wǎng)站 帖子。仔細閱讀下面的文字。WordPress采集的重點(diǎn)都在本文的四張圖里。忽略文字,直接看圖。[圖一,永遠免費,WordPress采集]
  
  WordPress采集要求采集源站是不斷更新的能力,是對優(yōu)質(zhì)內容的選擇性選擇采集。一方面可以經(jīng)常采集,另一方面這樣的站信息及時(shí),可以保證網(wǎng)站采集內容的新鮮度。采集方法有很多,唯一的目標就是要有質(zhì)量保證。對于大部分小站長(cháng)來(lái)說(shuō),只能轉化流量,這也是我們網(wǎng)站建設的終極目標?!緢D二,功能豐富,WordPress采集】
  
  搜索引擎優(yōu)化是利用算法技術(shù)手段,那么網(wǎng)站應該有針對性地調整網(wǎng)站的結構,合理安排關(guān)鍵詞,優(yōu)化外部資源,從而提高關(guān)鍵詞 在搜索引擎的 關(guān)鍵詞 排名中。搜索引擎優(yōu)化可以精準的將潛在用戶(hù)接入到網(wǎng)站,從而不斷獲得流量轉化,讓網(wǎng)站長(cháng)期輸出資源?!緢D3,自動(dòng)優(yōu)化,WordPress采集】
  
  有人說(shuō)采集的內容對搜索引擎不是很友好,也不容易得到排名。這不一定是真的。WordPress采集通過(guò)精準采集,以及AI智能處理文章,對搜索引擎更加友好。對于大多數網(wǎng)站來(lái)說(shuō),采集 內容肯定不如手寫(xiě)的原創(chuàng ) 內容有效。但是,原創(chuàng )一天可以更新多少篇文章呢?畢竟內容制作平臺已經(jīng)轉移,早就不再關(guān)注網(wǎng)站了。其他幾個(gè)搜索引擎也互相捕捉,更不用說(shuō)小型網(wǎng)站了?!緢D4,高效簡(jiǎn)潔,WordPress采集】
  
  所以 WordPress 采集 內容仍然有效,因為 采集 內容的后處理效果更好。對于認真而規律的人,定位采集,只關(guān)注與本站內容高度相關(guān)的網(wǎng)站的幾個(gè)特定范圍。對于其他類(lèi)型的網(wǎng)站,有更多選項可供選擇。你可以抓取所有觸及邊緣的內容,但數量很大,所以你不需要限制某些網(wǎng)站的抓取。WordPress采集這稱(chēng)為平移采集。
  通過(guò)對搜索引擎算法的研究,搜索引擎不僅根據文本判斷內容相似度,還根據HTML中DOM節點(diǎn)的位置和順序進(jìn)行判斷。WordPress采集 會(huì )一直根據算法的變化進(jìn)行更新,以符合搜索引擎的規則。
  
  WordPress采集的作用不僅僅針對采集網(wǎng)站,各種cms網(wǎng)站,各種網(wǎng)站類(lèi)型都匹配。WordPress的SEO優(yōu)化采集更適合搜索引擎收錄網(wǎng)站,增加蜘蛛訪(fǎng)問(wèn)頻率,提升網(wǎng)站的收錄,只有當網(wǎng)站 有了好的收錄,網(wǎng)站的排名有了更好的基礎。返回搜狐,查看更多 查看全部

  免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)
  WordPress采集,作為網(wǎng)站 每日更新的工具。解決了網(wǎng)站日常維護更新的麻煩問(wèn)題,特別是全網(wǎng)批量自動(dòng)采集,讓網(wǎng)站的內容再也不用擔心,有是 文章 源源不斷的 網(wǎng)站 帖子。仔細閱讀下面的文字。WordPress采集的重點(diǎn)都在本文的四張圖里。忽略文字,直接看圖。[圖一,永遠免費,WordPress采集]
  
  WordPress采集要求采集源站是不斷更新的能力,是對優(yōu)質(zhì)內容的選擇性選擇采集。一方面可以經(jīng)常采集,另一方面這樣的站信息及時(shí),可以保證網(wǎng)站采集內容的新鮮度。采集方法有很多,唯一的目標就是要有質(zhì)量保證。對于大部分小站長(cháng)來(lái)說(shuō),只能轉化流量,這也是我們網(wǎng)站建設的終極目標?!緢D二,功能豐富,WordPress采集】
  
  搜索引擎優(yōu)化是利用算法技術(shù)手段,那么網(wǎng)站應該有針對性地調整網(wǎng)站的結構,合理安排關(guān)鍵詞,優(yōu)化外部資源,從而提高關(guān)鍵詞 在搜索引擎的 關(guān)鍵詞 排名中。搜索引擎優(yōu)化可以精準的將潛在用戶(hù)接入到網(wǎng)站,從而不斷獲得流量轉化,讓網(wǎng)站長(cháng)期輸出資源?!緢D3,自動(dòng)優(yōu)化,WordPress采集】
  
  有人說(shuō)采集的內容對搜索引擎不是很友好,也不容易得到排名。這不一定是真的。WordPress采集通過(guò)精準采集,以及AI智能處理文章,對搜索引擎更加友好。對于大多數網(wǎng)站來(lái)說(shuō),采集 內容肯定不如手寫(xiě)的原創(chuàng ) 內容有效。但是,原創(chuàng )一天可以更新多少篇文章呢?畢竟內容制作平臺已經(jīng)轉移,早就不再關(guān)注網(wǎng)站了。其他幾個(gè)搜索引擎也互相捕捉,更不用說(shuō)小型網(wǎng)站了?!緢D4,高效簡(jiǎn)潔,WordPress采集】
  
  所以 WordPress 采集 內容仍然有效,因為 采集 內容的后處理效果更好。對于認真而規律的人,定位采集,只關(guān)注與本站內容高度相關(guān)的網(wǎng)站的幾個(gè)特定范圍。對于其他類(lèi)型的網(wǎng)站,有更多選項可供選擇。你可以抓取所有觸及邊緣的內容,但數量很大,所以你不需要限制某些網(wǎng)站的抓取。WordPress采集這稱(chēng)為平移采集。
  通過(guò)對搜索引擎算法的研究,搜索引擎不僅根據文本判斷內容相似度,還根據HTML中DOM節點(diǎn)的位置和順序進(jìn)行判斷。WordPress采集 會(huì )一直根據算法的變化進(jìn)行更新,以符合搜索引擎的規則。
  
  WordPress采集的作用不僅僅針對采集網(wǎng)站,各種cms網(wǎng)站,各種網(wǎng)站類(lèi)型都匹配。WordPress的SEO優(yōu)化采集更適合搜索引擎收錄網(wǎng)站,增加蜘蛛訪(fǎng)問(wèn)頻率,提升網(wǎng)站的收錄,只有當網(wǎng)站 有了好的收錄,網(wǎng)站的排名有了更好的基礎。返回搜狐,查看更多

免規則采集器列表算法( 一個(gè)目標叫T的規則規則的算法介紹及注意事項)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-03-28 15:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
一個(gè)目標叫T的規則規則的算法介紹及注意事項)
  隱式規則搜索算法
  例如,我們有一個(gè)名為 T 的目標。下面是為目標 T 搜索規則的算法。請注意,下面我們不提及后綴規則,因為在將 Makefile 加載到內存中時(shí),所有后綴規則都會(huì )轉換為模式規則。如果目標是“archive(member)”的函數庫文件模式,那么這個(gè)算法會(huì )運行兩次,第一次是找到目標T,如果沒(méi)有找到,則進(jìn)入第二次,第二次將使用“member”作為“member”進(jìn)行搜索。
  1、分隔T的目錄部分。稱(chēng)為D,其余稱(chēng)為N。(例如:如果T是“src/foo.o”,則D是“src/”,N是“foo .o")
  2、創(chuàng )建匹配 T 或 N 的所有模式規則的列表。
  3、如果模式規則列表中存在匹配所有文件的模式,例如“%”,則從列表中刪除其他模式。
  4、刪除列表中沒(méi)有命令的規則。
  5、對于列表中的第一個(gè)模式規則:
  1)派生它的“stem” S,它應該是 T 或 N 匹配模式的非空“%”部分。
  2)計算依賴(lài)文件。將依賴(lài)文件中的“%”替換為“stem”S。如果目標模式不收錄斜線(xiàn)字符,則在第一個(gè)依賴(lài)文件的開(kāi)頭添加 D。
  3)測試所有依賴(lài)文件是否存在或應該存在。(如果文件被定義為另一個(gè)規則的對象,或者作為顯式規則的依賴(lài)項,則該文件被稱(chēng)為“應該存在”)
  4)如果所有依賴(lài)都存在或應該存在,或者如果沒(méi)有依賴(lài)。然后將應用此規則,退出算法。
  6、如果在第 5 步之后沒(méi)有找到模式規則,則進(jìn)行進(jìn)一步搜索。對于列表中的第一個(gè)模式規則:
  1)如果規則是終止規則,忽略它并繼續下一個(gè)模式規則。
  2)計算依賴(lài)文件。(與第 5 步相同)
  3)測試所有依賴(lài)文件是否存在或應該存在。
  4)對于不存在的依賴(lài)文件,遞歸調用這個(gè)算法,看是否可以通過(guò)隱式規則找到。
  5)如果所有依賴(lài)都存在或應該存在,或者根本不存在依賴(lài)。然后采用該規則,退出算法。
  7、如果沒(méi)有可以使用的隱式規則,檢查“.DEFAULT”規則,如果有,使用,使用“.DEFAULT”命令T。
  一旦找到規則,就執行它的等效命令,此時(shí),我們的自動(dòng)化變量的值就生成了。 查看全部

  免規則采集器列表算法(
一個(gè)目標叫T的規則規則的算法介紹及注意事項)
  隱式規則搜索算法
  例如,我們有一個(gè)名為 T 的目標。下面是為目標 T 搜索規則的算法。請注意,下面我們不提及后綴規則,因為在將 Makefile 加載到內存中時(shí),所有后綴規則都會(huì )轉換為模式規則。如果目標是“archive(member)”的函數庫文件模式,那么這個(gè)算法會(huì )運行兩次,第一次是找到目標T,如果沒(méi)有找到,則進(jìn)入第二次,第二次將使用“member”作為“member”進(jìn)行搜索。
  1、分隔T的目錄部分。稱(chēng)為D,其余稱(chēng)為N。(例如:如果T是“src/foo.o”,則D是“src/”,N是“foo .o")
  2、創(chuàng )建匹配 T 或 N 的所有模式規則的列表。
  3、如果模式規則列表中存在匹配所有文件的模式,例如“%”,則從列表中刪除其他模式。
  4、刪除列表中沒(méi)有命令的規則。
  5、對于列表中的第一個(gè)模式規則:
  1)派生它的“stem” S,它應該是 T 或 N 匹配模式的非空“%”部分。
  2)計算依賴(lài)文件。將依賴(lài)文件中的“%”替換為“stem”S。如果目標模式不收錄斜線(xiàn)字符,則在第一個(gè)依賴(lài)文件的開(kāi)頭添加 D。
  3)測試所有依賴(lài)文件是否存在或應該存在。(如果文件被定義為另一個(gè)規則的對象,或者作為顯式規則的依賴(lài)項,則該文件被稱(chēng)為“應該存在”)
  4)如果所有依賴(lài)都存在或應該存在,或者如果沒(méi)有依賴(lài)。然后將應用此規則,退出算法。
  6、如果在第 5 步之后沒(méi)有找到模式規則,則進(jìn)行進(jìn)一步搜索。對于列表中的第一個(gè)模式規則:
  1)如果規則是終止規則,忽略它并繼續下一個(gè)模式規則。
  2)計算依賴(lài)文件。(與第 5 步相同)
  3)測試所有依賴(lài)文件是否存在或應該存在。
  4)對于不存在的依賴(lài)文件,遞歸調用這個(gè)算法,看是否可以通過(guò)隱式規則找到。
  5)如果所有依賴(lài)都存在或應該存在,或者根本不存在依賴(lài)。然后采用該規則,退出算法。
  7、如果沒(méi)有可以使用的隱式規則,檢查“.DEFAULT”規則,如果有,使用,使用“.DEFAULT”命令T。
  一旦找到規則,就執行它的等效命令,此時(shí),我們的自動(dòng)化變量的值就生成了。

免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 130 次瀏覽 ? 2022-04-17 09:40 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)
  免規則采集器列表算法java實(shí)現4。2。3。1特征選擇原理2017-02-2223:22:36|分類(lèi)器viterbi算法2018-04-1214:13:51|目標識別2019-04-0122:51:16|檢測器1。1版基本實(shí)現1。2優(yōu)化目標:列表分類(lèi)器,精度達到15%2。2。3。2java實(shí)現gbdt非凸函數、優(yōu)化目標:小類(lèi)(聚類(lèi)問(wèn)題)or大類(lèi)(分類(lèi)問(wèn)題)實(shí)現整體思路:1。
  只把樣本映射到[-1,1][-1,1]列表中(每次劃分時(shí),先創(chuàng )建一個(gè)[-1,1]-1列表)2。比較數據的峰值(kernelminmethod(0,minmethod(min-。
  1)/maxmethod(max-
  1)))或周邊最小值(kernelmaxmethod(-minmethod(min-
  1),-maxmethod(max-
  1))):當方差最小時(shí),
  1)列表中的元素序列(xinint->xinint[i])。返回參數:1.列表中元素個(gè)數:in遍歷列表的每一個(gè)元素,其中in遍歷列表的第一個(gè)元素和結尾所有元素2.初始內存大?。╩b):初始內存大小要記?。翰灰褂胕nt3.列表中每一項的序號:是對象length+1并保存元素的序號,需求[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,167,169,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,187,188,189,189,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,18。 查看全部

  免規則采集器列表算法(免規則采集器列表算法java實(shí)現4。2)
  免規則采集器列表算法java實(shí)現4。2。3。1特征選擇原理2017-02-2223:22:36|分類(lèi)器viterbi算法2018-04-1214:13:51|目標識別2019-04-0122:51:16|檢測器1。1版基本實(shí)現1。2優(yōu)化目標:列表分類(lèi)器,精度達到15%2。2。3。2java實(shí)現gbdt非凸函數、優(yōu)化目標:小類(lèi)(聚類(lèi)問(wèn)題)or大類(lèi)(分類(lèi)問(wèn)題)實(shí)現整體思路:1。
  只把樣本映射到[-1,1][-1,1]列表中(每次劃分時(shí),先創(chuàng )建一個(gè)[-1,1]-1列表)2。比較數據的峰值(kernelminmethod(0,minmethod(min-。
  1)/maxmethod(max-
  1)))或周邊最小值(kernelmaxmethod(-minmethod(min-
  1),-maxmethod(max-
  1))):當方差最小時(shí),
  1)列表中的元素序列(xinint->xinint[i])。返回參數:1.列表中元素個(gè)數:in遍歷列表的每一個(gè)元素,其中in遍歷列表的第一個(gè)元素和結尾所有元素2.初始內存大?。╩b):初始內存大小要記?。翰灰褂胕nt3.列表中每一項的序號:是對象length+1并保存元素的序號,需求[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,85,86,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,167,169,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,187,188,189,189,188,189,189,189,189,189,189,189,189,189,189,189,189,189,189,18。

免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-04-17 07:34 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)
  python處理圖像,opencv圖像識別算法 張世龍 02-25 08:0732 查看次數
  python環(huán)境下使用opencv壓縮圖片大小,python語(yǔ)言。在python環(huán)境下使用opencv壓縮圖像大小,并在python語(yǔ)言中引入poencv,使用utility PIL處理圖像比使用opencv更容易。opencv通常用于采集視頻圖像和圖像。
  數字圖像處理是如何在python和opencv上寫(xiě)一個(gè)瘦臉算法導致編輯器跌倒。誰(shuí)指著(zhù)心最小的編輯說(shuō):“你能不能讓老子別再傷他的心了?
  #參考項目 (whoami1978 ) f=1foriinrange (1,1001 ) : f*=i print(f ) f ) 結果很大,而且沒(méi)有像編輯員那樣成績(jì)差的同學(xué),怎么襯得好成績(jì)
  當前的圖像壓縮算法有哪些?目前有哪些圖像壓縮算法,請舉個(gè)例子?!緢D片壓縮】證明當小編學(xué)會(huì )控制自己的脾氣后,就知道小編什么都不需要
  淺談圖像壓縮算法 jzdm 本文只討論靜止圖像壓縮的基本算法。圖像壓縮的目的是通過(guò)用更少的數據表示圖像來(lái)節省存儲成本、傳輸時(shí)間和費用。JPEG壓縮算法可以處理帶有失真壓縮的圖像,但是肉眼無(wú)法識別失真的程度。
  基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?比別人剪電影中的3-cut輪廓(這是我在小編找到的一個(gè)博客網(wǎng)站。
  分享python和opencv的ssim計算代碼
  # importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2#constructtheargumentparseandparsetheargumentsap=arg parse.argument parser(AP.add_argument('-f','first',just
  有沒(méi)有人在c上有opencv圖像清晰度的算法代碼?圖像模糊的原因有很多,您正在處理哪一個(gè)?并非所有東西都共享。我該如何和不想失去的人說(shuō)再見(jiàn)?“主編沒(méi)說(shuō)再見(jiàn),主編也沒(méi)說(shuō)什么,就走了?!?br />   基于matlab的圖像壓縮算法包括matlab如Huffman編碼、算術(shù)編碼、字典編碼、游程編碼-Lempel-zev編碼、DCT、子帶編碼粒子、二次采樣、比特分配、矢量量化等。
  基于OpenCV的等速模糊圖像恢復及算法分析
  第二卷第35期1月21日21日501湖南工業(yè)大學(xué)學(xué)報VO.5n 031-2ma2v 011等速模糊圖像恢復及基于jurlofhununvestftehnogonanairiyocolyopnv eCcqdxtd的算法分析,ladbg(福建福州,300518)
  個(gè)人畢業(yè)設計基于python開(kāi)發(fā)的鏡像。蒼海月明在此吟詩(shī),白犬剛流。
  本科畢業(yè)論文(設計)主題:基于python開(kāi)發(fā)的圖像的Airppt采集器本科學(xué)科與專(zhuān)業(yè)Airppt基于python的圖像的摘要采集器本文使用普通USB數碼相機拍攝獲取實(shí)景時(shí)間 圖片
  將視頻壓縮成的最小格式是什么?格式工廠(chǎng)如何將視頻壓縮到指定大???1990年代世界三大經(jīng)濟中心,改變世界的九種算法 查看全部

  免規則采集器列表算法(共享python和opencv的ssim計算代碼#importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2)
  python處理圖像,opencv圖像識別算法 張世龍 02-25 08:0732 查看次數
  python環(huán)境下使用opencv壓縮圖片大小,python語(yǔ)言。在python環(huán)境下使用opencv壓縮圖像大小,并在python語(yǔ)言中引入poencv,使用utility PIL處理圖像比使用opencv更容易。opencv通常用于采集視頻圖像和圖像。
  數字圖像處理是如何在python和opencv上寫(xiě)一個(gè)瘦臉算法導致編輯器跌倒。誰(shuí)指著(zhù)心最小的編輯說(shuō):“你能不能讓老子別再傷他的心了?
  #參考項目 (whoami1978 ) f=1foriinrange (1,1001 ) : f*=i print(f ) f ) 結果很大,而且沒(méi)有像編輯員那樣成績(jì)差的同學(xué),怎么襯得好成績(jì)
  當前的圖像壓縮算法有哪些?目前有哪些圖像壓縮算法,請舉個(gè)例子?!緢D片壓縮】證明當小編學(xué)會(huì )控制自己的脾氣后,就知道小編什么都不需要
  淺談圖像壓縮算法 jzdm 本文只討論靜止圖像壓縮的基本算法。圖像壓縮的目的是通過(guò)用更少的數據表示圖像來(lái)節省存儲成本、傳輸時(shí)間和費用。JPEG壓縮算法可以處理帶有失真壓縮的圖像,但是肉眼無(wú)法識別失真的程度。
  基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?基于python語(yǔ)言的opencv如何裁剪圖像中的指定區域?比別人剪電影中的3-cut輪廓(這是我在小編找到的一個(gè)博客網(wǎng)站。
  分享python和opencv的ssim計算代碼
  # importthenecessarypackagesfromskimage.measureimportcompare_ssimimportargparseimportimutilsimportcv2#constructtheargumentparseandparsetheargumentsap=arg parse.argument parser(AP.add_argument('-f','first',just
  有沒(méi)有人在c上有opencv圖像清晰度的算法代碼?圖像模糊的原因有很多,您正在處理哪一個(gè)?并非所有東西都共享。我該如何和不想失去的人說(shuō)再見(jiàn)?“主編沒(méi)說(shuō)再見(jiàn),主編也沒(méi)說(shuō)什么,就走了?!?br />   基于matlab的圖像壓縮算法包括matlab如Huffman編碼、算術(shù)編碼、字典編碼、游程編碼-Lempel-zev編碼、DCT、子帶編碼粒子、二次采樣、比特分配、矢量量化等。
  基于OpenCV的等速模糊圖像恢復及算法分析
  第二卷第35期1月21日21日501湖南工業(yè)大學(xué)學(xué)報VO.5n 031-2ma2v 011等速模糊圖像恢復及基于jurlofhununvestftehnogonanairiyocolyopnv eCcqdxtd的算法分析,ladbg(福建福州,300518)
  個(gè)人畢業(yè)設計基于python開(kāi)發(fā)的鏡像。蒼海月明在此吟詩(shī),白犬剛流。
  本科畢業(yè)論文(設計)主題:基于python開(kāi)發(fā)的圖像的Airppt采集器本科學(xué)科與專(zhuān)業(yè)Airppt基于python的圖像的摘要采集器本文使用普通USB數碼相機拍攝獲取實(shí)景時(shí)間 圖片
  將視頻壓縮成的最小格式是什么?格式工廠(chǎng)如何將視頻壓縮到指定大???1990年代世界三大經(jīng)濟中心,改變世界的九種算法

免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2022-04-16 13:22 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)
  最近有很多朋友在詢(xún)問(wèn)優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)的方法,其實(shí)這些問(wèn)題都不是很難回答,可能是你不太關(guān)注,所以不知道,不過(guò)沒(méi)關(guān)系,今天給大家詳細分享一下具體優(yōu)采云采集器免登錄采集如何發(fā)布數據到DEDEcms織夢(mèng),真心希望對你有所幫助。
  將以下代碼放入 dede/config.php:
  
//檢驗用戶(hù)登錄狀態(tài)
 
$cuserLogin = new userLogin();

if($cuserLogin->getUserID()==-1)

{

header("location:login.php?gotopage=".urlencode($dedeNowurl));

exit();

}
修改為:
//檢驗用戶(hù)登錄狀態(tài)
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
if($my_u != ')
{
$res = $cuserLogin->checkUser($my_u,$my_p);
if($res==1)
$cuserLogin->keepUser();
}
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
}
  然后將 優(yōu)采云 發(fā)布模塊修改為
  article_add.php?my_u=你的后臺用戶(hù)名&my_p=你的后臺密碼
  以上就是對優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)方法的詳細介紹,如果你還想了解優(yōu)采云采集器免登錄采集如果數據發(fā)布到DEDEcms織夢(mèng),可以直接關(guān)注編輯器不斷推出的新文章 ,因為這些信息會(huì )及時(shí)更新給大家看。同時(shí)也希望大家多多支持關(guān)注46仿網(wǎng)站。更多信息將在此更新。
  如果你覺(jué)得這篇文章對你有幫助,就給個(gè)贊吧!
  沒(méi)有解決?點(diǎn)擊這里呼喚大神幫忙(付費)! 查看全部

  免規則采集器列表算法(關(guān)于dede/config.php的相關(guān)問(wèn)題很難解答)
  最近有很多朋友在詢(xún)問(wèn)優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)的方法,其實(shí)這些問(wèn)題都不是很難回答,可能是你不太關(guān)注,所以不知道,不過(guò)沒(méi)關(guān)系,今天給大家詳細分享一下具體優(yōu)采云采集器免登錄采集如何發(fā)布數據到DEDEcms織夢(mèng),真心希望對你有所幫助。
  將以下代碼放入 dede/config.php:
  
//檢驗用戶(hù)登錄狀態(tài)
 
$cuserLogin = new userLogin();

if($cuserLogin->getUserID()==-1)

{

header("location:login.php?gotopage=".urlencode($dedeNowurl));

exit();

}
修改為:
//檢驗用戶(hù)登錄狀態(tài)
$cuserLogin = new userLogin();
if($cuserLogin->getUserID()==-1)
{
if($my_u != ')
{
$res = $cuserLogin->checkUser($my_u,$my_p);
if($res==1)
$cuserLogin->keepUser();
}
if($cuserLogin->getUserID()==-1)
{
header("location:login.php?gotopage=".urlencode($dedeNowurl));
exit();
}
}
  然后將 優(yōu)采云 發(fā)布模塊修改為
  article_add.php?my_u=你的后臺用戶(hù)名&my_p=你的后臺密碼
  以上就是對優(yōu)采云采集器免費登錄采集數據發(fā)布到DEDEcms織夢(mèng)方法的詳細介紹,如果你還想了解優(yōu)采云采集器免登錄采集如果數據發(fā)布到DEDEcms織夢(mèng),可以直接關(guān)注編輯器不斷推出的新文章 ,因為這些信息會(huì )及時(shí)更新給大家看。同時(shí)也希望大家多多支持關(guān)注46仿網(wǎng)站。更多信息將在此更新。
  如果你覺(jué)得這篇文章對你有幫助,就給個(gè)贊吧!
  沒(méi)有解決?點(diǎn)擊這里呼喚大神幫忙(付費)!

免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 113 次瀏覽 ? 2022-04-15 04:11 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊
)
  優(yōu)采云采集器是目前使用最多的互聯(lián)網(wǎng)數據采集、處理、分析和挖掘軟件。該軟件以其靈活的配置和強大的性能,領(lǐng)先國內data采集產(chǎn)品,獲得了眾多用戶(hù)的一致認可。但是優(yōu)采云采集器有一個(gè)很麻煩的地方,就是需要編寫(xiě)采集規則,連接復雜的發(fā)布模塊。有沒(méi)有免費又強大的采集器?一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。
  
  免費采集器可以設置標題前綴和后綴(標題的區別更好收錄)。使 網(wǎng)站 內容更好。內容是網(wǎng)站的基礎。沒(méi)有好的內容,就沒(méi)有回頭客,如果在其他方面做得好,那就是白費了。好的內容不僅適合用戶(hù),也適合搜索引擎。優(yōu)秀的SEO文案可以找到兩者之間的共同點(diǎn)。
  免費的采集器可以合理的網(wǎng)站架構。網(wǎng)站架構是SEO的基礎部分。主要與代碼縮減、目錄結構、網(wǎng)頁(yè)收錄、網(wǎng)站網(wǎng)站的跳出率等有關(guān)。合理的架構可以讓搜索引擎爬取網(wǎng)站內容更好,它也會(huì )給訪(fǎng)問(wèn)者一個(gè)舒適的訪(fǎng)問(wèn)體驗。如果網(wǎng)站的結構不合理,搜索引擎不喜歡,用戶(hù)也不喜歡。
  
  免費采集器支持多種采集來(lái)源采集(覆蓋全網(wǎng)行業(yè)新聞來(lái)源,海量?jì)热輲?,采集最新內容)??梢陨钊胪诰蛴脩?hù)需求。一個(gè)合格的SEO工作者,大部分時(shí)間都是在挖掘用戶(hù)需求,也就是說(shuō),用戶(hù)還需要什么?此外,他們必須對行業(yè)有絕對的了解,這樣網(wǎng)站才能全面、專(zhuān)業(yè)、深刻。
  免費采集器搜索引擎推送(文章發(fā)布成功后主動(dòng)向搜索引擎推送文章,保證新鏈接能夠被搜索引擎收錄及時(shí)搜索到)。
  
  免費采集器提供高質(zhì)量的外部鏈接。雖然外鏈的作用在減少,但對于已經(jīng)被搜索引擎很好爬取的網(wǎng)站來(lái)說(shuō),他只需要做好內容就可以獲得好的排名。但是對于很多新網(wǎng)站來(lái)說(shuō),如果沒(méi)有外鏈誘餌,搜索引擎怎么能找到你呢?但是這個(gè)外鏈誘餌應該是高質(zhì)量的,高質(zhì)量應該從相關(guān)性和權威性開(kāi)始。優(yōu)質(zhì)的外鏈可以幫助網(wǎng)站快速走出新站考察期,對快速提升SEO排名有很大幫助。
  免費采集器給用戶(hù)完美體驗。用戶(hù)體驗包括很多方面,幾乎都是前面所有的內容,比如內容是否優(yōu)質(zhì)、專(zhuān)業(yè)、全面,瀏覽結構是否合理,是否需要與用戶(hù)互助等等。用戶(hù)體驗是一項工作每天都需要優(yōu)化。.
  
  從下拉詞、相關(guān)搜索詞和長(cháng)尾詞中免費生成行業(yè)相關(guān)詞采集器、關(guān)鍵詞??梢栽O置自動(dòng)刪除不相關(guān)的詞。如何為單個(gè)頁(yè)面編寫(xiě)網(wǎng)站標題。一個(gè)網(wǎng)站不僅有首頁(yè),還有欄目頁(yè)、新聞頁(yè)、產(chǎn)品頁(yè)、標簽頁(yè)等,這些頁(yè)面的標題應該怎么做呢?免費采集器支持其他平臺的圖片本地化或存儲。
  主頁(yè)標題。主頁(yè)的標題可以用一句話(huà)概括。在滿(mǎn)足你的關(guān)鍵詞的基礎上,盡量展現你獨特的優(yōu)勢,給人一種眼前一亮的感覺(jué),就是要給人點(diǎn)擊的欲望。
  免費采集器內容與標題一致(使內容與標題100%相關(guān))。欄目頁(yè)最重要的是內容的契合度,即相關(guān)性。如果你在標題上堆積了很多相關(guān)的內容,你可以做一些擴展來(lái)滿(mǎn)足我們對內容的準確命題。欄目?jì)热莺芏?,整合了很多。為此,我們可以適當擴展標題。以網(wǎng)站的建設為例,我們可以設置標題收錄網(wǎng)站建設。新聞標題、網(wǎng)站模板、技術(shù)文檔等。
  
  免費采集器自動(dòng)內鏈(在執行發(fā)布任務(wù)時(shí)自動(dòng)生成文章內容中的內鏈,有利于引導頁(yè)面蜘蛛抓取,提高頁(yè)面權限)。在新聞頁(yè)面方面,雖然單個(gè)頁(yè)面并不比首頁(yè)或欄目頁(yè)面好,但如果將多個(gè)新聞頁(yè)面與它們進(jìn)行比較,則不一定如此。這種比較的標準是基于流量的。新聞頁(yè)面的標題一般是信息標題加上公司名稱(chēng)。這種寫(xiě)法我也挺中肯的。我也用過(guò),效果不錯,但最重要的是效果不明顯或者關(guān)鍵詞的排名不高。,這個(gè)時(shí)候我們可以換個(gè)方法,用什么方法呢?就是寫(xiě)文章標題不帶公司名,這樣效果更好,
  
  批量監控不同的cms網(wǎng)站數據(你的網(wǎng)站是Empire, Yiyou, ZBLOG, 織夢(mèng), WP, Cyclone, 站群, PB, Apple, 搜外 和其他主要的cms 工具,可以同時(shí)管理和批量發(fā)布)。對于產(chǎn)品頁(yè)面的標??題,我個(gè)人遵循產(chǎn)品字+公司名稱(chēng)的原則。這樣做有兩個(gè)好處。一是提高公司知名度,推廣產(chǎn)品。更多人會(huì )看到,名字背后的公司也會(huì )受到關(guān)注。的。
  免費采集器自動(dòng)批量掛機采集,無(wú)縫對接各大cms發(fā)布者,采集之后自動(dòng)發(fā)布推送到搜索引擎。書(shū)簽頁(yè)面。標簽頁(yè),這是對一些信息網(wǎng)站或更多信息發(fā)布網(wǎng)站的類(lèi)似內容的分類(lèi),與欄目類(lèi)似,但與欄目頁(yè)不同,標簽頁(yè)只能是一個(gè)詞或一個(gè)長(cháng)尾 關(guān)鍵詞。今天關(guān)于優(yōu)采云采集器的講解就到這里了,下期會(huì )分享更多與SEO相關(guān)的功能。
   查看全部

  免規則采集器列表算法(優(yōu)采云采集器免費功能強大的采集器需要寫(xiě)采集規則,還有對接復雜的發(fā)布模塊
)
  優(yōu)采云采集器是目前使用最多的互聯(lián)網(wǎng)數據采集、處理、分析和挖掘軟件。該軟件以其靈活的配置和強大的性能,領(lǐng)先國內data采集產(chǎn)品,獲得了眾多用戶(hù)的一致認可。但是優(yōu)采云采集器有一個(gè)很麻煩的地方,就是需要編寫(xiě)采集規則,連接復雜的發(fā)布模塊。有沒(méi)有免費又強大的采集器?一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。一次可以創(chuàng )建幾十上百個(gè)采集任務(wù),同時(shí)可以執行多個(gè)域名任務(wù)采集。
  
  免費采集器可以設置標題前綴和后綴(標題的區別更好收錄)。使 網(wǎng)站 內容更好。內容是網(wǎng)站的基礎。沒(méi)有好的內容,就沒(méi)有回頭客,如果在其他方面做得好,那就是白費了。好的內容不僅適合用戶(hù),也適合搜索引擎。優(yōu)秀的SEO文案可以找到兩者之間的共同點(diǎn)。
  免費的采集器可以合理的網(wǎng)站架構。網(wǎng)站架構是SEO的基礎部分。主要與代碼縮減、目錄結構、網(wǎng)頁(yè)收錄、網(wǎng)站網(wǎng)站的跳出率等有關(guān)。合理的架構可以讓搜索引擎爬取網(wǎng)站內容更好,它也會(huì )給訪(fǎng)問(wèn)者一個(gè)舒適的訪(fǎng)問(wèn)體驗。如果網(wǎng)站的結構不合理,搜索引擎不喜歡,用戶(hù)也不喜歡。
  
  免費采集器支持多種采集來(lái)源采集(覆蓋全網(wǎng)行業(yè)新聞來(lái)源,海量?jì)热輲?,采集最新內容)??梢陨钊胪诰蛴脩?hù)需求。一個(gè)合格的SEO工作者,大部分時(shí)間都是在挖掘用戶(hù)需求,也就是說(shuō),用戶(hù)還需要什么?此外,他們必須對行業(yè)有絕對的了解,這樣網(wǎng)站才能全面、專(zhuān)業(yè)、深刻。
  免費采集器搜索引擎推送(文章發(fā)布成功后主動(dòng)向搜索引擎推送文章,保證新鏈接能夠被搜索引擎收錄及時(shí)搜索到)。
  
  免費采集器提供高質(zhì)量的外部鏈接。雖然外鏈的作用在減少,但對于已經(jīng)被搜索引擎很好爬取的網(wǎng)站來(lái)說(shuō),他只需要做好內容就可以獲得好的排名。但是對于很多新網(wǎng)站來(lái)說(shuō),如果沒(méi)有外鏈誘餌,搜索引擎怎么能找到你呢?但是這個(gè)外鏈誘餌應該是高質(zhì)量的,高質(zhì)量應該從相關(guān)性和權威性開(kāi)始。優(yōu)質(zhì)的外鏈可以幫助網(wǎng)站快速走出新站考察期,對快速提升SEO排名有很大幫助。
  免費采集器給用戶(hù)完美體驗。用戶(hù)體驗包括很多方面,幾乎都是前面所有的內容,比如內容是否優(yōu)質(zhì)、專(zhuān)業(yè)、全面,瀏覽結構是否合理,是否需要與用戶(hù)互助等等。用戶(hù)體驗是一項工作每天都需要優(yōu)化。.
  
  從下拉詞、相關(guān)搜索詞和長(cháng)尾詞中免費生成行業(yè)相關(guān)詞采集器、關(guān)鍵詞??梢栽O置自動(dòng)刪除不相關(guān)的詞。如何為單個(gè)頁(yè)面編寫(xiě)網(wǎng)站標題。一個(gè)網(wǎng)站不僅有首頁(yè),還有欄目頁(yè)、新聞頁(yè)、產(chǎn)品頁(yè)、標簽頁(yè)等,這些頁(yè)面的標題應該怎么做呢?免費采集器支持其他平臺的圖片本地化或存儲。
  主頁(yè)標題。主頁(yè)的標題可以用一句話(huà)概括。在滿(mǎn)足你的關(guān)鍵詞的基礎上,盡量展現你獨特的優(yōu)勢,給人一種眼前一亮的感覺(jué),就是要給人點(diǎn)擊的欲望。
  免費采集器內容與標題一致(使內容與標題100%相關(guān))。欄目頁(yè)最重要的是內容的契合度,即相關(guān)性。如果你在標題上堆積了很多相關(guān)的內容,你可以做一些擴展來(lái)滿(mǎn)足我們對內容的準確命題。欄目?jì)热莺芏?,整合了很多。為此,我們可以適當擴展標題。以網(wǎng)站的建設為例,我們可以設置標題收錄網(wǎng)站建設。新聞標題、網(wǎng)站模板、技術(shù)文檔等。
  
  免費采集器自動(dòng)內鏈(在執行發(fā)布任務(wù)時(shí)自動(dòng)生成文章內容中的內鏈,有利于引導頁(yè)面蜘蛛抓取,提高頁(yè)面權限)。在新聞頁(yè)面方面,雖然單個(gè)頁(yè)面并不比首頁(yè)或欄目頁(yè)面好,但如果將多個(gè)新聞頁(yè)面與它們進(jìn)行比較,則不一定如此。這種比較的標準是基于流量的。新聞頁(yè)面的標題一般是信息標題加上公司名稱(chēng)。這種寫(xiě)法我也挺中肯的。我也用過(guò),效果不錯,但最重要的是效果不明顯或者關(guān)鍵詞的排名不高。,這個(gè)時(shí)候我們可以換個(gè)方法,用什么方法呢?就是寫(xiě)文章標題不帶公司名,這樣效果更好,
  
  批量監控不同的cms網(wǎng)站數據(你的網(wǎng)站是Empire, Yiyou, ZBLOG, 織夢(mèng), WP, Cyclone, 站群, PB, Apple, 搜外 和其他主要的cms 工具,可以同時(shí)管理和批量發(fā)布)。對于產(chǎn)品頁(yè)面的標??題,我個(gè)人遵循產(chǎn)品字+公司名稱(chēng)的原則。這樣做有兩個(gè)好處。一是提高公司知名度,推廣產(chǎn)品。更多人會(huì )看到,名字背后的公司也會(huì )受到關(guān)注。的。
  免費采集器自動(dòng)批量掛機采集,無(wú)縫對接各大cms發(fā)布者,采集之后自動(dòng)發(fā)布推送到搜索引擎。書(shū)簽頁(yè)面。標簽頁(yè),這是對一些信息網(wǎng)站或更多信息發(fā)布網(wǎng)站的類(lèi)似內容的分類(lèi),與欄目類(lèi)似,但與欄目頁(yè)不同,標簽頁(yè)只能是一個(gè)詞或一個(gè)長(cháng)尾 關(guān)鍵詞。今天關(guān)于優(yōu)采云采集器的講解就到這里了,下期會(huì )分享更多與SEO相關(guān)的功能。
  

免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 94 次瀏覽 ? 2022-04-13 21:19 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)
  過(guò)去我們通過(guò)時(shí)間和邏輯算法來(lái)控制它,做到標本兼治。樓上的太簡(jiǎn)單了。如果你真的想采集你的網(wǎng)站信息,其實(shí)很簡(jiǎn)單。
  我在網(wǎng)上找到了一個(gè)非常全面的防止采集的方法,可以參考一下
  在實(shí)現很多反采集的方法時(shí),需要考慮是否影響搜索引擎對網(wǎng)站的抓取,所以我們先來(lái)分析一下一般的采集器和搜索引擎有什么區別爬蟲(chóng) 采集 不同。
  相似之處:A。兩者都需要直接抓取網(wǎng)頁(yè)的源代碼才能有效工作,b. 兩者會(huì )在單位時(shí)間內多次抓取大量訪(fǎng)問(wèn)過(guò)的網(wǎng)站內容;C。宏觀(guān)上來(lái)說(shuō),兩者的IP都會(huì )發(fā)生變化;d。兩個(gè)都迫不及待的想破解你網(wǎng)頁(yè)的一些加密(驗證),比如網(wǎng)頁(yè)內容是用js文件加密的,比如需要輸入驗證碼才能瀏覽內容,比如需要登錄才能訪(fǎng)問(wèn)內容, ETC。
  區別:搜索引擎爬蟲(chóng)首先會(huì )忽略整個(gè)網(wǎng)頁(yè)的源腳本和樣式以及HTML標簽代碼,然后對剩下的文本進(jìn)行分詞、語(yǔ)法分析等一系列復雜的處理。而采集器一般使用html標簽特性來(lái)抓取需要的數據,而在制定采集規則時(shí),需要填寫(xiě)目標內容的開(kāi)始標記和結束標記,以便定位到需要的內容內容; 或者使用針對特定網(wǎng)頁(yè)制作特定的正則表達式來(lái)過(guò)濾掉需要的內容。無(wú)論你使用開(kāi)始和結束標記還是正則表達式,都會(huì )涉及到html標簽(網(wǎng)頁(yè)結構分析)。
  然后想出一些反采集的方法
  1、限制單位時(shí)間內每個(gè)IP地址的訪(fǎng)問(wèn)次數
  分析:沒(méi)有一個(gè)普通人可以在一秒鐘內訪(fǎng)問(wèn)同一個(gè)網(wǎng)站5次,除非是程序訪(fǎng)問(wèn),喜歡這樣的人就剩下搜索引擎爬蟲(chóng)和煩人的采集器。
  缺點(diǎn):一刀切,這也會(huì )阻止搜索引擎訪(fǎng)問(wèn) 收錄 或 網(wǎng)站
  適用于網(wǎng)站:網(wǎng)站不嚴重依賴(lài)搜索引擎的人
  采集器會(huì )做什么:減少單位時(shí)間的訪(fǎng)問(wèn)次數,降低采集的效率
  2、屏蔽ip
  分析:通過(guò)后臺計數器,記錄訪(fǎng)客IP和訪(fǎng)問(wèn)頻率,人工分析訪(fǎng)客記錄,屏蔽可疑IP。
  缺點(diǎn):好像沒(méi)有缺點(diǎn),就是站長(cháng)忙
  適用于網(wǎng)站:所有網(wǎng)站,站長(cháng)可以知道是google還是百度機器人
  采集器 會(huì )做什么:打游擊戰!使用ip代理采集改一次,但是會(huì )降低采集器的效率和網(wǎng)速(使用代理)。
  3、使用js加密網(wǎng)頁(yè)內容
  注意:我沒(méi)有接觸過(guò)這個(gè)方法,只是來(lái)自其他來(lái)源
  分析:不用分析,搜索引擎爬蟲(chóng)和采集器殺
  對于網(wǎng)站:討厭搜索引擎的網(wǎng)站和采集器
  采集器 會(huì )這樣做:你那么好,你要犧牲,他不會(huì )來(lái)接你
  4、隱藏網(wǎng)站網(wǎng)頁(yè)中的版權或一些隨機的垃圾文字,這些文字樣式寫(xiě)在css文件中
  分析:雖然不能阻止采集,但是會(huì )讓采集后面的內容被你的網(wǎng)站版權聲明或者一些垃圾文字填滿(mǎn),因為一般采集器不會(huì )采集您的 css 文件,這些文本顯示時(shí)沒(méi)有樣式。
  適用于 網(wǎng)站:所有 網(wǎng)站
  采集器怎么辦:對于版權文本,好辦,替換掉。對于隨機垃圾文本,沒(méi)辦法,快點(diǎn)。
  5、用戶(hù)登錄訪(fǎng)問(wèn)網(wǎng)站內容
  分析:搜索引擎爬蟲(chóng)不會(huì )為每一種此類(lèi)網(wǎng)站設計登錄程序。聽(tīng)說(shuō)采集器可以為某個(gè)網(wǎng)站設計模擬用戶(hù)登錄和提交表單的行為。
  對于網(wǎng)站:網(wǎng)站討厭搜索引擎,最想屏蔽采集器
  采集器 會(huì )做什么:制作一個(gè)模塊來(lái)模擬用戶(hù)登錄和提交表單的行為
  6、使用腳本語(yǔ)言進(jìn)行分頁(yè)(隱藏分頁(yè))
  分析:還是那句話(huà),搜索引擎爬蟲(chóng)不會(huì )分析各種網(wǎng)站的隱藏分頁(yè),影響搜索引擎的收錄。但是,采集作者在編寫(xiě)采集規則的時(shí)候,需要分析目標網(wǎng)頁(yè)的代碼,稍微懂一點(diǎn)腳本知識的就知道分頁(yè)的真實(shí)鏈接地址了。
  適用于網(wǎng)站:網(wǎng)站對搜索引擎依賴(lài)不高,采集你的人不懂腳本知識
  采集器會(huì )做什么:應該說(shuō)采集這個(gè)人會(huì )做什么,反正他要分析你的網(wǎng)頁(yè)代碼,順便分析一下你的分頁(yè)腳本,用不了多少額外的時(shí)間。
  7、反鏈保護措施(只允許通過(guò)本站頁(yè)面連接查看,如:Request.ServerVariables("HTTP_REFERER"))
  分析:asp和php可以通過(guò)讀取請求的HTTP_REFERER屬性來(lái)判斷請求是否來(lái)自這個(gè)網(wǎng)站,從而限制采集器,同時(shí)也限制了搜索引擎爬蟲(chóng),嚴重影響了搜索引擎對網(wǎng)站。@網(wǎng)站部分防盜鏈內容收錄。
  適用于網(wǎng)站:網(wǎng)站很少考慮搜索引擎收錄 查看全部

  免規則采集器列表算法(,采集你的網(wǎng)站信息的話(huà),)
  過(guò)去我們通過(guò)時(shí)間和邏輯算法來(lái)控制它,做到標本兼治。樓上的太簡(jiǎn)單了。如果你真的想采集你的網(wǎng)站信息,其實(shí)很簡(jiǎn)單。
  我在網(wǎng)上找到了一個(gè)非常全面的防止采集的方法,可以參考一下
  在實(shí)現很多反采集的方法時(shí),需要考慮是否影響搜索引擎對網(wǎng)站的抓取,所以我們先來(lái)分析一下一般的采集器和搜索引擎有什么區別爬蟲(chóng) 采集 不同。
  相似之處:A。兩者都需要直接抓取網(wǎng)頁(yè)的源代碼才能有效工作,b. 兩者會(huì )在單位時(shí)間內多次抓取大量訪(fǎng)問(wèn)過(guò)的網(wǎng)站內容;C。宏觀(guān)上來(lái)說(shuō),兩者的IP都會(huì )發(fā)生變化;d。兩個(gè)都迫不及待的想破解你網(wǎng)頁(yè)的一些加密(驗證),比如網(wǎng)頁(yè)內容是用js文件加密的,比如需要輸入驗證碼才能瀏覽內容,比如需要登錄才能訪(fǎng)問(wèn)內容, ETC。
  區別:搜索引擎爬蟲(chóng)首先會(huì )忽略整個(gè)網(wǎng)頁(yè)的源腳本和樣式以及HTML標簽代碼,然后對剩下的文本進(jìn)行分詞、語(yǔ)法分析等一系列復雜的處理。而采集器一般使用html標簽特性來(lái)抓取需要的數據,而在制定采集規則時(shí),需要填寫(xiě)目標內容的開(kāi)始標記和結束標記,以便定位到需要的內容內容; 或者使用針對特定網(wǎng)頁(yè)制作特定的正則表達式來(lái)過(guò)濾掉需要的內容。無(wú)論你使用開(kāi)始和結束標記還是正則表達式,都會(huì )涉及到html標簽(網(wǎng)頁(yè)結構分析)。
  然后想出一些反采集的方法
  1、限制單位時(shí)間內每個(gè)IP地址的訪(fǎng)問(wèn)次數
  分析:沒(méi)有一個(gè)普通人可以在一秒鐘內訪(fǎng)問(wèn)同一個(gè)網(wǎng)站5次,除非是程序訪(fǎng)問(wèn),喜歡這樣的人就剩下搜索引擎爬蟲(chóng)和煩人的采集器。
  缺點(diǎn):一刀切,這也會(huì )阻止搜索引擎訪(fǎng)問(wèn) 收錄 或 網(wǎng)站
  適用于網(wǎng)站:網(wǎng)站不嚴重依賴(lài)搜索引擎的人
  采集器會(huì )做什么:減少單位時(shí)間的訪(fǎng)問(wèn)次數,降低采集的效率
  2、屏蔽ip
  分析:通過(guò)后臺計數器,記錄訪(fǎng)客IP和訪(fǎng)問(wèn)頻率,人工分析訪(fǎng)客記錄,屏蔽可疑IP。
  缺點(diǎn):好像沒(méi)有缺點(diǎn),就是站長(cháng)忙
  適用于網(wǎng)站:所有網(wǎng)站,站長(cháng)可以知道是google還是百度機器人
  采集器 會(huì )做什么:打游擊戰!使用ip代理采集改一次,但是會(huì )降低采集器的效率和網(wǎng)速(使用代理)。
  3、使用js加密網(wǎng)頁(yè)內容
  注意:我沒(méi)有接觸過(guò)這個(gè)方法,只是來(lái)自其他來(lái)源
  分析:不用分析,搜索引擎爬蟲(chóng)和采集器殺
  對于網(wǎng)站:討厭搜索引擎的網(wǎng)站和采集器
  采集器 會(huì )這樣做:你那么好,你要犧牲,他不會(huì )來(lái)接你
  4、隱藏網(wǎng)站網(wǎng)頁(yè)中的版權或一些隨機的垃圾文字,這些文字樣式寫(xiě)在css文件中
  分析:雖然不能阻止采集,但是會(huì )讓采集后面的內容被你的網(wǎng)站版權聲明或者一些垃圾文字填滿(mǎn),因為一般采集器不會(huì )采集您的 css 文件,這些文本顯示時(shí)沒(méi)有樣式。
  適用于 網(wǎng)站:所有 網(wǎng)站
  采集器怎么辦:對于版權文本,好辦,替換掉。對于隨機垃圾文本,沒(méi)辦法,快點(diǎn)。
  5、用戶(hù)登錄訪(fǎng)問(wèn)網(wǎng)站內容
  分析:搜索引擎爬蟲(chóng)不會(huì )為每一種此類(lèi)網(wǎng)站設計登錄程序。聽(tīng)說(shuō)采集器可以為某個(gè)網(wǎng)站設計模擬用戶(hù)登錄和提交表單的行為。
  對于網(wǎng)站:網(wǎng)站討厭搜索引擎,最想屏蔽采集器
  采集器 會(huì )做什么:制作一個(gè)模塊來(lái)模擬用戶(hù)登錄和提交表單的行為
  6、使用腳本語(yǔ)言進(jìn)行分頁(yè)(隱藏分頁(yè))
  分析:還是那句話(huà),搜索引擎爬蟲(chóng)不會(huì )分析各種網(wǎng)站的隱藏分頁(yè),影響搜索引擎的收錄。但是,采集作者在編寫(xiě)采集規則的時(shí)候,需要分析目標網(wǎng)頁(yè)的代碼,稍微懂一點(diǎn)腳本知識的就知道分頁(yè)的真實(shí)鏈接地址了。
  適用于網(wǎng)站:網(wǎng)站對搜索引擎依賴(lài)不高,采集你的人不懂腳本知識
  采集器會(huì )做什么:應該說(shuō)采集這個(gè)人會(huì )做什么,反正他要分析你的網(wǎng)頁(yè)代碼,順便分析一下你的分頁(yè)腳本,用不了多少額外的時(shí)間。
  7、反鏈保護措施(只允許通過(guò)本站頁(yè)面連接查看,如:Request.ServerVariables("HTTP_REFERER"))
  分析:asp和php可以通過(guò)讀取請求的HTTP_REFERER屬性來(lái)判斷請求是否來(lái)自這個(gè)網(wǎng)站,從而限制采集器,同時(shí)也限制了搜索引擎爬蟲(chóng),嚴重影響了搜索引擎對網(wǎng)站。@網(wǎng)站部分防盜鏈內容收錄。
  適用于網(wǎng)站:網(wǎng)站很少考慮搜索引擎收錄

免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 141 次瀏覽 ? 2022-04-13 18:23 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))
  2019獨角獸企業(yè)招聘Python工程師標準>>>
  
  一、簡(jiǎn)單的PageRank計算
  首先,我們將Web抽象如下: 1、將每個(gè)網(wǎng)頁(yè)抽象成一個(gè)節點(diǎn);2、如果頁(yè)面 A 有直接到 B 的鏈接,則從 A 到 B 存在有向邊(多個(gè)相同鏈接不重復計算邊)。因此,整個(gè) Web 被抽象為一個(gè)有向圖。
  現在假設世界上只有四個(gè)網(wǎng)頁(yè):A、B、C、D。抽象結構如下圖所示。顯然,這個(gè)圖是強連接的(從任何節點(diǎn),你可以到達任何其他節點(diǎn))。
  
  然后需要使用合適的數據結構來(lái)表示頁(yè)面之間的連接關(guān)系。PageRank算法就是基于這樣一個(gè)背景思想:隨機上網(wǎng)者訪(fǎng)問(wèn)的頁(yè)面越多,質(zhì)量可能就越高,而隨機上網(wǎng)者在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接跳轉到頁(yè)面,所以我們需要分析構成的超鏈接。圖結構用于估計每個(gè)網(wǎng)頁(yè)被訪(fǎng)問(wèn)的頻率。更直觀(guān)地說(shuō),一個(gè)網(wǎng)頁(yè)的 PangRank 越高,隨機瀏覽者在瀏覽該網(wǎng)頁(yè)的過(guò)程中停留在該頁(yè)面的概率就越大,該網(wǎng)頁(yè)的重要性就越高。
  為簡(jiǎn)單起見(jiàn),我們可以假設當一個(gè)隨機的沖浪者停留在一個(gè)頁(yè)面上時(shí),跳轉到該頁(yè)面上每個(gè)鏈接頁(yè)面的概率是相同的。比如上圖中,頁(yè)面A鏈接到B、C、D,所以用戶(hù)從A跳轉到B、C、D的概率各為1/3。假設總共有N個(gè)網(wǎng)頁(yè),可以組織一個(gè)N維矩陣:第i行第j列的值代表用戶(hù)從第j頁(yè)到第i頁(yè)的概率。這樣的矩陣稱(chēng)為轉移矩陣。上圖中四個(gè)網(wǎng)頁(yè)對應的轉移矩陣M如下:
  
  那么,假設隨機瀏覽者從n個(gè)頁(yè)面出來(lái)的初始概率相等,那么初始概率分布向量是一個(gè)n維的列向量V0,每個(gè)維度為1/n。這里我們有 4 頁(yè),所以 V0-1=[1/4, 1/4, 1/4, 1/4]。
  這樣,我們就可以從初始向量 V0 開(kāi)始,不斷地將轉移矩陣 M 左乘。用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接使i跳轉后,停留在每個(gè)頁(yè)面的概率為:Mi*V。停止直到最后兩次迭代在結果向量中產(chǎn)生非常小的差異。實(shí)際上,對于 Web,50 到 75 次迭代足以收斂,誤差控制在雙精度。
  以下是前四次跳轉時(shí)每次迭代后每個(gè)頁(yè)面的PageRank值:
  
  可以看出,隨著(zhù)迭代次數的增加,網(wǎng)頁(yè)A的PageRank值越來(lái)越大,接近其極限概率3/9。這也說(shuō)明隨機上網(wǎng)者停留在A(yíng)頁(yè)面的概率大于B、C、D頁(yè)面,頁(yè)面也更重要。
  二、問(wèn)題一:死胡同
  終止點(diǎn)是沒(méi)有出鏈的點(diǎn),比如下圖中的C。
  
  如果我們不對其進(jìn)行處理,讓終止點(diǎn)存在,那么隨著(zhù)PageRank迭代次數的增加,每個(gè)網(wǎng)頁(yè)的PageRank值會(huì )趨于0,這樣就無(wú)法得到網(wǎng)頁(yè)相對重要性的信息.
  
  通過(guò)從圖中刪除它們及其傳入鏈來(lái)處理終止。這樣做之后,可以生成更多的端點(diǎn),并繼續迭代消除端點(diǎn)。但最終我們得到了一個(gè)強連通子圖,其中所有節點(diǎn)都是非終端的。我們以左圖為例進(jìn)行說(shuō)明。按照上述步驟消除終止點(diǎn)后得到左圖,得到右圖。
  
  我們得到右圖對應的轉移矩陣,計算圖中A、B、C的PageRank值。
  
  我們得到A、B、C的PageRank值分別為2/9、4/9、3/9,然后按照刪除的逆序計算C、E的PageRank值. 由于 C 是最后被刪除的,因此首先計算 C 的 PageRank 值。A有3個(gè)外鏈,所以它貢獻了1/3的PageRank值給C。D有3個(gè)外鏈,所以它貢獻了1/2的PageRank值給C。所以C的PageRank為
  
  . E的入鏈只有C,C的出鏈只有E,所以E的PageRank值等于C的PageRank值。
  需要注意的是,當前所有節點(diǎn)的PageRank值之和已經(jīng)超過(guò)1,因此不能代表隨機瀏覽者的概率分布,但仍能反映對頁(yè)面相對重要性的合理估計。
  三、問(wèn)題2:采集器蜘蛛陷阱
  采集器陷阱是一組節點(diǎn),雖然它們都不是終止點(diǎn),但它們都沒(méi)有出鏈指向該集合之外的其他節點(diǎn)。采集器 陷阱導致計算時(shí)將所有 PageRank 值分配給 采集器 陷阱內的節點(diǎn)。
  如下圖所示,C是一個(gè)單節點(diǎn)采集器陷阱及其轉移矩陣。
  
  隨著(zhù)迭代的進(jìn)行,C 的 PageRank 值趨于 1,而其他不在 采集器 陷阱中的節點(diǎn)的 PageRank 值趨于 0。
  
  采集器 陷阱的處理方式是允許每個(gè)隨機瀏覽者隨機跳轉到一個(gè)隨機頁(yè)面,跳轉概率很小,而不必遵循當前頁(yè)面上的外鏈。因此,根據上一次PageRank估計值V和轉移矩陣M估計下一次迭代后的PageRank值V'的迭代公式變?yōu)椋?br />   
  其中 β 是一個(gè)選定的常數,通常介于 0.8 和 0.9 之間。e 是一個(gè)向量,其分量全為 1,維度為 n,其中 n 是 Web 圖中所有節點(diǎn)的個(gè)數。βMv 表示隨機沖浪者以概率 β 從當前網(wǎng)頁(yè)中選擇外鏈向前移動(dòng)的情況。(1?β)e/n 是一個(gè)所有分量為 (1?β)/n 的向量,它表示一個(gè)新的隨機沖浪者具有 (1?β) 概率隨機選擇要訪(fǎng)問(wèn)的網(wǎng)頁(yè)。
  取β=0.8,上圖的迭代公式變?yōu)椋?br />   
  以下是之前迭代的結果:
  
  作為一個(gè)采集器 陷阱,C 獲得了超過(guò)一半的 PageRank 值,但這種影響是有限的,并且每個(gè)其他節點(diǎn)也獲得了一些 PageRank 值。
  -------------------------------------------------
  參考:
  《大數據:互聯(lián)網(wǎng)大規模數據挖掘與分布式處理》王斌老師_ICTIR及其對應英文電子書(shū)《海量數據集挖掘》 查看全部

  免規則采集器列表算法(2019獨角獸企業(yè)重金招聘Python工程師標準(gt)(圖))
  2019獨角獸企業(yè)招聘Python工程師標準>>>
  
  一、簡(jiǎn)單的PageRank計算
  首先,我們將Web抽象如下: 1、將每個(gè)網(wǎng)頁(yè)抽象成一個(gè)節點(diǎn);2、如果頁(yè)面 A 有直接到 B 的鏈接,則從 A 到 B 存在有向邊(多個(gè)相同鏈接不重復計算邊)。因此,整個(gè) Web 被抽象為一個(gè)有向圖。
  現在假設世界上只有四個(gè)網(wǎng)頁(yè):A、B、C、D。抽象結構如下圖所示。顯然,這個(gè)圖是強連接的(從任何節點(diǎn),你可以到達任何其他節點(diǎn))。
  
  然后需要使用合適的數據結構來(lái)表示頁(yè)面之間的連接關(guān)系。PageRank算法就是基于這樣一個(gè)背景思想:隨機上網(wǎng)者訪(fǎng)問(wèn)的頁(yè)面越多,質(zhì)量可能就越高,而隨機上網(wǎng)者在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接跳轉到頁(yè)面,所以我們需要分析構成的超鏈接。圖結構用于估計每個(gè)網(wǎng)頁(yè)被訪(fǎng)問(wèn)的頻率。更直觀(guān)地說(shuō),一個(gè)網(wǎng)頁(yè)的 PangRank 越高,隨機瀏覽者在瀏覽該網(wǎng)頁(yè)的過(guò)程中停留在該頁(yè)面的概率就越大,該網(wǎng)頁(yè)的重要性就越高。
  為簡(jiǎn)單起見(jiàn),我們可以假設當一個(gè)隨機的沖浪者停留在一個(gè)頁(yè)面上時(shí),跳轉到該頁(yè)面上每個(gè)鏈接頁(yè)面的概率是相同的。比如上圖中,頁(yè)面A鏈接到B、C、D,所以用戶(hù)從A跳轉到B、C、D的概率各為1/3。假設總共有N個(gè)網(wǎng)頁(yè),可以組織一個(gè)N維矩陣:第i行第j列的值代表用戶(hù)從第j頁(yè)到第i頁(yè)的概率。這樣的矩陣稱(chēng)為轉移矩陣。上圖中四個(gè)網(wǎng)頁(yè)對應的轉移矩陣M如下:
  
  那么,假設隨機瀏覽者從n個(gè)頁(yè)面出來(lái)的初始概率相等,那么初始概率分布向量是一個(gè)n維的列向量V0,每個(gè)維度為1/n。這里我們有 4 頁(yè),所以 V0-1=[1/4, 1/4, 1/4, 1/4]。
  這樣,我們就可以從初始向量 V0 開(kāi)始,不斷地將轉移矩陣 M 左乘。用戶(hù)在瀏覽網(wǎng)頁(yè)時(shí)主要通過(guò)超鏈接使i跳轉后,停留在每個(gè)頁(yè)面的概率為:Mi*V。停止直到最后兩次迭代在結果向量中產(chǎn)生非常小的差異。實(shí)際上,對于 Web,50 到 75 次迭代足以收斂,誤差控制在雙精度。
  以下是前四次跳轉時(shí)每次迭代后每個(gè)頁(yè)面的PageRank值:
  
  可以看出,隨著(zhù)迭代次數的增加,網(wǎng)頁(yè)A的PageRank值越來(lái)越大,接近其極限概率3/9。這也說(shuō)明隨機上網(wǎng)者停留在A(yíng)頁(yè)面的概率大于B、C、D頁(yè)面,頁(yè)面也更重要。
  二、問(wèn)題一:死胡同
  終止點(diǎn)是沒(méi)有出鏈的點(diǎn),比如下圖中的C。
  
  如果我們不對其進(jìn)行處理,讓終止點(diǎn)存在,那么隨著(zhù)PageRank迭代次數的增加,每個(gè)網(wǎng)頁(yè)的PageRank值會(huì )趨于0,這樣就無(wú)法得到網(wǎng)頁(yè)相對重要性的信息.
  
  通過(guò)從圖中刪除它們及其傳入鏈來(lái)處理終止。這樣做之后,可以生成更多的端點(diǎn),并繼續迭代消除端點(diǎn)。但最終我們得到了一個(gè)強連通子圖,其中所有節點(diǎn)都是非終端的。我們以左圖為例進(jìn)行說(shuō)明。按照上述步驟消除終止點(diǎn)后得到左圖,得到右圖。
  
  我們得到右圖對應的轉移矩陣,計算圖中A、B、C的PageRank值。
  
  我們得到A、B、C的PageRank值分別為2/9、4/9、3/9,然后按照刪除的逆序計算C、E的PageRank值. 由于 C 是最后被刪除的,因此首先計算 C 的 PageRank 值。A有3個(gè)外鏈,所以它貢獻了1/3的PageRank值給C。D有3個(gè)外鏈,所以它貢獻了1/2的PageRank值給C。所以C的PageRank為
  
  . E的入鏈只有C,C的出鏈只有E,所以E的PageRank值等于C的PageRank值。
  需要注意的是,當前所有節點(diǎn)的PageRank值之和已經(jīng)超過(guò)1,因此不能代表隨機瀏覽者的概率分布,但仍能反映對頁(yè)面相對重要性的合理估計。
  三、問(wèn)題2:采集器蜘蛛陷阱
  采集器陷阱是一組節點(diǎn),雖然它們都不是終止點(diǎn),但它們都沒(méi)有出鏈指向該集合之外的其他節點(diǎn)。采集器 陷阱導致計算時(shí)將所有 PageRank 值分配給 采集器 陷阱內的節點(diǎn)。
  如下圖所示,C是一個(gè)單節點(diǎn)采集器陷阱及其轉移矩陣。
  
  隨著(zhù)迭代的進(jìn)行,C 的 PageRank 值趨于 1,而其他不在 采集器 陷阱中的節點(diǎn)的 PageRank 值趨于 0。
  
  采集器 陷阱的處理方式是允許每個(gè)隨機瀏覽者隨機跳轉到一個(gè)隨機頁(yè)面,跳轉概率很小,而不必遵循當前頁(yè)面上的外鏈。因此,根據上一次PageRank估計值V和轉移矩陣M估計下一次迭代后的PageRank值V'的迭代公式變?yōu)椋?br />   
  其中 β 是一個(gè)選定的常數,通常介于 0.8 和 0.9 之間。e 是一個(gè)向量,其分量全為 1,維度為 n,其中 n 是 Web 圖中所有節點(diǎn)的個(gè)數。βMv 表示隨機沖浪者以概率 β 從當前網(wǎng)頁(yè)中選擇外鏈向前移動(dòng)的情況。(1?β)e/n 是一個(gè)所有分量為 (1?β)/n 的向量,它表示一個(gè)新的隨機沖浪者具有 (1?β) 概率隨機選擇要訪(fǎng)問(wèn)的網(wǎng)頁(yè)。
  取β=0.8,上圖的迭代公式變?yōu)椋?br />   
  以下是之前迭代的結果:
  
  作為一個(gè)采集器 陷阱,C 獲得了超過(guò)一半的 PageRank 值,但這種影響是有限的,并且每個(gè)其他節點(diǎn)也獲得了一些 PageRank 值。
  -------------------------------------------------
  參考:
  《大數據:互聯(lián)網(wǎng)大規模數據挖掘與分布式處理》王斌老師_ICTIR及其對應英文電子書(shū)《海量數據集挖掘》

免規則采集器列表算法( 基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 165 次瀏覽 ? 2022-04-12 22:04 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))
  
  這個(gè)文章的研究?jì)热菔牵壕哂幸巹澞芰Φ腶gent。
  在此之前,許多研究都使用了基于樹(shù)的規劃方法。然而,在實(shí)際的業(yè)務(wù)應用中,動(dòng)態(tài)控制/仿真環(huán)境往往是復雜且未知的。
  這篇文章文章 提出了一種算法:MuZero,它通過(guò)將基于樹(shù)的搜索與學(xué)習模型相結合,在不了解環(huán)境底層動(dòng)態(tài)的情況下可以很好地執行。這很好。
  這里的學(xué)習模型實(shí)際上是迭代應用的,可以預測與計劃最相關(guān)的獎勵、行動(dòng)選擇策略和價(jià)值函數。
  所以,總而言之,MuZero 的研究目標有兩個(gè):
  下面就開(kāi)始看具體的作品吧!
  1 算法簡(jiǎn)介1.1 背景
  基于前瞻搜索的規劃算法有很多應用。然而,這些規劃算法都依賴(lài)于精確的模擬器和嚴格的規則,無(wú)法直接用于現實(shí)世界。
  我們知道強化學(xué)習算法分為基于模型和無(wú)模型。一般來(lái)說(shuō),我們的研究側重于無(wú)模型方法,即直接從與環(huán)境的交互中估計最優(yōu)策略和價(jià)值函數。這些方法在某些視頻游戲中運行良好,例如 Atari。但是,無(wú)模型在需要精確和復雜前瞻的領(lǐng)域(例如圍棋或國際象棋)中效果較差。
  在一般的基于模型的強化學(xué)習方法中,模型實(shí)際上是一個(gè)概率分布,也就是構建一個(gè)真實(shí)的環(huán)境,或者說(shuō)是一個(gè)完整的觀(guān)察。首先從環(huán)境的動(dòng)態(tài)中學(xué)習一個(gè)模型,然后根據學(xué)習到的模型進(jìn)行規劃。但在 Atari 游戲實(shí)驗中,性能不如 Model-based。
  本文文章介紹了一種新的基于模型的強化學(xué)習方法MuZero,它不僅可以在視覺(jué)復雜的Atari上表現出色,而且在精確規劃任務(wù)中也表現出色。這很好,
  MuZero 算法基于 AlphaZero 強大的搜索和基于搜索的策略算法,在訓練過(guò)程中加入了一個(gè)學(xué)習模型。
  除此之外,MuZero 將 AlphaZero 擴展到更廣泛的環(huán)境,包括單個(gè)代理域和中間時(shí)間步長(cháng)的非零獎勵。
  小總結:
  規劃(planning algorithm)是一個(gè)難點(diǎn)研究。眾所周知的 AlphaGo 是一種基于樹(shù)的規劃算法,但此類(lèi)算法需要完美的環(huán)境模型,這在現實(shí)世界中很難滿(mǎn)足。
  DeepMind 的 MuZero 算法是基于模型的 RL 領(lǐng)域的里程碑式成就,在促進(jìn)強化學(xué)習解決現實(shí)問(wèn)題方面邁出了新的一步。1.2 理解算法的思想
  首先介紹一下MuZero算法的思想:
  MuZero算法的主要思想是構造一個(gè)抽象的MDP模型,在這個(gè)MDP模型上,預測與Planning直接相關(guān)的未來(lái)數據(策略、價(jià)值函數和獎勵),并在此基礎上預測數據進(jìn)行規劃。
  那么為什么要這樣做,為什么它會(huì )起作用?讓我們將論文中的內容“分解”和“粉碎”來(lái)理解算法的思想:
  1.2.1 為什么要抽象
  我們知道,大多數基于模型的強化學(xué)習方法都會(huì )學(xué)習對應于真實(shí)環(huán)境的動(dòng)態(tài)模型。
  但是,如果是用于 Planning,我們并不關(guān)心 Dynamics Model 是否準確地還原了真實(shí)環(huán)境。
  只要這個(gè) Dynamics Model 給出的未來(lái)每一步的價(jià)值和回報接近真實(shí)環(huán)境中的價(jià)值,我們就可以將其作為 Planning 中的模擬器。
  MuZero 算法是首先將真實(shí)環(huán)境中通過(guò)編碼器(表示函數)獲得的狀態(tài)轉換為沒(méi)有直接約束的抽象狀態(tài)空間(abstract state space)中的隱藏狀態(tài)(hidden state)。狀態(tài)并假設循環(huán)迭代的下一個(gè)動(dòng)作)。
  然后在這個(gè)抽象的狀態(tài)空間中,學(xué)習Dynamics Model和價(jià)值預測,預測每個(gè)隱藏狀態(tài)上的策略(這就是和本文的區別),得到Policy Prediction Network。
  然后,使用蒙特卡洛樹(shù)搜索,使用 Dynamics Model 作為模擬器,在抽象狀態(tài)空間中做 Planning,預測接下來(lái)幾個(gè)步驟的策略、價(jià)值函數和獎勵。
  這里的隱藏狀態(tài)是不適合真實(shí)環(huán)境的。取而代之的是,在抽象狀態(tài)空間中訓練的 Dynamics Model 和價(jià)值預測網(wǎng)絡(luò )可以預測在初始隱藏狀態(tài)和執行接下來(lái)的 k 步后接下來(lái) k 步的價(jià)值和獎勵,以及通過(guò)搜索得到的價(jià)值和獎勵在真實(shí)環(huán)境中。觀(guān)察到的獎勵盡可能接近。
  簡(jiǎn)單來(lái)說(shuō),就是先在虛擬狀態(tài)空間中學(xué)習一個(gè)環(huán)境模型,然后在不與真實(shí)環(huán)境過(guò)多交互的情況下,根據學(xué)習到的環(huán)境模型進(jìn)行規劃。
  1.2.2 為什么有效
  那么我們如何保證抽象MDP中的規劃與真實(shí)環(huán)境中的規劃是等價(jià)的呢?
  這種等價(jià)是通過(guò)確保價(jià)值等價(jià)來(lái)實(shí)現的。
  也就是說(shuō),從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象 MDP 的軌跡累積獎勵與真實(shí)環(huán)境中軌跡的累積獎勵相匹配。
  2 型號圖解說(shuō)明
  首先,整體數據是模型的數學(xué)表達式:
  給定一個(gè)隱藏狀態(tài)和一個(gè)候選動(dòng)作,動(dòng)態(tài)模型需要生成一個(gè)即時(shí)獎勵和一個(gè)新的隱藏狀態(tài)。策略和價(jià)值函數是由預測函數從輸入中計算出來(lái)的。操作是從搜索策略中采樣的。環(huán)境收到一個(gè)動(dòng)作以產(chǎn)生新的觀(guān)察和獎勵。
  接下來(lái)通過(guò)圖文結合的方式,具體講講如何使用學(xué)習到的模型進(jìn)行策劃、演戲、訓練。
  2.1 MuZero中模型的組成
  MuZero 如何使用該模型進(jìn)行規劃?我們看圖A:
  
  所謂模型由以下3個(gè)相互關(guān)聯(lián)的部分組成:
  2.2 MuZero 如何與環(huán)境交互并做出決策
  圖 A 中描述的是,在每一步中,隱藏狀態(tài)執行蒙特卡洛樹(shù)搜索到下一個(gè)動(dòng)作。
  那么 MuZero 是如何在環(huán)境中做出決策的呢?
  下圖是橫看各招的情況:
  
  對于子圖1描述的情況(一黑一白),使用蒙特卡洛樹(shù)搜索對其建模得到一個(gè)策略網(wǎng)絡(luò ),并對策略網(wǎng)絡(luò )進(jìn)行采樣選擇可執行動(dòng)作,這個(gè)動(dòng)作與訪(fǎng)問(wèn)量成正比MCTS 根節點(diǎn)的每個(gè)操作的計數。
  執行動(dòng)作后,得到獎勵,得到下一時(shí)刻的觀(guān)察(子圖2),同樣使用MCTS進(jìn)行建模,得到策略網(wǎng)絡(luò ),選擇可執行動(dòng)作。
  環(huán)境接受動(dòng)作,產(chǎn)生新的觀(guān)察和獎勵,產(chǎn)生子圖 3。
  這樣,軌跡數據在劇集結束時(shí)存儲在重放緩沖區中。這是一個(gè)決定。
  2.3 MuZero 如何訓練模型
  那么 MuZero 是如何訓練模型的呢?讓我們看看下面的過(guò)程:
  
  對 Replay Buffer 中的軌跡數據進(jìn)行采樣,選擇一個(gè)序列,然后針對該軌跡運行 MuZero 模型。
  在初始步驟中,編碼器表示函數接受來(lái)自所選軌跡的過(guò)去觀(guān)察。
  隨后,模型展開(kāi)一個(gè) K 步循環(huán)。
  在第 k 步中,生成器動(dòng)力學(xué)函數接收上一步的隱藏狀態(tài)和實(shí)際動(dòng)作。
  編碼器表示函數、生成器動(dòng)力學(xué)函數、預測器預測函數的參數可以通過(guò)backpropagation-through-time的端到端聯(lián)合訓練來(lái)預測,可以預測三個(gè)量:
  其中是樣本回報,例如棋盤(pán)游戲中的最終獎勵,或 Atari 中 n 步的獎勵。
  3 MuZero算法詳解3.1 價(jià)值網(wǎng)絡(luò )和策略網(wǎng)絡(luò )
  MuZero 是一種機器學(xué)習算法,因此很自然地首先要了解它是如何使用神經(jīng)網(wǎng)絡(luò )的。
  簡(jiǎn)而言之,該算法使用了 AlphaGo 和 AlphaZero 的策略和價(jià)值網(wǎng)絡(luò ):
  
  政策網(wǎng)絡(luò )和價(jià)值網(wǎng)絡(luò )的直觀(guān)含義如下:
  根據策略網(wǎng)絡(luò ),可以預測每一步的動(dòng)作;依靠?jì)r(jià)值網(wǎng)絡(luò ),可以選擇價(jià)值最高的動(dòng)作。結合這兩個(gè)估計可以得到更好的結果。
  3.2 MuZero中的蒙特卡洛樹(shù)搜索3.2.1 MCTS簡(jiǎn)介
  MuZero 還使用 MCTS(蒙特卡洛樹(shù)搜索)聚合神經(jīng)網(wǎng)絡(luò )來(lái)預測和選擇當前環(huán)境中的下一個(gè)動(dòng)作。到達終點(diǎn)后,樹(shù)中的每個(gè)節點(diǎn)都會(huì )存儲一些相關(guān)的參數,包括訪(fǎng)問(wèn)次數、輪數、前一個(gè)動(dòng)作的概率、子節點(diǎn)以及是否有對應的隱藏狀態(tài)和獎勵。
  蒙特卡洛樹(shù)搜索是一個(gè)迭代的、最佳優(yōu)先的樹(shù)搜索過(guò)程。目標是幫助我們弄清楚要采取哪些行動(dòng)來(lái)最大化長(cháng)期利益。
  Best first,這意味著(zhù)搜索樹(shù)的擴展取決于搜索樹(shù)中的值估計。
  與常見(jiàn)的深度優(yōu)先和廣度優(yōu)先相比,最佳優(yōu)先搜索可以利用深度神經(jīng)網(wǎng)絡(luò )的啟發(fā)式估計,在非常大的搜索空間中找到最優(yōu)解。
  蒙特卡洛樹(shù)搜索有四個(gè)主要階段:
  通過(guò)重復這些階段,MCTS 每次都在節點(diǎn)可能的未來(lái)動(dòng)作序列上逐步構建搜索樹(shù)。在這棵樹(shù)中,每個(gè)節點(diǎn)代表一個(gè)未來(lái)狀態(tài),節點(diǎn)之間的線(xiàn)代表從一個(gè)狀態(tài)到下一個(gè)狀態(tài)的動(dòng)作。
  3.22 MuZero算法中MCTS的四個(gè)階段
  接下來(lái)我們對應MuZero算法中的蒙特卡洛樹(shù)搜索,看看上面四個(gè)階段分別對應什么:
  
  我們先來(lái)看看模擬。
  模擬過(guò)程與蒙特卡羅方法類(lèi)似,推導速度快。為了得到某個(gè)狀態(tài)的初始分數,讓游戲隨機玩到最后,記錄模擬次數和獲勝次數。
  接下來(lái)是選擇。
  雖然 Muzero 不知道游戲規則,但它知道該采取哪些步驟。在每個(gè)節點(diǎn)(狀態(tài) s),使用評分函數比較不同的動(dòng)作,并選擇得分最高的最佳動(dòng)作。
  
  每次選擇一個(gè)動(dòng)作時(shí),我們都會(huì )為 UCB 縮放因子 c 和后續動(dòng)作選擇增加其關(guān)聯(lián)的訪(fǎng)問(wèn)計數 N(s,a)。
  模擬沿著(zhù)樹(shù)向下進(jìn)行到尚未擴展的葉子。此時(shí),應用神經(jīng)網(wǎng)絡(luò )對節點(diǎn)進(jìn)行評估,將評估結果(優(yōu)先級和值估計)存儲在節點(diǎn)中。
  然后是擴展。
  選擇動(dòng)作 A 后,在搜索樹(shù)中生成一個(gè)新節點(diǎn),對應動(dòng)作 A 執行后前一個(gè)狀態(tài)的情況。
  最后回溯。
  模擬結束后,從子節點(diǎn)開(kāi)始沿著(zhù)剛剛下的路徑返回,沿途更新每個(gè)父節點(diǎn)的統計信息。每個(gè)節點(diǎn)都持有其下所有價(jià)值估計的連續平均值,這使得 UCB 公式可以隨著(zhù)時(shí)間的推移做出越來(lái)越準確的決策,確保 MCTS 收斂到最優(yōu)動(dòng)作。
  3.2.3 中級獎勵
  
  事實(shí)上,在 MCTS 的過(guò)程中,也收錄了對中間獎勵 r 的預測。
  在某些情況下,游戲完全結束后需要輸贏(yíng)反饋,這可以通過(guò)價(jià)值估計來(lái)建模。但是在頻繁反饋的情況下,從一種狀態(tài)到另一種狀態(tài)的每次轉換都會(huì )得到獎勵 r。
  因此,獎勵直接通過(guò)神經(jīng)網(wǎng)絡(luò )預測建模并用于搜索。在 UCB 策略中引入中間獎勵:
  其中是在狀態(tài) s 執行動(dòng)作 a 后觀(guān)察到的獎勵,折扣因子是對未來(lái)獎勵的關(guān)注程度。
  由于在某些環(huán)境中獎勵是無(wú)界的,因此可以將獎勵和價(jià)值估計歸一化到 [0,1] 期間,然后與先驗知識相結合:
  其中 和 分別是在整個(gè)搜索樹(shù)中觀(guān)察到的最大和最小估計值。
  3.3 總體說(shuō)明
  基于過(guò)去的觀(guān)察和未來(lái)的行為,對于給定步驟中的每一步,使用帶有參數的模型在每個(gè)時(shí)間步進(jìn)行預測。
  該模型預測 3 個(gè)數量:
  其中是地面實(shí)況觀(guān)察獎勵,是策略,是折扣因子。
  說(shuō)白了就是獲取過(guò)去的觀(guān)察數據,編碼成當前的隱藏狀態(tài),然后給出未來(lái)的動(dòng)作,然后在隱藏狀態(tài)空間進(jìn)行規劃。
  3.4 步分解
  在每個(gè)步驟中,模型由表示函數、動(dòng)力學(xué)函數和預測函數組成:
  使用這樣的模型,可以根據過(guò)去的觀(guān)察來(lái)搜索虛擬的未來(lái)軌跡。
  例如,可以簡(jiǎn)單地選擇 k 步動(dòng)作序列來(lái)搜索最大化價(jià)值函數。
  也可以使用類(lèi)似于 AlphaZero 搜索的 MCTS 算法來(lái)獲取策略和估計值,然后從策略中選擇動(dòng)作。此外,執行操作并生成中間獎勵和狀態(tài)空間。
  在第 k 步,通過(guò)聯(lián)合訓練模型的所有參數,將策略、價(jià)值和獎勵與實(shí)際觀(guān)察到的目標值圖像進(jìn)行匹配。
  模型的所有參數都經(jīng)過(guò)聯(lián)合訓練,使得每個(gè)假設步 k 的策略、值和獎勵與 k 個(gè)實(shí)際時(shí)間步后觀(guān)察到的相應目標值完全匹配。
  使用 MCTS,可以使用三個(gè)改進(jìn)的策略目標:
  最后加上L2正則化項得到最終的損失函數:
  4 總結
  強化學(xué)習分為兩類(lèi):基于模型的和無(wú)模型的。
  其中,基于模型的強化學(xué)習方法需要構建環(huán)境模型。通常,環(huán)境模型由馬爾可夫決策過(guò)程(MDP)表示。該過(guò)程由兩部分組成:
  模型通常針對選定的動(dòng)作或時(shí)間抽象的行為進(jìn)行訓練。一旦模型建立,MDP 規劃算法(例如:值迭代、蒙特卡洛樹(shù)搜索 MCTS)可以直接用于計算 MDP 的最優(yōu)值或最優(yōu)策略。
  因此,在復雜環(huán)境或局部觀(guān)察的情況下,很難構建模型應該預測的狀態(tài)表示。因為Agent沒(méi)有辦法優(yōu)化“有效規劃的目的”的表示和模型,這就導致了表示學(xué)習、模型學(xué)習和規劃之間的分離。
  另一方面,MuZero 是一種完全不同的基于模型的強化學(xué)習方法,專(zhuān)注于端到端的預測函數。主要思想是構造一個(gè)抽象的MDP模型,使抽象MDP中的規劃等價(jià)于真實(shí)環(huán)境中的規劃。
  這種等價(jià)是通過(guò)保證價(jià)值等價(jià)來(lái)實(shí)現的,即從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象MDP獲得的軌跡累積獎勵與真實(shí)環(huán)境中的軌跡累積獎勵相匹配。
  預測器首先引入價(jià)值等價(jià)模型來(lái)預測價(jià)值而無(wú)需采取行動(dòng)。
  雖然底層模型是 MDP,但它的變換模型不需要匹配環(huán)境中的真實(shí)狀態(tài),只需將 MDP 模型視為深度神經(jīng)網(wǎng)絡(luò )中的隱藏層即可。展開(kāi)的 MDP 被訓練,例如通過(guò)時(shí)間差異學(xué)習,以將累積獎勵的預期總和與實(shí)際環(huán)境的預期值相匹配。
  然后,將價(jià)值等價(jià)模型擴展為以行動(dòng)優(yōu)化價(jià)值。TreeQN 學(xué)習一個(gè)抽象的 MDP 模型,以便在該模型上的樹(shù)搜索(由樹(shù)結構的神經(jīng)網(wǎng)絡(luò )表示)近似于最優(yōu)值函數。值迭代網(wǎng)絡(luò )學(xué)習一個(gè)局部 MDP 模型,使得該模型上的值迭代(由卷積神經(jīng)網(wǎng)絡(luò )表示)接近最優(yōu)值函數。
  價(jià)值預測網(wǎng)絡(luò )更接近于 MuZero:根據實(shí)際動(dòng)作學(xué)習一個(gè) MDP 模型;對展開(kāi)的 MDP 進(jìn)行訓練,以使獎勵的累積總和(以簡(jiǎn)單前向搜索產(chǎn)生的實(shí)際動(dòng)作序列為條件)與真實(shí)環(huán)境匹配一致。如果沒(méi)有策略預測,則搜索僅使用值預測。
  通過(guò)論文的學(xué)習,雖然理解了MuZero算法的思想,但是在實(shí)際項目中使用MuZero還是比較困難的。
  比如如何設計表示、動(dòng)態(tài)、預測等,這些都需要在對代碼實(shí)現非常熟悉的情況下結合具體的業(yè)務(wù)場(chǎng)景來(lái)實(shí)現。
  提供基于pytorch的muzero算法實(shí)現:
  如果有時(shí)間,我會(huì )繼續研究代碼并嘗試復現論文。
  結束 查看全部

  免規則采集器列表算法(
基于樹(shù)的搜索(tree-search),不能的研究目的有兩個(gè))
  
  這個(gè)文章的研究?jì)热菔牵壕哂幸巹澞芰Φ腶gent。
  在此之前,許多研究都使用了基于樹(shù)的規劃方法。然而,在實(shí)際的業(yè)務(wù)應用中,動(dòng)態(tài)控制/仿真環(huán)境往往是復雜且未知的。
  這篇文章文章 提出了一種算法:MuZero,它通過(guò)將基于樹(shù)的搜索與學(xué)習模型相結合,在不了解環(huán)境底層動(dòng)態(tài)的情況下可以很好地執行。這很好。
  這里的學(xué)習模型實(shí)際上是迭代應用的,可以預測與計劃最相關(guān)的獎勵、行動(dòng)選擇策略和價(jià)值函數。
  所以,總而言之,MuZero 的研究目標有兩個(gè):
  下面就開(kāi)始看具體的作品吧!
  1 算法簡(jiǎn)介1.1 背景
  基于前瞻搜索的規劃算法有很多應用。然而,這些規劃算法都依賴(lài)于精確的模擬器和嚴格的規則,無(wú)法直接用于現實(shí)世界。
  我們知道強化學(xué)習算法分為基于模型和無(wú)模型。一般來(lái)說(shuō),我們的研究側重于無(wú)模型方法,即直接從與環(huán)境的交互中估計最優(yōu)策略和價(jià)值函數。這些方法在某些視頻游戲中運行良好,例如 Atari。但是,無(wú)模型在需要精確和復雜前瞻的領(lǐng)域(例如圍棋或國際象棋)中效果較差。
  在一般的基于模型的強化學(xué)習方法中,模型實(shí)際上是一個(gè)概率分布,也就是構建一個(gè)真實(shí)的環(huán)境,或者說(shuō)是一個(gè)完整的觀(guān)察。首先從環(huán)境的動(dòng)態(tài)中學(xué)習一個(gè)模型,然后根據學(xué)習到的模型進(jìn)行規劃。但在 Atari 游戲實(shí)驗中,性能不如 Model-based。
  本文文章介紹了一種新的基于模型的強化學(xué)習方法MuZero,它不僅可以在視覺(jué)復雜的Atari上表現出色,而且在精確規劃任務(wù)中也表現出色。這很好,
  MuZero 算法基于 AlphaZero 強大的搜索和基于搜索的策略算法,在訓練過(guò)程中加入了一個(gè)學(xué)習模型。
  除此之外,MuZero 將 AlphaZero 擴展到更廣泛的環(huán)境,包括單個(gè)代理域和中間時(shí)間步長(cháng)的非零獎勵。
  小總結:
  規劃(planning algorithm)是一個(gè)難點(diǎn)研究。眾所周知的 AlphaGo 是一種基于樹(shù)的規劃算法,但此類(lèi)算法需要完美的環(huán)境模型,這在現實(shí)世界中很難滿(mǎn)足。
  DeepMind 的 MuZero 算法是基于模型的 RL 領(lǐng)域的里程碑式成就,在促進(jìn)強化學(xué)習解決現實(shí)問(wèn)題方面邁出了新的一步。1.2 理解算法的思想
  首先介紹一下MuZero算法的思想:
  MuZero算法的主要思想是構造一個(gè)抽象的MDP模型,在這個(gè)MDP模型上,預測與Planning直接相關(guān)的未來(lái)數據(策略、價(jià)值函數和獎勵),并在此基礎上預測數據進(jìn)行規劃。
  那么為什么要這樣做,為什么它會(huì )起作用?讓我們將論文中的內容“分解”和“粉碎”來(lái)理解算法的思想:
  1.2.1 為什么要抽象
  我們知道,大多數基于模型的強化學(xué)習方法都會(huì )學(xué)習對應于真實(shí)環(huán)境的動(dòng)態(tài)模型。
  但是,如果是用于 Planning,我們并不關(guān)心 Dynamics Model 是否準確地還原了真實(shí)環(huán)境。
  只要這個(gè) Dynamics Model 給出的未來(lái)每一步的價(jià)值和回報接近真實(shí)環(huán)境中的價(jià)值,我們就可以將其作為 Planning 中的模擬器。
  MuZero 算法是首先將真實(shí)環(huán)境中通過(guò)編碼器(表示函數)獲得的狀態(tài)轉換為沒(méi)有直接約束的抽象狀態(tài)空間(abstract state space)中的隱藏狀態(tài)(hidden state)。狀態(tài)并假設循環(huán)迭代的下一個(gè)動(dòng)作)。
  然后在這個(gè)抽象的狀態(tài)空間中,學(xué)習Dynamics Model和價(jià)值預測,預測每個(gè)隱藏狀態(tài)上的策略(這就是和本文的區別),得到Policy Prediction Network。
  然后,使用蒙特卡洛樹(shù)搜索,使用 Dynamics Model 作為模擬器,在抽象狀態(tài)空間中做 Planning,預測接下來(lái)幾個(gè)步驟的策略、價(jià)值函數和獎勵。
  這里的隱藏狀態(tài)是不適合真實(shí)環(huán)境的。取而代之的是,在抽象狀態(tài)空間中訓練的 Dynamics Model 和價(jià)值預測網(wǎng)絡(luò )可以預測在初始隱藏狀態(tài)和執行接下來(lái)的 k 步后接下來(lái) k 步的價(jià)值和獎勵,以及通過(guò)搜索得到的價(jià)值和獎勵在真實(shí)環(huán)境中。觀(guān)察到的獎勵盡可能接近。
  簡(jiǎn)單來(lái)說(shuō),就是先在虛擬狀態(tài)空間中學(xué)習一個(gè)環(huán)境模型,然后在不與真實(shí)環(huán)境過(guò)多交互的情況下,根據學(xué)習到的環(huán)境模型進(jìn)行規劃。
  1.2.2 為什么有效
  那么我們如何保證抽象MDP中的規劃與真實(shí)環(huán)境中的規劃是等價(jià)的呢?
  這種等價(jià)是通過(guò)確保價(jià)值等價(jià)來(lái)實(shí)現的。
  也就是說(shuō),從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象 MDP 的軌跡累積獎勵與真實(shí)環(huán)境中軌跡的累積獎勵相匹配。
  2 型號圖解說(shuō)明
  首先,整體數據是模型的數學(xué)表達式:
  給定一個(gè)隱藏狀態(tài)和一個(gè)候選動(dòng)作,動(dòng)態(tài)模型需要生成一個(gè)即時(shí)獎勵和一個(gè)新的隱藏狀態(tài)。策略和價(jià)值函數是由預測函數從輸入中計算出來(lái)的。操作是從搜索策略中采樣的。環(huán)境收到一個(gè)動(dòng)作以產(chǎn)生新的觀(guān)察和獎勵。
  接下來(lái)通過(guò)圖文結合的方式,具體講講如何使用學(xué)習到的模型進(jìn)行策劃、演戲、訓練。
  2.1 MuZero中模型的組成
  MuZero 如何使用該模型進(jìn)行規劃?我們看圖A:
  
  所謂模型由以下3個(gè)相互關(guān)聯(lián)的部分組成:
  2.2 MuZero 如何與環(huán)境交互并做出決策
  圖 A 中描述的是,在每一步中,隱藏狀態(tài)執行蒙特卡洛樹(shù)搜索到下一個(gè)動(dòng)作。
  那么 MuZero 是如何在環(huán)境中做出決策的呢?
  下圖是橫看各招的情況:
  
  對于子圖1描述的情況(一黑一白),使用蒙特卡洛樹(shù)搜索對其建模得到一個(gè)策略網(wǎng)絡(luò ),并對策略網(wǎng)絡(luò )進(jìn)行采樣選擇可執行動(dòng)作,這個(gè)動(dòng)作與訪(fǎng)問(wèn)量成正比MCTS 根節點(diǎn)的每個(gè)操作的計數。
  執行動(dòng)作后,得到獎勵,得到下一時(shí)刻的觀(guān)察(子圖2),同樣使用MCTS進(jìn)行建模,得到策略網(wǎng)絡(luò ),選擇可執行動(dòng)作。
  環(huán)境接受動(dòng)作,產(chǎn)生新的觀(guān)察和獎勵,產(chǎn)生子圖 3。
  這樣,軌跡數據在劇集結束時(shí)存儲在重放緩沖區中。這是一個(gè)決定。
  2.3 MuZero 如何訓練模型
  那么 MuZero 是如何訓練模型的呢?讓我們看看下面的過(guò)程:
  
  對 Replay Buffer 中的軌跡數據進(jìn)行采樣,選擇一個(gè)序列,然后針對該軌跡運行 MuZero 模型。
  在初始步驟中,編碼器表示函數接受來(lái)自所選軌跡的過(guò)去觀(guān)察。
  隨后,模型展開(kāi)一個(gè) K 步循環(huán)。
  在第 k 步中,生成器動(dòng)力學(xué)函數接收上一步的隱藏狀態(tài)和實(shí)際動(dòng)作。
  編碼器表示函數、生成器動(dòng)力學(xué)函數、預測器預測函數的參數可以通過(guò)backpropagation-through-time的端到端聯(lián)合訓練來(lái)預測,可以預測三個(gè)量:
  其中是樣本回報,例如棋盤(pán)游戲中的最終獎勵,或 Atari 中 n 步的獎勵。
  3 MuZero算法詳解3.1 價(jià)值網(wǎng)絡(luò )和策略網(wǎng)絡(luò )
  MuZero 是一種機器學(xué)習算法,因此很自然地首先要了解它是如何使用神經(jīng)網(wǎng)絡(luò )的。
  簡(jiǎn)而言之,該算法使用了 AlphaGo 和 AlphaZero 的策略和價(jià)值網(wǎng)絡(luò ):
  
  政策網(wǎng)絡(luò )和價(jià)值網(wǎng)絡(luò )的直觀(guān)含義如下:
  根據策略網(wǎng)絡(luò ),可以預測每一步的動(dòng)作;依靠?jì)r(jià)值網(wǎng)絡(luò ),可以選擇價(jià)值最高的動(dòng)作。結合這兩個(gè)估計可以得到更好的結果。
  3.2 MuZero中的蒙特卡洛樹(shù)搜索3.2.1 MCTS簡(jiǎn)介
  MuZero 還使用 MCTS(蒙特卡洛樹(shù)搜索)聚合神經(jīng)網(wǎng)絡(luò )來(lái)預測和選擇當前環(huán)境中的下一個(gè)動(dòng)作。到達終點(diǎn)后,樹(shù)中的每個(gè)節點(diǎn)都會(huì )存儲一些相關(guān)的參數,包括訪(fǎng)問(wèn)次數、輪數、前一個(gè)動(dòng)作的概率、子節點(diǎn)以及是否有對應的隱藏狀態(tài)和獎勵。
  蒙特卡洛樹(shù)搜索是一個(gè)迭代的、最佳優(yōu)先的樹(shù)搜索過(guò)程。目標是幫助我們弄清楚要采取哪些行動(dòng)來(lái)最大化長(cháng)期利益。
  Best first,這意味著(zhù)搜索樹(shù)的擴展取決于搜索樹(shù)中的值估計。
  與常見(jiàn)的深度優(yōu)先和廣度優(yōu)先相比,最佳優(yōu)先搜索可以利用深度神經(jīng)網(wǎng)絡(luò )的啟發(fā)式估計,在非常大的搜索空間中找到最優(yōu)解。
  蒙特卡洛樹(shù)搜索有四個(gè)主要階段:
  通過(guò)重復這些階段,MCTS 每次都在節點(diǎn)可能的未來(lái)動(dòng)作序列上逐步構建搜索樹(shù)。在這棵樹(shù)中,每個(gè)節點(diǎn)代表一個(gè)未來(lái)狀態(tài),節點(diǎn)之間的線(xiàn)代表從一個(gè)狀態(tài)到下一個(gè)狀態(tài)的動(dòng)作。
  3.22 MuZero算法中MCTS的四個(gè)階段
  接下來(lái)我們對應MuZero算法中的蒙特卡洛樹(shù)搜索,看看上面四個(gè)階段分別對應什么:
  
  我們先來(lái)看看模擬。
  模擬過(guò)程與蒙特卡羅方法類(lèi)似,推導速度快。為了得到某個(gè)狀態(tài)的初始分數,讓游戲隨機玩到最后,記錄模擬次數和獲勝次數。
  接下來(lái)是選擇。
  雖然 Muzero 不知道游戲規則,但它知道該采取哪些步驟。在每個(gè)節點(diǎn)(狀態(tài) s),使用評分函數比較不同的動(dòng)作,并選擇得分最高的最佳動(dòng)作。
  
  每次選擇一個(gè)動(dòng)作時(shí),我們都會(huì )為 UCB 縮放因子 c 和后續動(dòng)作選擇增加其關(guān)聯(lián)的訪(fǎng)問(wèn)計數 N(s,a)。
  模擬沿著(zhù)樹(shù)向下進(jìn)行到尚未擴展的葉子。此時(shí),應用神經(jīng)網(wǎng)絡(luò )對節點(diǎn)進(jìn)行評估,將評估結果(優(yōu)先級和值估計)存儲在節點(diǎn)中。
  然后是擴展。
  選擇動(dòng)作 A 后,在搜索樹(shù)中生成一個(gè)新節點(diǎn),對應動(dòng)作 A 執行后前一個(gè)狀態(tài)的情況。
  最后回溯。
  模擬結束后,從子節點(diǎn)開(kāi)始沿著(zhù)剛剛下的路徑返回,沿途更新每個(gè)父節點(diǎn)的統計信息。每個(gè)節點(diǎn)都持有其下所有價(jià)值估計的連續平均值,這使得 UCB 公式可以隨著(zhù)時(shí)間的推移做出越來(lái)越準確的決策,確保 MCTS 收斂到最優(yōu)動(dòng)作。
  3.2.3 中級獎勵
  
  事實(shí)上,在 MCTS 的過(guò)程中,也收錄了對中間獎勵 r 的預測。
  在某些情況下,游戲完全結束后需要輸贏(yíng)反饋,這可以通過(guò)價(jià)值估計來(lái)建模。但是在頻繁反饋的情況下,從一種狀態(tài)到另一種狀態(tài)的每次轉換都會(huì )得到獎勵 r。
  因此,獎勵直接通過(guò)神經(jīng)網(wǎng)絡(luò )預測建模并用于搜索。在 UCB 策略中引入中間獎勵:
  其中是在狀態(tài) s 執行動(dòng)作 a 后觀(guān)察到的獎勵,折扣因子是對未來(lái)獎勵的關(guān)注程度。
  由于在某些環(huán)境中獎勵是無(wú)界的,因此可以將獎勵和價(jià)值估計歸一化到 [0,1] 期間,然后與先驗知識相結合:
  其中 和 分別是在整個(gè)搜索樹(shù)中觀(guān)察到的最大和最小估計值。
  3.3 總體說(shuō)明
  基于過(guò)去的觀(guān)察和未來(lái)的行為,對于給定步驟中的每一步,使用帶有參數的模型在每個(gè)時(shí)間步進(jìn)行預測。
  該模型預測 3 個(gè)數量:
  其中是地面實(shí)況觀(guān)察獎勵,是策略,是折扣因子。
  說(shuō)白了就是獲取過(guò)去的觀(guān)察數據,編碼成當前的隱藏狀態(tài),然后給出未來(lái)的動(dòng)作,然后在隱藏狀態(tài)空間進(jìn)行規劃。
  3.4 步分解
  在每個(gè)步驟中,模型由表示函數、動(dòng)力學(xué)函數和預測函數組成:
  使用這樣的模型,可以根據過(guò)去的觀(guān)察來(lái)搜索虛擬的未來(lái)軌跡。
  例如,可以簡(jiǎn)單地選擇 k 步動(dòng)作序列來(lái)搜索最大化價(jià)值函數。
  也可以使用類(lèi)似于 AlphaZero 搜索的 MCTS 算法來(lái)獲取策略和估計值,然后從策略中選擇動(dòng)作。此外,執行操作并生成中間獎勵和狀態(tài)空間。
  在第 k 步,通過(guò)聯(lián)合訓練模型的所有參數,將策略、價(jià)值和獎勵與實(shí)際觀(guān)察到的目標值圖像進(jìn)行匹配。
  模型的所有參數都經(jīng)過(guò)聯(lián)合訓練,使得每個(gè)假設步 k 的策略、值和獎勵與 k 個(gè)實(shí)際時(shí)間步后觀(guān)察到的相應目標值完全匹配。
  使用 MCTS,可以使用三個(gè)改進(jìn)的策略目標:
  最后加上L2正則化項得到最終的損失函數:
  4 總結
  強化學(xué)習分為兩類(lèi):基于模型的和無(wú)模型的。
  其中,基于模型的強化學(xué)習方法需要構建環(huán)境模型。通常,環(huán)境模型由馬爾可夫決策過(guò)程(MDP)表示。該過(guò)程由兩部分組成:
  模型通常針對選定的動(dòng)作或時(shí)間抽象的行為進(jìn)行訓練。一旦模型建立,MDP 規劃算法(例如:值迭代、蒙特卡洛樹(shù)搜索 MCTS)可以直接用于計算 MDP 的最優(yōu)值或最優(yōu)策略。
  因此,在復雜環(huán)境或局部觀(guān)察的情況下,很難構建模型應該預測的狀態(tài)表示。因為Agent沒(méi)有辦法優(yōu)化“有效規劃的目的”的表示和模型,這就導致了表示學(xué)習、模型學(xué)習和規劃之間的分離。
  另一方面,MuZero 是一種完全不同的基于模型的強化學(xué)習方法,專(zhuān)注于端到端的預測函數。主要思想是構造一個(gè)抽象的MDP模型,使抽象MDP中的規劃等價(jià)于真實(shí)環(huán)境中的規劃。
  這種等價(jià)是通過(guò)保證價(jià)值等價(jià)來(lái)實(shí)現的,即從相同的真實(shí)狀態(tài)開(kāi)始,通過(guò)抽象MDP獲得的軌跡累積獎勵與真實(shí)環(huán)境中的軌跡累積獎勵相匹配。
  預測器首先引入價(jià)值等價(jià)模型來(lái)預測價(jià)值而無(wú)需采取行動(dòng)。
  雖然底層模型是 MDP,但它的變換模型不需要匹配環(huán)境中的真實(shí)狀態(tài),只需將 MDP 模型視為深度神經(jīng)網(wǎng)絡(luò )中的隱藏層即可。展開(kāi)的 MDP 被訓練,例如通過(guò)時(shí)間差異學(xué)習,以將累積獎勵的預期總和與實(shí)際環(huán)境的預期值相匹配。
  然后,將價(jià)值等價(jià)模型擴展為以行動(dòng)優(yōu)化價(jià)值。TreeQN 學(xué)習一個(gè)抽象的 MDP 模型,以便在該模型上的樹(shù)搜索(由樹(shù)結構的神經(jīng)網(wǎng)絡(luò )表示)近似于最優(yōu)值函數。值迭代網(wǎng)絡(luò )學(xué)習一個(gè)局部 MDP 模型,使得該模型上的值迭代(由卷積神經(jīng)網(wǎng)絡(luò )表示)接近最優(yōu)值函數。
  價(jià)值預測網(wǎng)絡(luò )更接近于 MuZero:根據實(shí)際動(dòng)作學(xué)習一個(gè) MDP 模型;對展開(kāi)的 MDP 進(jìn)行訓練,以使獎勵的累積總和(以簡(jiǎn)單前向搜索產(chǎn)生的實(shí)際動(dòng)作序列為條件)與真實(shí)環(huán)境匹配一致。如果沒(méi)有策略預測,則搜索僅使用值預測。
  通過(guò)論文的學(xué)習,雖然理解了MuZero算法的思想,但是在實(shí)際項目中使用MuZero還是比較困難的。
  比如如何設計表示、動(dòng)態(tài)、預測等,這些都需要在對代碼實(shí)現非常熟悉的情況下結合具體的業(yè)務(wù)場(chǎng)景來(lái)實(shí)現。
  提供基于pytorch的muzero算法實(shí)現:
  如果有時(shí)間,我會(huì )繼續研究代碼并嘗試復現論文。
  結束

免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2022-04-12 14:12 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)
  SQL注入的主要手段
  開(kāi)源
  錯誤回聲
  百葉窗
  防御是
  消毒
  參數綁定
  CSRF(Cross Site Request Forgery,跨站請求)
  主要防御是識別請求者
  表單令牌
  驗證碼
  推薦人檢查
  其他攻擊和漏洞
  錯誤代碼錯誤回顯
  HTML 注釋
  上傳文件
  最有效的方法是設置上傳白名單,只允許上傳可靠的文件類(lèi)型。另外,可以修改文件名,
  使用專(zhuān)門(mén)的存儲手段來(lái)保護服務(wù)器免受上傳文件攻擊。
  路徑遍歷
  攻擊者使用請求 URL 中的相對路徑來(lái)遍歷系統上未打開(kāi)的目錄和文件。防御方法主要是轉換JS、CSS等資源文件
  部署在獨立服務(wù)器上,使用獨立域名,其他文件不使用靜態(tài)URL訪(fǎng)問(wèn),動(dòng)態(tài)參數不收錄文件路徑等信息。
  ModSecurity 是一個(gè)開(kāi)源的網(wǎng)絡(luò )應用防火墻。
  ModSecurity 采用一種架構模式,其中處理邏輯與攻擊規則集分離。
  NEC 的 SiteShell
  信息加密技術(shù)可分為三類(lèi):
  1:?jiǎn)蜗蚬<用?2:對稱(chēng)加密 3:非對稱(chēng)加密
  雖然單向哈希密文無(wú)法通過(guò)算法逆計算得到明文,但由于人們將密碼設置為具有一定的模式,
  因此,猜測破解可以通過(guò)彩虹表(人們常用的密碼和對應的密文關(guān)系)等手段進(jìn)行。
  可以在哈希算法中加鹽,相當于加密密鑰,增加破解難度。
  對稱(chēng)加密意味著(zhù)加密和解密使用相同的密鑰。
  非對稱(chēng)加密是指加密和解密使用不同的密鑰。其中,公鑰稱(chēng)為公鑰,它所擁有的就是秘鑰。
  RSA是一種非對稱(chēng)加密算法。
  一種是將密鑰和算法放在同一臺服務(wù)器上,甚至制作專(zhuān)用的硬件設施,對外提供加解密服務(wù)。
  應用系統通過(guò)調用該服務(wù)來(lái)實(shí)現數據的加解密。
  另一種解決方案是將加解密算法放在應用系統中,秘鑰放在獨立的服務(wù)器中。為了提供密鑰的安全性,在實(shí)際存儲過(guò)程中,
  密鑰被分成若干份,加密后存儲在不同的存儲介質(zhì)中,既考慮了密鑰的安全性,又提高了性能。
  信息過(guò)濾和反垃圾郵件
  文本匹配
  有很多公共算法,基本上都是 Trie 樹(shù)的變種。
  另一個(gè)更簡(jiǎn)單的實(shí)現是為文本匹配構建一個(gè)多級哈希表。先做降噪,再做文字匹配。如“A_La_Bo”
  分類(lèi)算法
  貝葉斯分類(lèi)算法
  除了反垃圾郵件,分類(lèi)算法還可以用來(lái)自動(dòng)分類(lèi)信息。門(mén)戶(hù)網(wǎng)站可以使用該算法自動(dòng)分類(lèi)和分發(fā)來(lái)自采集的新聞文章
  到不同的頻道。電子郵件服務(wù)提供商基于電子郵件內容推送的個(gè)性化廣告也可以使用分類(lèi)算法來(lái)提供傳遞相關(guān)性。
  黑名單,可用于信息去重,可使用布隆過(guò)濾器代替哈希表
  規則引擎是一種分離業(yè)務(wù)規則和規則處理邏輯的技術(shù)。業(yè)務(wù)規則文件由運維人員通過(guò)容器管理界面進(jìn)行編輯。
  修改規則時(shí),可以實(shí)時(shí)使用新規則,而無(wú)需更改代碼發(fā)布者。規則處理邏輯調用規則來(lái)處理輸入數據。
  統計模型
  目前,大型網(wǎng)站傾向于使用統計模型進(jìn)行風(fēng)險控制。
  統計模式包括分類(lèi)算法或更復雜的智能統計機器學(xué)習算法
  這個(gè)世界沒(méi)有絕對的安全,就像有絕對的自由一樣。
  秒殺系統對應的策略
  1:秒殺系統獨立部署
  2:秒殺產(chǎn)品頁(yè)面是靜態(tài)的
  3:租賃秒殺活動(dòng)網(wǎng)絡(luò )寬帶
  4:動(dòng)態(tài)生成隨機訂單頁(yè)面URL
  軟件設計有兩種風(fēng)格
  一種是將軟件設計得復雜,使缺陷不那么明顯
  一是軟件設計得簡(jiǎn)單到?jīng)]有明顯的缺陷。 查看全部

  免規則采集器列表算法(SQL注入主要手段開(kāi)源錯誤盲注防御手段有消毒參數綁定)
  SQL注入的主要手段
  開(kāi)源
  錯誤回聲
  百葉窗
  防御是
  消毒
  參數綁定
  CSRF(Cross Site Request Forgery,跨站請求)
  主要防御是識別請求者
  表單令牌
  驗證碼
  推薦人檢查
  其他攻擊和漏洞
  錯誤代碼錯誤回顯
  HTML 注釋
  上傳文件
  最有效的方法是設置上傳白名單,只允許上傳可靠的文件類(lèi)型。另外,可以修改文件名,
  使用專(zhuān)門(mén)的存儲手段來(lái)保護服務(wù)器免受上傳文件攻擊。
  路徑遍歷
  攻擊者使用請求 URL 中的相對路徑來(lái)遍歷系統上未打開(kāi)的目錄和文件。防御方法主要是轉換JS、CSS等資源文件
  部署在獨立服務(wù)器上,使用獨立域名,其他文件不使用靜態(tài)URL訪(fǎng)問(wèn),動(dòng)態(tài)參數不收錄文件路徑等信息。
  ModSecurity 是一個(gè)開(kāi)源的網(wǎng)絡(luò )應用防火墻。
  ModSecurity 采用一種架構模式,其中處理邏輯與攻擊規則集分離。
  NEC 的 SiteShell
  信息加密技術(shù)可分為三類(lèi):
  1:?jiǎn)蜗蚬<用?2:對稱(chēng)加密 3:非對稱(chēng)加密
  雖然單向哈希密文無(wú)法通過(guò)算法逆計算得到明文,但由于人們將密碼設置為具有一定的模式,
  因此,猜測破解可以通過(guò)彩虹表(人們常用的密碼和對應的密文關(guān)系)等手段進(jìn)行。
  可以在哈希算法中加鹽,相當于加密密鑰,增加破解難度。
  對稱(chēng)加密意味著(zhù)加密和解密使用相同的密鑰。
  非對稱(chēng)加密是指加密和解密使用不同的密鑰。其中,公鑰稱(chēng)為公鑰,它所擁有的就是秘鑰。
  RSA是一種非對稱(chēng)加密算法。
  一種是將密鑰和算法放在同一臺服務(wù)器上,甚至制作專(zhuān)用的硬件設施,對外提供加解密服務(wù)。
  應用系統通過(guò)調用該服務(wù)來(lái)實(shí)現數據的加解密。
  另一種解決方案是將加解密算法放在應用系統中,秘鑰放在獨立的服務(wù)器中。為了提供密鑰的安全性,在實(shí)際存儲過(guò)程中,
  密鑰被分成若干份,加密后存儲在不同的存儲介質(zhì)中,既考慮了密鑰的安全性,又提高了性能。
  信息過(guò)濾和反垃圾郵件
  文本匹配
  有很多公共算法,基本上都是 Trie 樹(shù)的變種。
  另一個(gè)更簡(jiǎn)單的實(shí)現是為文本匹配構建一個(gè)多級哈希表。先做降噪,再做文字匹配。如“A_La_Bo”
  分類(lèi)算法
  貝葉斯分類(lèi)算法
  除了反垃圾郵件,分類(lèi)算法還可以用來(lái)自動(dòng)分類(lèi)信息。門(mén)戶(hù)網(wǎng)站可以使用該算法自動(dòng)分類(lèi)和分發(fā)來(lái)自采集的新聞文章
  到不同的頻道。電子郵件服務(wù)提供商基于電子郵件內容推送的個(gè)性化廣告也可以使用分類(lèi)算法來(lái)提供傳遞相關(guān)性。
  黑名單,可用于信息去重,可使用布隆過(guò)濾器代替哈希表
  規則引擎是一種分離業(yè)務(wù)規則和規則處理邏輯的技術(shù)。業(yè)務(wù)規則文件由運維人員通過(guò)容器管理界面進(jìn)行編輯。
  修改規則時(shí),可以實(shí)時(shí)使用新規則,而無(wú)需更改代碼發(fā)布者。規則處理邏輯調用規則來(lái)處理輸入數據。
  統計模型
  目前,大型網(wǎng)站傾向于使用統計模型進(jìn)行風(fēng)險控制。
  統計模式包括分類(lèi)算法或更復雜的智能統計機器學(xué)習算法
  這個(gè)世界沒(méi)有絕對的安全,就像有絕對的自由一樣。
  秒殺系統對應的策略
  1:秒殺系統獨立部署
  2:秒殺產(chǎn)品頁(yè)面是靜態(tài)的
  3:租賃秒殺活動(dòng)網(wǎng)絡(luò )寬帶
  4:動(dòng)態(tài)生成隨機訂單頁(yè)面URL
  軟件設計有兩種風(fēng)格
  一種是將軟件設計得復雜,使缺陷不那么明顯
  一是軟件設計得簡(jiǎn)單到?jīng)]有明顯的缺陷。

免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 116 次瀏覽 ? 2022-04-11 06:06 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)
  系列目錄
  基于Python網(wǎng)絡(luò )爬蟲(chóng)和推薦算法的新聞推薦平臺
  文章目錄
  特征
  一個(gè)有規律的采集新聞內容的網(wǎng)絡(luò )爬蟲(chóng),只需要配置間隔時(shí)間,就可以自動(dòng)爬取新聞。消息來(lái)源采集為新浪新聞
  一、結構
  新聞爬蟲(chóng)由兩部分組成:URL采集器、詳情頁(yè)采集器、定時(shí)器
  采集器特征
  網(wǎng)址采集器
  專(zhuān)門(mén)用于采集新浪滾動(dòng)新聞上的新聞詳情頁(yè)URL
  詳情頁(yè)采集器
  詳情頁(yè)采集的內容(例如:新聞)通過(guò)來(lái)自URL采集的URL數據
  時(shí)序采集器
  控制news采集器的啟動(dòng)和關(guān)閉,以及定時(shí)任務(wù)的設置
  二、具體實(shí)現1.網(wǎng)址采集器
  '''
使用新浪新聞滾動(dòng)新聞的API進(jìn)行新聞采集
參數分析:
pageid 目前看應該是固定的參數默認值為153
lid 類(lèi)別ID 2509(全部) 2510(國內) 2511(國際) 2669(國際) 2512(體育) 2513(娛樂(lè )) 2514(軍事) 2515(科技) 2516(財經(jīng)) 2517(股市) 2518(美股)
num 獲取新聞數量 上限為50
'''
def urlcollect(lid):
op_mysql = OperationMysql() #創(chuàng )建數據庫連接對象
url = 'https://feed.mix.sina.com.cn/a ... 2Bstr(lid)+'&num=50' #網(wǎng)易新聞API
result = requests.get(url) #對API發(fā)起請求
result.encoding = 'utf-8' #由于A(yíng)PI返回的數據為ISO編碼的,中文在此處顯示會(huì )出現亂碼,因此更改為UTF-8編碼
# print('Web:', result.text)
urls = re.findall(r'"url":"(.*?)"', result.text) #獲取API返回結果中的所有新聞詳情頁(yè)URL
# times = re.findall(r'"ctime":"(.*?)"', result.text)
# 逐條處理被\轉義的字符,使之成為為轉義的字符串
# 并把處理號的URL導入到數據庫中儲存
changedict = {"2518": 0, "2510": 1, "2511": 2, "2669": 3, "2512": 4, "2513": 5, "2514": 6, "2515": 7, "2516": 8, "2517": 9}
Type = changedict.get(str(lid))
for numbers in range(len(urls)):
urls[numbers] = urls[numbers].replace('\\', '')
logger.info("url:{}".format(urls[numbers]))
time = datetime.datetime.now().strftime('%Y-%m-%d')
sql_i = "INSERT INTO news_api_urlcollect(url, type, time) values ('%s', '%d', '%s')" % (urls[numbers], Type, time)
op_mysql.insert_one(sql_i)
op_mysql.conn.close()
  2.詳情頁(yè)面采集器
  3. 時(shí)序采集器
  #創(chuàng )建一個(gè)APScheduler對象(用于配置定時(shí)任務(wù))
sched = BlockingScheduler()
def begincollect(time):
time = int(time)
try:
# 'interval'關(guān)鍵詞表示的是按照固定時(shí)間間隔進(jìn)行的任務(wù) add_job()添加一個(gè)定時(shí)任務(wù)
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect1', kwargs={"lid": "2510",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect2', kwargs={"lid": "2511",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect3', kwargs={"lid": "2669",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect4', kwargs={"lid": "2512",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect5', kwargs={"lid": "2513",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect6', kwargs={"lid": "2514",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect7', kwargs={"lid": "2515",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect8', kwargs={"lid": "2516",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect9', kwargs={"lid": "2517",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect10', kwargs={"lid": "2518",})
# urlcollect(lid)
# 為了可以控制定時(shí)任務(wù)的關(guān)閉因此需要在任務(wù)開(kāi)始時(shí)保存下該進(jìn)程的PID值并保存與文件中
# 用于ClossScheduler.py中進(jìn)行殺死進(jìn)程
pid = os.getpid()
f1 = open(file='urlSpider.txt', mode='w')
f1.write(pid.__str__())
f1.close()
sched.start()
except Exception:
logger.error('error:'+Exception)
def endsched():
sched.shutdown()
  總結
  新聞采集系統可以穩定詳細地采集新浪新聞滾動(dòng)新聞中的所有新聞。目前只寫(xiě)單線(xiàn)程,效率略低。還有一個(gè)未知的bug,就是在消息采集的過(guò)程中,當調度任務(wù)被APScheduler控制時(shí),一旦任務(wù)采集任務(wù)啟動(dòng),就不能直接停止采集@ > 任務(wù),并且需要讓他在相應的循環(huán)中完全運行當前任務(wù),才能停止。簡(jiǎn)而言之,定時(shí)器對任務(wù)的控制只控制間隔時(shí)間和運行次數,不能立即啟動(dòng)和停止。
  另外,采集器還不是通用的,也就是只能用于指定網(wǎng)頁(yè)的內容采集,這是一個(gè)可擴展的功能,通過(guò)對頁(yè)面的分析,大致的內容采集 函數。
  項目完整源碼已經(jīng)更新,有需要可以自行下載
  歡迎提出問(wèn)題和錯誤
  個(gè)人碼云主頁(yè),歡迎交流??!
  個(gè)人GitHub主頁(yè),歡迎交流??! 查看全部

  免規則采集器列表算法(基于Python網(wǎng)絡(luò )爬蟲(chóng)與推薦算法新聞推薦平臺文章目錄功能介紹)
  系列目錄
  基于Python網(wǎng)絡(luò )爬蟲(chóng)和推薦算法的新聞推薦平臺
  文章目錄
  特征
  一個(gè)有規律的采集新聞內容的網(wǎng)絡(luò )爬蟲(chóng),只需要配置間隔時(shí)間,就可以自動(dòng)爬取新聞。消息來(lái)源采集為新浪新聞
  一、結構
  新聞爬蟲(chóng)由兩部分組成:URL采集器、詳情頁(yè)采集器、定時(shí)器
  采集器特征
  網(wǎng)址采集器
  專(zhuān)門(mén)用于采集新浪滾動(dòng)新聞上的新聞詳情頁(yè)URL
  詳情頁(yè)采集器
  詳情頁(yè)采集的內容(例如:新聞)通過(guò)來(lái)自URL采集的URL數據
  時(shí)序采集器
  控制news采集器的啟動(dòng)和關(guān)閉,以及定時(shí)任務(wù)的設置
  二、具體實(shí)現1.網(wǎng)址采集器
  '''
使用新浪新聞滾動(dòng)新聞的API進(jìn)行新聞采集
參數分析:
pageid 目前看應該是固定的參數默認值為153
lid 類(lèi)別ID 2509(全部) 2510(國內) 2511(國際) 2669(國際) 2512(體育) 2513(娛樂(lè )) 2514(軍事) 2515(科技) 2516(財經(jīng)) 2517(股市) 2518(美股)
num 獲取新聞數量 上限為50
'''
def urlcollect(lid):
op_mysql = OperationMysql() #創(chuàng )建數據庫連接對象
url = 'https://feed.mix.sina.com.cn/a ... 2Bstr(lid)+'&num=50' #網(wǎng)易新聞API
result = requests.get(url) #對API發(fā)起請求
result.encoding = 'utf-8' #由于A(yíng)PI返回的數據為ISO編碼的,中文在此處顯示會(huì )出現亂碼,因此更改為UTF-8編碼
# print('Web:', result.text)
urls = re.findall(r'"url":"(.*?)"', result.text) #獲取API返回結果中的所有新聞詳情頁(yè)URL
# times = re.findall(r'"ctime":"(.*?)"', result.text)
# 逐條處理被\轉義的字符,使之成為為轉義的字符串
# 并把處理號的URL導入到數據庫中儲存
changedict = {"2518": 0, "2510": 1, "2511": 2, "2669": 3, "2512": 4, "2513": 5, "2514": 6, "2515": 7, "2516": 8, "2517": 9}
Type = changedict.get(str(lid))
for numbers in range(len(urls)):
urls[numbers] = urls[numbers].replace('\\', '')
logger.info("url:{}".format(urls[numbers]))
time = datetime.datetime.now().strftime('%Y-%m-%d')
sql_i = "INSERT INTO news_api_urlcollect(url, type, time) values ('%s', '%d', '%s')" % (urls[numbers], Type, time)
op_mysql.insert_one(sql_i)
op_mysql.conn.close()
  2.詳情頁(yè)面采集器
  3. 時(shí)序采集器
  #創(chuàng )建一個(gè)APScheduler對象(用于配置定時(shí)任務(wù))
sched = BlockingScheduler()
def begincollect(time):
time = int(time)
try:
# 'interval'關(guān)鍵詞表示的是按照固定時(shí)間間隔進(jìn)行的任務(wù) add_job()添加一個(gè)定時(shí)任務(wù)
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect1', kwargs={"lid": "2510",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect2', kwargs={"lid": "2511",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect3', kwargs={"lid": "2669",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect4', kwargs={"lid": "2512",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect5', kwargs={"lid": "2513",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect6', kwargs={"lid": "2514",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect7', kwargs={"lid": "2515",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect8', kwargs={"lid": "2516",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect9', kwargs={"lid": "2517",})
sched.add_job(urlcollect, 'interval', max_instances=1, seconds=time, id='urlcollect10', kwargs={"lid": "2518",})
# urlcollect(lid)
# 為了可以控制定時(shí)任務(wù)的關(guān)閉因此需要在任務(wù)開(kāi)始時(shí)保存下該進(jìn)程的PID值并保存與文件中
# 用于ClossScheduler.py中進(jìn)行殺死進(jìn)程
pid = os.getpid()
f1 = open(file='urlSpider.txt', mode='w')
f1.write(pid.__str__())
f1.close()
sched.start()
except Exception:
logger.error('error:'+Exception)
def endsched():
sched.shutdown()
  總結
  新聞采集系統可以穩定詳細地采集新浪新聞滾動(dòng)新聞中的所有新聞。目前只寫(xiě)單線(xiàn)程,效率略低。還有一個(gè)未知的bug,就是在消息采集的過(guò)程中,當調度任務(wù)被APScheduler控制時(shí),一旦任務(wù)采集任務(wù)啟動(dòng),就不能直接停止采集@ > 任務(wù),并且需要讓他在相應的循環(huán)中完全運行當前任務(wù),才能停止。簡(jiǎn)而言之,定時(shí)器對任務(wù)的控制只控制間隔時(shí)間和運行次數,不能立即啟動(dòng)和停止。
  另外,采集器還不是通用的,也就是只能用于指定網(wǎng)頁(yè)的內容采集,這是一個(gè)可擴展的功能,通過(guò)對頁(yè)面的分析,大致的內容采集 函數。
  項目完整源碼已經(jīng)更新,有需要可以自行下載
  歡迎提出問(wèn)題和錯誤
  個(gè)人碼云主頁(yè),歡迎交流??!
  個(gè)人GitHub主頁(yè),歡迎交流??!

免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 115 次瀏覽 ? 2022-04-10 13:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)
  免規則采集器列表算法:注冊,登錄,消費,加入,注銷(xiāo),轉移密碼支付算法:支付完成日期,支付完成手續費比例,支付完成手續費比例用戶(hù)運營(yíng):拉新,復購,活躍,留存,轉化,付費,廣告位,內容付費,會(huì )員價(jià)值,數據打通,時(shí)間差反饋,業(yè)務(wù)評估。社群運營(yíng):微信群,qq群,聚會(huì ),游戲,單機,小團隊會(huì )員管理:離線(xiàn)計費(流量成本遠高于線(xiàn)上),彈性計費(擴張乏力),預付費(100元起步,低頻率/經(jīng)常聯(lián)網(wǎng)用戶(hù)請慎重)預付費產(chǎn)品:熱門(mén)/賣(mài)點(diǎn)產(chǎn)品,剛需產(chǎn)品,爆款產(chǎn)品商品采購:全采購,不同時(shí)段不同采購,訂單匹配選擇差異,競品渠道商對比產(chǎn)品集采:低于30元每件,中高端產(chǎn)品,需求強度差異同時(shí)電商:轉化率降低,活躍度下降,用戶(hù)平均停留時(shí)間下降,庫存出現不正常,付款成功率大幅下降;直通車(chē),鉆展,付費效果未知,付費渠道等流量運營(yíng):流量成本,付費轉化率效果表現,無(wú)數據模型或支撐數據日報周報年報是否可靠,虧損,利潤,成本負擔是否下降,做廣告投放是否花費過(guò)高,多商品是否可以通過(guò)購買(mǎi)建議獲得產(chǎn)品全鏈路優(yōu)化:對比進(jìn)行優(yōu)化,同時(shí)問(wèn)題產(chǎn)品-增加平臺商家多比、增加價(jià)格優(yōu)勢,對比用戶(hù)數量多比、增加增加活躍度,對比活躍度多比、增加轉化率多比等等等級運營(yíng)或外部推廣:產(chǎn)品品牌,銷(xiāo)售提成等評估運營(yíng)效果:銷(xiāo)售業(yè)績(jì)、流量入口、cpd成本/轉化率、促銷(xiāo)力度、平臺資源等等高流量自營(yíng):生意參謀-營(yíng)銷(xiāo)工具--寶貝詳情中等以上流量自營(yíng):移動(dòng)端、pc端、公眾號廣告投放投放渠道:第三方,同行,微博,貼吧,知乎,抖音,快手,頭條,最右,火山,西瓜視頻,荔枝,今日頭條等等等,全部是合作比價(jià)可私信一起交流。 查看全部

  免規則采集器列表算法(【免規則采集器】第三方,同行,抖音,頭條)
  免規則采集器列表算法:注冊,登錄,消費,加入,注銷(xiāo),轉移密碼支付算法:支付完成日期,支付完成手續費比例,支付完成手續費比例用戶(hù)運營(yíng):拉新,復購,活躍,留存,轉化,付費,廣告位,內容付費,會(huì )員價(jià)值,數據打通,時(shí)間差反饋,業(yè)務(wù)評估。社群運營(yíng):微信群,qq群,聚會(huì ),游戲,單機,小團隊會(huì )員管理:離線(xiàn)計費(流量成本遠高于線(xiàn)上),彈性計費(擴張乏力),預付費(100元起步,低頻率/經(jīng)常聯(lián)網(wǎng)用戶(hù)請慎重)預付費產(chǎn)品:熱門(mén)/賣(mài)點(diǎn)產(chǎn)品,剛需產(chǎn)品,爆款產(chǎn)品商品采購:全采購,不同時(shí)段不同采購,訂單匹配選擇差異,競品渠道商對比產(chǎn)品集采:低于30元每件,中高端產(chǎn)品,需求強度差異同時(shí)電商:轉化率降低,活躍度下降,用戶(hù)平均停留時(shí)間下降,庫存出現不正常,付款成功率大幅下降;直通車(chē),鉆展,付費效果未知,付費渠道等流量運營(yíng):流量成本,付費轉化率效果表現,無(wú)數據模型或支撐數據日報周報年報是否可靠,虧損,利潤,成本負擔是否下降,做廣告投放是否花費過(guò)高,多商品是否可以通過(guò)購買(mǎi)建議獲得產(chǎn)品全鏈路優(yōu)化:對比進(jìn)行優(yōu)化,同時(shí)問(wèn)題產(chǎn)品-增加平臺商家多比、增加價(jià)格優(yōu)勢,對比用戶(hù)數量多比、增加增加活躍度,對比活躍度多比、增加轉化率多比等等等級運營(yíng)或外部推廣:產(chǎn)品品牌,銷(xiāo)售提成等評估運營(yíng)效果:銷(xiāo)售業(yè)績(jì)、流量入口、cpd成本/轉化率、促銷(xiāo)力度、平臺資源等等高流量自營(yíng):生意參謀-營(yíng)銷(xiāo)工具--寶貝詳情中等以上流量自營(yíng):移動(dòng)端、pc端、公眾號廣告投放投放渠道:第三方,同行,微博,貼吧,知乎,抖音,快手,頭條,最右,火山,西瓜視頻,荔枝,今日頭條等等等,全部是合作比價(jià)可私信一起交流。

免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 195 次瀏覽 ? 2022-04-09 15:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)
  2018年9月20日,百度正式發(fā)布公告,為營(yíng)造良好的互聯(lián)網(wǎng)內容搜索生態(tài),保護用戶(hù)的搜索閱讀和瀏覽體驗,保護百度搜索引擎中優(yōu)質(zhì)內容生產(chǎn)者的合法權益,百度官方網(wǎng)站將于2018年9月發(fā)布。颶風(fēng)算法將于6月下旬升級。
  一周前,百度發(fā)布公告“百度搜索將上線(xiàn)颶風(fēng)算法2.0,嚴厲打擊不良采集行為”,今天我們將詳細講解颶風(fēng)算法的覆蓋范圍2.0 個(gè)問(wèn)題,站長(cháng)應該怎么做。
  颶風(fēng)算法主要包括四種不良采集行為,如下:
  1、更明顯的采集跟蹤行為
  網(wǎng)站收錄大量?jì)热莶杉?,是從其他網(wǎng)站、公眾號、自媒體等轉來(lái)的。采集后面的信息沒(méi)有整理排版混亂,結構差,缺少一些功能,文章可讀性差,有明顯的采集痕跡,用戶(hù)閱讀體驗特別差。
  示例:采集文章的內容收錄不可點(diǎn)擊的超鏈接,功能缺失,采集痕跡明顯。如下所示
  
  整改建議:網(wǎng)站發(fā)布的內容,要注意文章內容的排版和排版,不得出現與文章主題弱相關(guān)或無(wú)關(guān)的信息。不允許使用@文章 或不可用的功能。干擾用戶(hù)的瀏覽體驗。
  2、body內容有拼接行為
  網(wǎng)站采集多個(gè)不同的文章拼接或疊加。文章整體內容沒(méi)有形成完整的邏輯,閱讀不流暢,段落不連貫,文章話(huà)題多等問(wèn)題無(wú)法正常滿(mǎn)足用戶(hù)需求。
  例子:文章正文前后的內容沒(méi)有關(guān)系,邏輯不連貫。如下所示
  
  整改建議:百度嚴禁使用采集器、采集軟件等編輯工具采集隨意制作拼接內容。制作大量對用戶(hù)有價(jià)值的優(yōu)質(zhì)原創(chuàng )內容。
  3、廣泛的內容采集行為
  網(wǎng)站中文章的大部分內容都是采集。質(zhì)量較低。
  整改建議:百度鼓勵網(wǎng)站運營(yíng)商大力制作優(yōu)質(zhì)原創(chuàng )內容,對原創(chuàng )內容給予保護。如需轉載,需注明內容出處(如:轉載內容注明新聞、政策等出處將不視為采集內容)。
  4、跨域采集內容行為
  網(wǎng)站通過(guò)采集大量與本站域名不一致的內容獲取流量的行為。
  示例:Education 網(wǎng)站 發(fā)布與食品行業(yè)相關(guān)的內容。如下所示
  
  整改建議:百度鼓勵網(wǎng)站制作文章和該領(lǐng)域的內容,通過(guò)專(zhuān)注于該領(lǐng)域獲得更多搜索用戶(hù)的青睞。不要試圖采集跨域內容來(lái)獲取短期利益。這樣做會(huì )降低域焦點(diǎn)并影響 網(wǎng)站 在搜索引擎中的表現。
  總結:
  綜上所述,颶風(fēng)算法2.0旨在保障搜索用戶(hù)的瀏覽體驗,保障搜索生態(tài)的健康健康發(fā)展。對于任何違反網(wǎng)站的行為,百度搜索將使用網(wǎng)站對存在問(wèn)題的嚴重性進(jìn)行相應的限制搜索展示,情節嚴重的將給予永久停牌處分。 查看全部

  免規則采集器列表算法(百度搜索颶風(fēng)算法2.0所覆蓋的問(wèn)題點(diǎn)以及站長(cháng)們應該怎么做)
  2018年9月20日,百度正式發(fā)布公告,為營(yíng)造良好的互聯(lián)網(wǎng)內容搜索生態(tài),保護用戶(hù)的搜索閱讀和瀏覽體驗,保護百度搜索引擎中優(yōu)質(zhì)內容生產(chǎn)者的合法權益,百度官方網(wǎng)站將于2018年9月發(fā)布。颶風(fēng)算法將于6月下旬升級。
  一周前,百度發(fā)布公告“百度搜索將上線(xiàn)颶風(fēng)算法2.0,嚴厲打擊不良采集行為”,今天我們將詳細講解颶風(fēng)算法的覆蓋范圍2.0 個(gè)問(wèn)題,站長(cháng)應該怎么做。
  颶風(fēng)算法主要包括四種不良采集行為,如下:
  1、更明顯的采集跟蹤行為
  網(wǎng)站收錄大量?jì)热莶杉?,是從其他網(wǎng)站、公眾號、自媒體等轉來(lái)的。采集后面的信息沒(méi)有整理排版混亂,結構差,缺少一些功能,文章可讀性差,有明顯的采集痕跡,用戶(hù)閱讀體驗特別差。
  示例:采集文章的內容收錄不可點(diǎn)擊的超鏈接,功能缺失,采集痕跡明顯。如下所示
  
  整改建議:網(wǎng)站發(fā)布的內容,要注意文章內容的排版和排版,不得出現與文章主題弱相關(guān)或無(wú)關(guān)的信息。不允許使用@文章 或不可用的功能。干擾用戶(hù)的瀏覽體驗。
  2、body內容有拼接行為
  網(wǎng)站采集多個(gè)不同的文章拼接或疊加。文章整體內容沒(méi)有形成完整的邏輯,閱讀不流暢,段落不連貫,文章話(huà)題多等問(wèn)題無(wú)法正常滿(mǎn)足用戶(hù)需求。
  例子:文章正文前后的內容沒(méi)有關(guān)系,邏輯不連貫。如下所示
  
  整改建議:百度嚴禁使用采集器、采集軟件等編輯工具采集隨意制作拼接內容。制作大量對用戶(hù)有價(jià)值的優(yōu)質(zhì)原創(chuàng )內容。
  3、廣泛的內容采集行為
  網(wǎng)站中文章的大部分內容都是采集。質(zhì)量較低。
  整改建議:百度鼓勵網(wǎng)站運營(yíng)商大力制作優(yōu)質(zhì)原創(chuàng )內容,對原創(chuàng )內容給予保護。如需轉載,需注明內容出處(如:轉載內容注明新聞、政策等出處將不視為采集內容)。
  4、跨域采集內容行為
  網(wǎng)站通過(guò)采集大量與本站域名不一致的內容獲取流量的行為。
  示例:Education 網(wǎng)站 發(fā)布與食品行業(yè)相關(guān)的內容。如下所示
  
  整改建議:百度鼓勵網(wǎng)站制作文章和該領(lǐng)域的內容,通過(guò)專(zhuān)注于該領(lǐng)域獲得更多搜索用戶(hù)的青睞。不要試圖采集跨域內容來(lái)獲取短期利益。這樣做會(huì )降低域焦點(diǎn)并影響 網(wǎng)站 在搜索引擎中的表現。
  總結:
  綜上所述,颶風(fēng)算法2.0旨在保障搜索用戶(hù)的瀏覽體驗,保障搜索生態(tài)的健康健康發(fā)展。對于任何違反網(wǎng)站的行為,百度搜索將使用網(wǎng)站對存在問(wèn)題的嚴重性進(jìn)行相應的限制搜索展示,情節嚴重的將給予永久停牌處分。

免規則采集器列表算法( 如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 189 次瀏覽 ? 2022-04-07 18:18 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))
  
  
  PowerBI商品關(guān)聯(lián)規則的可視化
  在上一篇文章中,我解釋了關(guān)聯(lián)規則的原理和實(shí)現步驟。如果你理解它,它實(shí)際上很容易理解。但說(shuō)起來(lái)容易做起來(lái)難,如何通過(guò)工具處理原創(chuàng )數據以獲得有效可靠的結果仍然存在問(wèn)題。實(shí)際的工作是讓你解決問(wèn)題,而不是僅僅談?wù)摻鉀Q方案。本文以理論為基礎,結合實(shí)際數據展示如何使用Python實(shí)現關(guān)聯(lián)規則,以及如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)展示。
  使用Python解決一個(gè)問(wèn)題時(shí),實(shí)際上并不是從0到1的一步一步構建,這個(gè)過(guò)程非常繁瑣。有時(shí),為了達到一個(gè)小的效果,可能要繞很多路,所以就像“調參”一樣,我們傾向于使用其他內置的梯子。這就是 Python 語(yǔ)言如此受歡迎的原因,因為它擁有完善的開(kāi)源社區和無(wú)數的工具庫來(lái)實(shí)現某種目的。我們在實(shí)現關(guān)聯(lián)規則的計算時(shí),使用機器學(xué)習庫mlxtend中的apriori、fpgrowth、association_rules算法。apriori 是一種流行的算法,用于提取關(guān)聯(lián)規則學(xué)習中的頻繁項集。先驗算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的一組項。
  一、數據集
  #導入相關(guān)的庫
import pandas as pd
import mlxtend #機器學(xué)習庫
#編碼包
from mlxtend.preprocessing import TransactionEncoder
#關(guān)聯(lián)規則計算包
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
pd.set_option('max_colwidth',150) #對pandas顯示效果設置,列顯示字段長(cháng)度最長(cháng)為150個(gè)字符 #導入數據集
Order = pd.read_excel("D:/orders.xlsx")
#查看數據集的大小
Order.shape
  
  #查看數據前10行
Order.tail(5)
  
  數據集中有121253條數據,總共有四個(gè)字段。SalesOrderNumber 指訂單號;ordernumber 是指子訂單號。換行和數字表示訂單的子訂單。每個(gè)訂單號下可能有一個(gè)或多個(gè)子訂單。有子訂單,每個(gè)子訂單都是唯一的,對應一個(gè)產(chǎn)品;產(chǎn)品是指產(chǎn)品名稱(chēng)。
  二、mlxtend
  在真正開(kāi)始之前,我們先來(lái)了解一下這個(gè)mlxtend中的包是怎么使用的。mlxtend 官網(wǎng)演示了如何實(shí)現關(guān)聯(lián)規則的計算。我們來(lái)看看這三個(gè)步驟:
  第一步,導入apriori算法包;
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式;
  第三步,計算support、confidence、lift等指標,過(guò)濾掉強規則。
  第一步:導入先驗算法包
  
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式:
  得到的實(shí)際數據往往和我之前文章中的例子一樣,產(chǎn)品在訂單號后面排列成一個(gè)列表。所以 mlxtend 包接受這種數據格式。但是,它不能直接用于計算。首先,真實(shí)數據都是文本。其次,apriori算法包需要將原創(chuàng )數據轉換為商品的one-hot編碼的Pandas Dataframe格式。這是輸入數據:
  
  它使用 TransactionEncoder 包將輸入數據轉換為我們需要的形式。這是轉換后的代碼和結果:
  
  接下來(lái),它將處理后的數據格式輸入到 apriori 算法包中,以計算頻繁項集和支持度。根據預設的最小支持度0.6,排除不頻繁項集。
  
  但是,上面有一個(gè)問(wèn)題。上面返回的結果集是一個(gè)數字,其實(shí)就是df表中每一項(item)的索引,這樣比較方便后面的處理,但是如果只想用這個(gè)結果的話(huà)。為了增加可讀性,使用參數 use_colnames=True 來(lái)顯示原創(chuàng )產(chǎn)品名稱(chēng)。
  
  第三步,計算支持度、置信度和提升度
  apriori算法包中沒(méi)有演示第三步,這是為什么呢?因為apriori算法包只是關(guān)聯(lián)規則的第一步——尋找頻繁項集,當然強關(guān)聯(lián)規則是不會(huì )找到的!這一步在另一個(gè)包 association_rules 中實(shí)現。這也是很多初學(xué)者容易遇到的問(wèn)題。他們不知道每個(gè)包的用途,也不知道如何調用包。
  
  這樣,我們就可以計算出所有滿(mǎn)足最小支持度的頻繁項集的支持度、置信度和提升度。還有杠桿作用和收斂性。這兩個(gè)的作用和之前說(shuō)的lift的作用是一樣的。最好使用 KLUC 指標和 IR 不平衡率,但顯然 mlxtend 的開(kāi)發(fā)人員更喜歡使用杠桿和信念,并將其放在一邊。本案例僅演示支撐升降機的使用。
  三、Python實(shí)現第一步關(guān)聯(lián)規則代碼,生成格式數據
  以上是官網(wǎng)給出的關(guān)聯(lián)規則包的使用方法。接下來(lái)我使用自己的數據集進(jìn)行實(shí)際操作,演示如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)顯示。上面已經(jīng)給出了示例數據??梢钥闯?,數據集每個(gè)訂單有多個(gè)商品,但是是逐行的,而不是一個(gè)訂單后跟一行所有商品的形式。所以這是一種從行轉換為列的方法。這里使用了Pandas中的分組功能,要達到的效果如下:
  
  #使用DataFrame的groupby函數
group_df = Order.groupby(['SalesOrderNumber'])
  如果你會(huì )寫(xiě)SQL,你應該知道groupby必須和聚合函數一起使用,因為它是一個(gè)mapreduce過(guò)程。如果不使用聚合函數按訂單號分組,SQL Server 會(huì )報錯,Mysql 只會(huì )返回第一行數據。而這里直接使用groupby分組,不用聚合功能,這樣會(huì )不會(huì )有問(wèn)題?讓我們看一下生成的 group_df:
  group_df.head(2) #查看數據集
  
  上圖是groupby的結果(我以為是數據集),拿前2和前5看,發(fā)現返回的數據和數據集的大小不一樣(注意我們的第一次查看數據顯示121253條數據)。其實(shí)這個(gè)groupby的結果就是一個(gè)生成器,它返回一個(gè)動(dòng)態(tài)的分組過(guò)程。如果你想使用結果,你可以輸入不同的參數來(lái)得到實(shí)際的結果。所以使用這個(gè)函數來(lái)實(shí)現group_oncat并生成一個(gè)產(chǎn)品列表。
  df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_productlist.head(5)
  上面代碼的意思是生成一個(gè)新表,按SalesOrderNumber分組,然后將每個(gè)訂單組的Products聚合成一個(gè)列表;此表只有兩列,一列按 SalesOrderNumber 分組,另一列按 SalesOrderNumber 分組。將其命名為產(chǎn)品列表;最后去掉原創(chuàng )數據目標的索引,重新設置索引,最后得到df_productlist表,這樣我們就形成了算法接受的輸入數據格式。這是查看前 5 行的結果:
  
  #因為只需要頻繁項集,所以這里去掉訂單號,將productlist轉為numpy數組格式。
df_array = df_productlist["productlist"].tolist()
df_array[0:3] #取前三個(gè)查看
  
  可以看出輸入數據形成了,然后我們使用TransactionEncoder對數據進(jìn)行處理,為每個(gè)item(item)生成one-hot編碼的DataFrame格式:
  
  第二步,生成頻繁項集
  生成最終的數據格式后,將數據饋送到 apriori 算法包生成頻繁項集:
  #給定最小支持度為0.01,顯示列名
frequent_itemset = apriori(df_item,min_support=0.01,use_colnames=True)
frequent_itemset.tail(5)
  
  算法生成的結果也是DataFrame格式的頻繁項集。它將返回所有大于或等于最小支持度的結果,例如頻繁 1 項集、頻繁 2 項集和頻繁 3 項集。這里顯示的是頻繁 1 項集。
  其實(shí)為了方便我們查看和過(guò)濾,我們還可以統計頻繁項集的長(cháng)度,這樣就可以動(dòng)態(tài)索引了。
  frequent_itemset['length'] = frequent_itemset['itemsets'].apply(lambda x: len(x))
frequent_itemset[ (frequent_itemset['length'] == 2) &(frequent_itemset['support'] >= 0.01) ]
  這段代碼的意思是找到支持度大于等于0.01的頻繁2項集,也就是我們經(jīng)常關(guān)心的客戶(hù)購買(mǎi)一個(gè)產(chǎn)品的情況,他們會(huì )購買(mǎi)哪種產(chǎn)品。
  
  在完成了上面生成頻繁項集的第一步之后,下面就是挖掘關(guān)聯(lián)規則了。
  第三步,計算支持度、置信度和提升度
  association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
association.head()
  
  上表顯示,一共找到了 169034 條關(guān)聯(lián)規則可供選擇。列名是什么意思?
  antecedents:代表先購買(mǎi)的產(chǎn)品(組合),consequents代表后購買(mǎi)的產(chǎn)品(組合);
  先行支持:表示先購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  后續支持:表示后面購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  support:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)占所有訂單的支持;
  Confidence:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)與所有訂單的支持度與前期支持度的比值,即規則的置信度;
  Lift:表示置信度與一致支持的比值,即提升度,驗證了先購買(mǎi)產(chǎn)品(組合)再購買(mǎi)產(chǎn)品組合B的可能性的有效性;
  最后我們只關(guān)注買(mǎi)一買(mǎi)一,買(mǎi)二再買(mǎi)一的情況,這是最常見(jiàn)的實(shí)際場(chǎng)景需求。因此生成兩個(gè)表 df_BuyAB 和 df_BuyABC。下面是完整的代碼,如果你有相同格式的數據集,可以直接運行這個(gè)算法。
  import pandas as pd
import mlxtend
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
Allorder = pd.read_excel("D:/4_MySQL/AdventureWorksDW2012/Allorder.xlsx")
group_df = Allorder.groupby(['SalesOrderNumber'])
df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_array = df_productlist["productlist"].tolist()
trans= TransactionEncoder()
trans_array = trans.fit_transform(df_array)
df_association = pd.DataFrame(trans_array, columns=trans.columns_)
frequent_itemset = apriori(df_association,min_support=0.01,use_colnames=True)
association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
BuyAB = association[(association['antecedents'].apply(lambda x :len(x)==1)) & (association['consequents'].apply(lambda x :len(x)==1))]
BuyABC = association[(association['antecedents'].apply(lambda x :len(x)==2)) & (association['consequents'].apply(lambda x :len(x)==1))]
  文章開(kāi)頭的視頻展示了如何使用這個(gè)Python腳本實(shí)現動(dòng)態(tài)可視化,供商務(wù)人士使用,提高銷(xiāo)售業(yè)績(jì)。 查看全部

  免規則采集器列表算法(
如何使用Python實(shí)現關(guān)聯(lián)規則的原理和實(shí)現步驟(上))
  
  
  PowerBI商品關(guān)聯(lián)規則的可視化
  在上一篇文章中,我解釋了關(guān)聯(lián)規則的原理和實(shí)現步驟。如果你理解它,它實(shí)際上很容易理解。但說(shuō)起來(lái)容易做起來(lái)難,如何通過(guò)工具處理原創(chuàng )數據以獲得有效可靠的結果仍然存在問(wèn)題。實(shí)際的工作是讓你解決問(wèn)題,而不是僅僅談?wù)摻鉀Q方案。本文以理論為基礎,結合實(shí)際數據展示如何使用Python實(shí)現關(guān)聯(lián)規則,以及如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)展示。
  使用Python解決一個(gè)問(wèn)題時(shí),實(shí)際上并不是從0到1的一步一步構建,這個(gè)過(guò)程非常繁瑣。有時(shí),為了達到一個(gè)小的效果,可能要繞很多路,所以就像“調參”一樣,我們傾向于使用其他內置的梯子。這就是 Python 語(yǔ)言如此受歡迎的原因,因為它擁有完善的開(kāi)源社區和無(wú)數的工具庫來(lái)實(shí)現某種目的。我們在實(shí)現關(guān)聯(lián)規則的計算時(shí),使用機器學(xué)習庫mlxtend中的apriori、fpgrowth、association_rules算法。apriori 是一種流行的算法,用于提取關(guān)聯(lián)規則學(xué)習中的頻繁項集。先驗算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的一組項。
  一、數據集
  #導入相關(guān)的庫
import pandas as pd
import mlxtend #機器學(xué)習庫
#編碼包
from mlxtend.preprocessing import TransactionEncoder
#關(guān)聯(lián)規則計算包
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
pd.set_option('max_colwidth',150) #對pandas顯示效果設置,列顯示字段長(cháng)度最長(cháng)為150個(gè)字符 #導入數據集
Order = pd.read_excel("D:/orders.xlsx")
#查看數據集的大小
Order.shape
  
  #查看數據前10行
Order.tail(5)
  
  數據集中有121253條數據,總共有四個(gè)字段。SalesOrderNumber 指訂單號;ordernumber 是指子訂單號。換行和數字表示訂單的子訂單。每個(gè)訂單號下可能有一個(gè)或多個(gè)子訂單。有子訂單,每個(gè)子訂單都是唯一的,對應一個(gè)產(chǎn)品;產(chǎn)品是指產(chǎn)品名稱(chēng)。
  二、mlxtend
  在真正開(kāi)始之前,我們先來(lái)了解一下這個(gè)mlxtend中的包是怎么使用的。mlxtend 官網(wǎng)演示了如何實(shí)現關(guān)聯(lián)規則的計算。我們來(lái)看看這三個(gè)步驟:
  第一步,導入apriori算法包;
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式;
  第三步,計算support、confidence、lift等指標,過(guò)濾掉強規則。
  第一步:導入先驗算法包
  
  第二步,將原創(chuàng )訂單數據處理成算法支持的格式:
  得到的實(shí)際數據往往和我之前文章中的例子一樣,產(chǎn)品在訂單號后面排列成一個(gè)列表。所以 mlxtend 包接受這種數據格式。但是,它不能直接用于計算。首先,真實(shí)數據都是文本。其次,apriori算法包需要將原創(chuàng )數據轉換為商品的one-hot編碼的Pandas Dataframe格式。這是輸入數據:
  
  它使用 TransactionEncoder 包將輸入數據轉換為我們需要的形式。這是轉換后的代碼和結果:
  
  接下來(lái),它將處理后的數據格式輸入到 apriori 算法包中,以計算頻繁項集和支持度。根據預設的最小支持度0.6,排除不頻繁項集。
  
  但是,上面有一個(gè)問(wèn)題。上面返回的結果集是一個(gè)數字,其實(shí)就是df表中每一項(item)的索引,這樣比較方便后面的處理,但是如果只想用這個(gè)結果的話(huà)。為了增加可讀性,使用參數 use_colnames=True 來(lái)顯示原創(chuàng )產(chǎn)品名稱(chēng)。
  
  第三步,計算支持度、置信度和提升度
  apriori算法包中沒(méi)有演示第三步,這是為什么呢?因為apriori算法包只是關(guān)聯(lián)規則的第一步——尋找頻繁項集,當然強關(guān)聯(lián)規則是不會(huì )找到的!這一步在另一個(gè)包 association_rules 中實(shí)現。這也是很多初學(xué)者容易遇到的問(wèn)題。他們不知道每個(gè)包的用途,也不知道如何調用包。
  
  這樣,我們就可以計算出所有滿(mǎn)足最小支持度的頻繁項集的支持度、置信度和提升度。還有杠桿作用和收斂性。這兩個(gè)的作用和之前說(shuō)的lift的作用是一樣的。最好使用 KLUC 指標和 IR 不平衡率,但顯然 mlxtend 的開(kāi)發(fā)人員更喜歡使用杠桿和信念,并將其放在一邊。本案例僅演示支撐升降機的使用。
  三、Python實(shí)現第一步關(guān)聯(lián)規則代碼,生成格式數據
  以上是官網(wǎng)給出的關(guān)聯(lián)規則包的使用方法。接下來(lái)我使用自己的數據集進(jìn)行實(shí)際操作,演示如何在PowerBI中導入Python腳本生成數據表并以可視化的方式動(dòng)態(tài)顯示。上面已經(jīng)給出了示例數據??梢钥闯?,數據集每個(gè)訂單有多個(gè)商品,但是是逐行的,而不是一個(gè)訂單后跟一行所有商品的形式。所以這是一種從行轉換為列的方法。這里使用了Pandas中的分組功能,要達到的效果如下:
  
  #使用DataFrame的groupby函數
group_df = Order.groupby(['SalesOrderNumber'])
  如果你會(huì )寫(xiě)SQL,你應該知道groupby必須和聚合函數一起使用,因為它是一個(gè)mapreduce過(guò)程。如果不使用聚合函數按訂單號分組,SQL Server 會(huì )報錯,Mysql 只會(huì )返回第一行數據。而這里直接使用groupby分組,不用聚合功能,這樣會(huì )不會(huì )有問(wèn)題?讓我們看一下生成的 group_df:
  group_df.head(2) #查看數據集
  
  上圖是groupby的結果(我以為是數據集),拿前2和前5看,發(fā)現返回的數據和數據集的大小不一樣(注意我們的第一次查看數據顯示121253條數據)。其實(shí)這個(gè)groupby的結果就是一個(gè)生成器,它返回一個(gè)動(dòng)態(tài)的分組過(guò)程。如果你想使用結果,你可以輸入不同的參數來(lái)得到實(shí)際的結果。所以使用這個(gè)函數來(lái)實(shí)現group_oncat并生成一個(gè)產(chǎn)品列表。
  df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_productlist.head(5)
  上面代碼的意思是生成一個(gè)新表,按SalesOrderNumber分組,然后將每個(gè)訂單組的Products聚合成一個(gè)列表;此表只有兩列,一列按 SalesOrderNumber 分組,另一列按 SalesOrderNumber 分組。將其命名為產(chǎn)品列表;最后去掉原創(chuàng )數據目標的索引,重新設置索引,最后得到df_productlist表,這樣我們就形成了算法接受的輸入數據格式。這是查看前 5 行的結果:
  
  #因為只需要頻繁項集,所以這里去掉訂單號,將productlist轉為numpy數組格式。
df_array = df_productlist["productlist"].tolist()
df_array[0:3] #取前三個(gè)查看
  
  可以看出輸入數據形成了,然后我們使用TransactionEncoder對數據進(jìn)行處理,為每個(gè)item(item)生成one-hot編碼的DataFrame格式:
  
  第二步,生成頻繁項集
  生成最終的數據格式后,將數據饋送到 apriori 算法包生成頻繁項集:
  #給定最小支持度為0.01,顯示列名
frequent_itemset = apriori(df_item,min_support=0.01,use_colnames=True)
frequent_itemset.tail(5)
  
  算法生成的結果也是DataFrame格式的頻繁項集。它將返回所有大于或等于最小支持度的結果,例如頻繁 1 項集、頻繁 2 項集和頻繁 3 項集。這里顯示的是頻繁 1 項集。
  其實(shí)為了方便我們查看和過(guò)濾,我們還可以統計頻繁項集的長(cháng)度,這樣就可以動(dòng)態(tài)索引了。
  frequent_itemset['length'] = frequent_itemset['itemsets'].apply(lambda x: len(x))
frequent_itemset[ (frequent_itemset['length'] == 2) &(frequent_itemset['support'] >= 0.01) ]
  這段代碼的意思是找到支持度大于等于0.01的頻繁2項集,也就是我們經(jīng)常關(guān)心的客戶(hù)購買(mǎi)一個(gè)產(chǎn)品的情況,他們會(huì )購買(mǎi)哪種產(chǎn)品。
  
  在完成了上面生成頻繁項集的第一步之后,下面就是挖掘關(guān)聯(lián)規則了。
  第三步,計算支持度、置信度和提升度
  association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
association.head()
  
  上表顯示,一共找到了 169034 條關(guān)聯(lián)規則可供選擇。列名是什么意思?
  antecedents:代表先購買(mǎi)的產(chǎn)品(組合),consequents代表后購買(mǎi)的產(chǎn)品(組合);
  先行支持:表示先購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  后續支持:表示后面購買(mǎi)的產(chǎn)品(組合)占所有訂單的支持;
  support:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)占所有訂單的支持;
  Confidence:表示同時(shí)購買(mǎi)兩種產(chǎn)品(組合)與所有訂單的支持度與前期支持度的比值,即規則的置信度;
  Lift:表示置信度與一致支持的比值,即提升度,驗證了先購買(mǎi)產(chǎn)品(組合)再購買(mǎi)產(chǎn)品組合B的可能性的有效性;
  最后我們只關(guān)注買(mǎi)一買(mǎi)一,買(mǎi)二再買(mǎi)一的情況,這是最常見(jiàn)的實(shí)際場(chǎng)景需求。因此生成兩個(gè)表 df_BuyAB 和 df_BuyABC。下面是完整的代碼,如果你有相同格式的數據集,可以直接運行這個(gè)算法。
  import pandas as pd
import mlxtend
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, fpmax, fpgrowth,association_rules
Allorder = pd.read_excel("D:/4_MySQL/AdventureWorksDW2012/Allorder.xlsx")
group_df = Allorder.groupby(['SalesOrderNumber'])
df_productlist = pd.DataFrame({"productlist":group_df['Product'].apply(list)}).reset_index()
df_array = df_productlist["productlist"].tolist()
trans= TransactionEncoder()
trans_array = trans.fit_transform(df_array)
df_association = pd.DataFrame(trans_array, columns=trans.columns_)
frequent_itemset = apriori(df_association,min_support=0.01,use_colnames=True)
association = association_rules(frequent_itemset,metric="confidence",min_threshold=0.01)
BuyAB = association[(association['antecedents'].apply(lambda x :len(x)==1)) & (association['consequents'].apply(lambda x :len(x)==1))]
BuyABC = association[(association['antecedents'].apply(lambda x :len(x)==2)) & (association['consequents'].apply(lambda x :len(x)==1))]
  文章開(kāi)頭的視頻展示了如何使用這個(gè)Python腳本實(shí)現動(dòng)態(tài)可視化,供商務(wù)人士使用,提高銷(xiāo)售業(yè)績(jì)。

免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 166 次瀏覽 ? 2022-04-07 18:16 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率
)
  介紹
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值配置文件
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的項集?;贏(yíng)priori算法,我們可以從海量的用戶(hù)行為數據中找到關(guān)聯(lián)規則的頻繁項集組合,例如挖掘購物行業(yè)用戶(hù)的頻繁購買(mǎi)組合。
  定義
  支持度(support):support(A=>B) = P(A∪B),表示A和B同時(shí)出現的概率。
  confidence:confidence(A=>B)=support(A∪B)/support(A),表示A和B同時(shí)出現的概率與A出現的概率的比值。
  頻繁項集:在項集中頻繁出現且滿(mǎn)足最小支持閾值的集合,如{牛奶、面包}、{手機、手機殼}等。
  強關(guān)聯(lián)規則:滿(mǎn)足最小支持度和最小置信度的關(guān)聯(lián)規則。
  算法步驟從記錄中計算所有候選項集,并計算頻繁項集和支持。k-item 候選集是從頻繁的 1-item 集生成的,k-item 頻繁集是從 k-item 候選集計算出來(lái)的。用k-item頻繁集生成所有關(guān)聯(lián)規則,計算生成規則的置信度,過(guò)濾滿(mǎn)足最小置信度的關(guān)聯(lián)規則。先驗原理
  任何頻繁項的所有非空子集也必須是頻繁的。即在生成k-item候選集時(shí),如果候選集中的元素不在k-1項頻繁集中,則該元素一定不是頻繁集。這時(shí)候不需要計算支持度,直接去掉即可。例如,我們有一個(gè)由 0、1、2、3 組成的集合,下面是它的所有項集組合:
  
  從 1 個(gè)項集計算 k 個(gè)項集的支持度,當我們計算出 {0,1} 集在 2 個(gè)項集候選集中不頻繁時(shí),那么它的所有子集都是不頻繁的,即 2 個(gè)項集 {0 , 1, 2} 和?? { 0, 1, 3} 也是不頻繁的,它們的子集 {0, 1, 2, 3} 也是不頻繁的,我們不需要計算不頻繁集的支持度。
  
  當所有的頻繁項都找到后,需要從頻繁集中挖掘出所有的關(guān)聯(lián)規則。假設頻繁項集{0, 1, 2, 3},下圖顯示了它生成的所有關(guān)聯(lián)規則。規則,它們的子集也將是低置信度。
  
  Python 實(shí)現
  網(wǎng)上一些Apriori算法的Python實(shí)現,其實(shí)并不符合python風(fēng)格。還有一點(diǎn)就是有點(diǎn)難理解,所以實(shí)現盡量簡(jiǎn)潔。
  1. 數據集
  用一個(gè)列表來(lái)表示多條交易記錄,每條交易記錄也用一個(gè)列表來(lái)表示一個(gè)項集。
  data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
  2. 創(chuàng )建初始候選集
  這里使用frozenset不可變集合,用于后續以集合為key的支持字典的計算。
  def apriori(data_set):
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
  3. 從候選項集中選擇頻繁項集
  如下圖所示,我們需要從初始的候選項集中計算出k個(gè)頻繁項集,所以這里的封裝函數用于每次計算頻繁項集和支持度,當候選項集中的每個(gè)元素都存在于對事務(wù)記錄集進(jìn)行統計并存入字典,計算出支持度后輸出頻繁項集和支持度。
  def generate_freq_supports(data_set, item_set, min_support):
freq_set = set() # 保存頻繁項集元素
item_count = {} # 保存元素頻次,用于計算支持度
supports = {} # 保存支持度
# 如果項集中元素在數據集中則計數
for record in data_set:
for item in item_set:
if item.issubset(record):
if item not in item_count:
item_count[item] = 1
else:
item_count[item] += 1
data_len = float(len(data_set))
# 計算項集支持度
for item in item_count:
if (item_count[item] / data_len) >= min_support:
freq_set.add(item)
supports[item] = item_count[item] / data_len
return freq_set, supports
  4.生成新組合
  {1, 2, 3, 5}的頻繁項集將從初始候選集生成,后面需要生成一個(gè)新的候選集Ck。
  def generate_new_combinations(freq_set, k):
new_combinations = set() # 保存新組合
sets_len = len(freq_set) # 集合含有元素個(gè)數,用于遍歷求得組合
freq_set_list = list(freq_set) # 集合轉為列表用于索引
for i in range(sets_len):
for j in range(i + 1, sets_len):
l1 = list(freq_set_list[i])
l2 = list(freq_set_list[j])
l1.sort()
l2.sort()
# 項集若有相同的父集則合并項集
if l1[0:k-2] == l2[0:k-2]:
freq_item = freq_set_list[i] | freq_set_list[j]
new_combinations.add(freq_item)
return new_combinations
  
  5.循環(huán)生成候選集和頻繁集
  def apriori(data_set, min_support, max_len=None):
max_items = 2 # 初始項集元素個(gè)數
freq_sets = [] # 保存所有頻繁項集
supports = {} # 保存所有支持度
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
# 頻繁項1項集及其支持度
l1, support1 = generate_freq_supports(data_set, c1, min_support)
freq_sets.append(l1)
supports.update(support1)
if max_len is None:
max_len = float('inf')
while max_items and max_items = min_conf:
rules.append(rule)
return rules
  7.主程序
  if __name__ == '__main__':
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
L, support_data = apriori(data, min_support=0.5)
rules = association_rules(L, support_data, min_conf=0.7)
print('='*50)
print('frequent \t\tsupport')
print('='*50)
for i in L:
for j in i:
print(set(j), '\t\t', support_data[j])
print()
print('='*50)
print('antecedent consequent \t\tconf')
print('='*50)
rules = association_rules(L, support_data, min_conf=0.7)
for _rule in rules:
print('{} => {}\t\t{}'.format(set(_rule[0]), set(_rule[1]), _rule[2]))
  
  Mlxtend 實(shí)現
  Mlxtend 是用于日常數據科學(xué)任務(wù)的 Python 庫。這個(gè)庫是google在搜索Apriori算法信息時(shí)給出的搜索結果之一。通過(guò)庫的文檔可以發(fā)現,庫的frequent_patterns模塊實(shí)現了Apriori算法,挖掘關(guān)聯(lián)規則。有興趣的可以自行搜索相關(guān)文檔。當然,如果自己實(shí)現的話(huà),整個(gè)算法的思路會(huì )更加清晰。具體實(shí)現如下:
  import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, min_threshold=0.7)
  通過(guò)TransactionEncoder轉換成正確的數據格式,然后使用apriori函數生成頻繁項集,最后使用association_rules生成關(guān)聯(lián)規則??梢钥闯?,編碼后的數據實(shí)際上是一個(gè)特征矩陣,每一列對應一個(gè)項集元素。
  
  
   查看全部

  免規則采集器列表算法(Apriori算法(A)/B同時(shí)出現的概率占A出現概率
)
  介紹
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值配置文件
  Apriori 是一種流行的算法,用于在關(guān)聯(lián)規則學(xué)習中提取頻繁項集。Apriori 算法旨在對收錄交易的數據庫進(jìn)行操作,例如商店客戶(hù)的購買(mǎi)。如果滿(mǎn)足用戶(hù)指定的支持閾值,則項集被認為是“頻繁的”。例如,如果支持閾值設置為 0.5 (50%),則頻繁項集定義為在數據庫中至少 50% 的所有事務(wù)中一起出現的項集?;贏(yíng)priori算法,我們可以從海量的用戶(hù)行為數據中找到關(guān)聯(lián)規則的頻繁項集組合,例如挖掘購物行業(yè)用戶(hù)的頻繁購買(mǎi)組合。
  定義
  支持度(support):support(A=>B) = P(A∪B),表示A和B同時(shí)出現的概率。
  confidence:confidence(A=>B)=support(A∪B)/support(A),表示A和B同時(shí)出現的概率與A出現的概率的比值。
  頻繁項集:在項集中頻繁出現且滿(mǎn)足最小支持閾值的集合,如{牛奶、面包}、{手機、手機殼}等。
  強關(guān)聯(lián)規則:滿(mǎn)足最小支持度和最小置信度的關(guān)聯(lián)規則。
  算法步驟從記錄中計算所有候選項集,并計算頻繁項集和支持。k-item 候選集是從頻繁的 1-item 集生成的,k-item 頻繁集是從 k-item 候選集計算出來(lái)的。用k-item頻繁集生成所有關(guān)聯(lián)規則,計算生成規則的置信度,過(guò)濾滿(mǎn)足最小置信度的關(guān)聯(lián)規則。先驗原理
  任何頻繁項的所有非空子集也必須是頻繁的。即在生成k-item候選集時(shí),如果候選集中的元素不在k-1項頻繁集中,則該元素一定不是頻繁集。這時(shí)候不需要計算支持度,直接去掉即可。例如,我們有一個(gè)由 0、1、2、3 組成的集合,下面是它的所有項集組合:
  
  從 1 個(gè)項集計算 k 個(gè)項集的支持度,當我們計算出 {0,1} 集在 2 個(gè)項集候選集中不頻繁時(shí),那么它的所有子集都是不頻繁的,即 2 個(gè)項集 {0 , 1, 2} 和?? { 0, 1, 3} 也是不頻繁的,它們的子集 {0, 1, 2, 3} 也是不頻繁的,我們不需要計算不頻繁集的支持度。
  
  當所有的頻繁項都找到后,需要從頻繁集中挖掘出所有的關(guān)聯(lián)規則。假設頻繁項集{0, 1, 2, 3},下圖顯示了它生成的所有關(guān)聯(lián)規則。規則,它們的子集也將是低置信度。
  
  Python 實(shí)現
  網(wǎng)上一些Apriori算法的Python實(shí)現,其實(shí)并不符合python風(fēng)格。還有一點(diǎn)就是有點(diǎn)難理解,所以實(shí)現盡量簡(jiǎn)潔。
  1. 數據集
  用一個(gè)列表來(lái)表示多條交易記錄,每條交易記錄也用一個(gè)列表來(lái)表示一個(gè)項集。
  data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
  2. 創(chuàng )建初始候選集
  這里使用frozenset不可變集合,用于后續以集合為key的支持字典的計算。
  def apriori(data_set):
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
  3. 從候選項集中選擇頻繁項集
  如下圖所示,我們需要從初始的候選項集中計算出k個(gè)頻繁項集,所以這里的封裝函數用于每次計算頻繁項集和支持度,當候選項集中的每個(gè)元素都存在于對事務(wù)記錄集進(jìn)行統計并存入字典,計算出支持度后輸出頻繁項集和支持度。
  def generate_freq_supports(data_set, item_set, min_support):
freq_set = set() # 保存頻繁項集元素
item_count = {} # 保存元素頻次,用于計算支持度
supports = {} # 保存支持度
# 如果項集中元素在數據集中則計數
for record in data_set:
for item in item_set:
if item.issubset(record):
if item not in item_count:
item_count[item] = 1
else:
item_count[item] += 1
data_len = float(len(data_set))
# 計算項集支持度
for item in item_count:
if (item_count[item] / data_len) >= min_support:
freq_set.add(item)
supports[item] = item_count[item] / data_len
return freq_set, supports
  4.生成新組合
  {1, 2, 3, 5}的頻繁項集將從初始候選集生成,后面需要生成一個(gè)新的候選集Ck。
  def generate_new_combinations(freq_set, k):
new_combinations = set() # 保存新組合
sets_len = len(freq_set) # 集合含有元素個(gè)數,用于遍歷求得組合
freq_set_list = list(freq_set) # 集合轉為列表用于索引
for i in range(sets_len):
for j in range(i + 1, sets_len):
l1 = list(freq_set_list[i])
l2 = list(freq_set_list[j])
l1.sort()
l2.sort()
# 項集若有相同的父集則合并項集
if l1[0:k-2] == l2[0:k-2]:
freq_item = freq_set_list[i] | freq_set_list[j]
new_combinations.add(freq_item)
return new_combinations
  
  5.循環(huán)生成候選集和頻繁集
  def apriori(data_set, min_support, max_len=None):
max_items = 2 # 初始項集元素個(gè)數
freq_sets = [] # 保存所有頻繁項集
supports = {} # 保存所有支持度
# 候選項1項集
c1 = set()
for items in data_set:
for item in items:
item_set = frozenset([item])
c1.add(item_set)
# 頻繁項1項集及其支持度
l1, support1 = generate_freq_supports(data_set, c1, min_support)
freq_sets.append(l1)
supports.update(support1)
if max_len is None:
max_len = float('inf')
while max_items and max_items = min_conf:
rules.append(rule)
return rules
  7.主程序
  if __name__ == '__main__':
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
L, support_data = apriori(data, min_support=0.5)
rules = association_rules(L, support_data, min_conf=0.7)
print('='*50)
print('frequent \t\tsupport')
print('='*50)
for i in L:
for j in i:
print(set(j), '\t\t', support_data[j])
print()
print('='*50)
print('antecedent consequent \t\tconf')
print('='*50)
rules = association_rules(L, support_data, min_conf=0.7)
for _rule in rules:
print('{} => {}\t\t{}'.format(set(_rule[0]), set(_rule[1]), _rule[2]))
  
  Mlxtend 實(shí)現
  Mlxtend 是用于日常數據科學(xué)任務(wù)的 Python 庫。這個(gè)庫是google在搜索Apriori算法信息時(shí)給出的搜索結果之一。通過(guò)庫的文檔可以發(fā)現,庫的frequent_patterns模塊實(shí)現了Apriori算法,挖掘關(guān)聯(lián)規則。有興趣的可以自行搜索相關(guān)文檔。當然,如果自己實(shí)現的話(huà),整個(gè)算法的思路會(huì )更加清晰。具體實(shí)現如下:
  import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
data = [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]]
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, min_threshold=0.7)
  通過(guò)TransactionEncoder轉換成正確的數據格式,然后使用apriori函數生成頻繁項集,最后使用association_rules生成關(guān)聯(lián)規則??梢钥闯?,編碼后的數據實(shí)際上是一個(gè)特征矩陣,每一列對應一個(gè)項集元素。
  
  
  

免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2022-04-05 01:04 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表
)
  2
  同時(shí)可以觀(guān)察到需要采集的字段顯示在列表頁(yè)頁(yè)面
  
  第三步:
  那么采集器中的起始URL就可以使用批量URL的操作了:
  
  打開(kāi)列表頁(yè)URL源代碼,獲取源代碼中提取內容頁(yè)URL的字符串:
  
  同時(shí)可以看到需要采集的字段也存在于列表頁(yè)的源碼中(在列表頁(yè)的源碼中可以看到td位置對應的值需要采集的字段),則可以直接進(jìn)入列表頁(yè)采集
  
  用組合標簽獲取列表頁(yè)中所有需要的數據,然后在內容頁(yè)的采集規則中細分多個(gè)標簽。
  第四步:
  處理組合標簽,使組合標簽中的數據只
  數據
  ,以方便分割標簽的提取。
  
  然后在細分標簽中使用組合標簽,根據td的個(gè)數提取出來(lái):比如廠(chǎng)家名稱(chēng)(第一個(gè)td中的值)
  
  第五步:
  例如電話(huà)標簽(這是第三個(gè) td 中的值)
  
  
  每周一采集數據和采集規則的時(shí)間為2019年10月30日文件發(fā)布后5個(gè)工作日內。采集該規則涉及商業(yè)版功能,建議用戶(hù)登錄商業(yè)版使用該規則。
  數據采集??資格:優(yōu)采云采集器/優(yōu)采云Browser/Touch Genius商業(yè)版軟件用戶(hù)(服務(wù)期內),如果您不是商業(yè)用戶(hù)或已過(guò)了服務(wù)期,而且如果您想參加活動(dòng),您可以購買(mǎi)新軟件或升級更新費用,以便您參加活動(dòng)!告訴我,雙11優(yōu)采云活動(dòng)折扣很大!活動(dòng)將于11月1日開(kāi)始,詳情請訪(fǎng)問(wèn)官網(wǎng):查看。
  如何獲取數據:
  第一步:掃碼添加優(yōu)采云運營(yíng)微信公眾號,優(yōu)采云運營(yíng)助手會(huì )拉你進(jìn)入活動(dòng)群。
  
  第二步:進(jìn)群后,添加數據咨詢(xún)客服。雅的微信賬號在服務(wù)期內經(jīng)客服驗證為企業(yè)用戶(hù)即可獲取。
  好了,本期《每周一數數》就到此為止。如果還想獲取更多的數據資源和采集器規則,可以在文章下方或者公眾號后臺留言。小菜會(huì )根據大家的意見(jiàn),在下一期中挑選出數據。哦主題!
   查看全部

  免規則采集器列表算法(采集器中起始網(wǎng)址可以使用批量網(wǎng)址的字段都在列表
)
  2
  同時(shí)可以觀(guān)察到需要采集的字段顯示在列表頁(yè)頁(yè)面
  
  第三步:
  那么采集器中的起始URL就可以使用批量URL的操作了:
  
  打開(kāi)列表頁(yè)URL源代碼,獲取源代碼中提取內容頁(yè)URL的字符串:
  
  同時(shí)可以看到需要采集的字段也存在于列表頁(yè)的源碼中(在列表頁(yè)的源碼中可以看到td位置對應的值需要采集的字段),則可以直接進(jìn)入列表頁(yè)采集
  
  用組合標簽獲取列表頁(yè)中所有需要的數據,然后在內容頁(yè)的采集規則中細分多個(gè)標簽。
  第四步:
  處理組合標簽,使組合標簽中的數據只
  數據
  ,以方便分割標簽的提取。
  
  然后在細分標簽中使用組合標簽,根據td的個(gè)數提取出來(lái):比如廠(chǎng)家名稱(chēng)(第一個(gè)td中的值)
  
  第五步:
  例如電話(huà)標簽(這是第三個(gè) td 中的值)
  
  
  每周一采集數據和采集規則的時(shí)間為2019年10月30日文件發(fā)布后5個(gè)工作日內。采集該規則涉及商業(yè)版功能,建議用戶(hù)登錄商業(yè)版使用該規則。
  數據采集??資格:優(yōu)采云采集器/優(yōu)采云Browser/Touch Genius商業(yè)版軟件用戶(hù)(服務(wù)期內),如果您不是商業(yè)用戶(hù)或已過(guò)了服務(wù)期,而且如果您想參加活動(dòng),您可以購買(mǎi)新軟件或升級更新費用,以便您參加活動(dòng)!告訴我,雙11優(yōu)采云活動(dòng)折扣很大!活動(dòng)將于11月1日開(kāi)始,詳情請訪(fǎng)問(wèn)官網(wǎng):查看。
  如何獲取數據:
  第一步:掃碼添加優(yōu)采云運營(yíng)微信公眾號,優(yōu)采云運營(yíng)助手會(huì )拉你進(jìn)入活動(dòng)群。
  
  第二步:進(jìn)群后,添加數據咨詢(xún)客服。雅的微信賬號在服務(wù)期內經(jīng)客服驗證為企業(yè)用戶(hù)即可獲取。
  好了,本期《每周一數數》就到此為止。如果還想獲取更多的數據資源和采集器規則,可以在文章下方或者公眾號后臺留言。小菜會(huì )根據大家的意見(jiàn),在下一期中挑選出數據。哦主題!
  

免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 83 次瀏覽 ? 2022-04-04 23:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)
  現在越來(lái)越多的網(wǎng)站使用了一個(gè)叫做優(yōu)采云采集器的采集軟件,在采集之后發(fā)布操作或多或少會(huì )遇到一系列問(wèn)題,但是客服只為付費客戶(hù)服務(wù),找人處理也不便宜。這個(gè)時(shí)候你是不是很頭疼?今天給大家分享一下上傳圖片時(shí)提示421 Too many connections (10) from this IP)的終極解決方案。
  優(yōu)采云采集上傳圖片時(shí)提示421
  在采集之后的發(fā)布操作中,或多或少會(huì )遇到提示421 Too many connections (10) from this IP 上傳圖片時(shí),
  
  別著(zhù)急,這只是一道小菜,下面教你如何對付他。
  421提示解決方法:重啟FTP
  這個(gè)421提示往往是ftp中的一個(gè)小異常導致上傳文件失敗。我們可以選擇重啟ftp軟件嘗試解決21提示問(wèn)題。以下是一些常見(jiàn)的解決方案:
  1、如果是從寶塔安裝的,那么進(jìn)入寶塔面板后,找到軟件管理界面,會(huì )有很多免費和付費的插件,只需要重啟ftp就可以完美解決這個(gè)問(wèn)題;
  2、如果上面的重啟方法對你來(lái)說(shuō)有難度的話(huà),除了上面的重啟方法,還有一種更簡(jiǎn)單的。在寶塔面板的“首頁(yè)”上尋找軟件模塊,里面也會(huì )有ftp。,如下所示
  
  按照上圖從左到右搜索,方法很簡(jiǎn)單,找到他點(diǎn)擊他,最后點(diǎn)擊重啟按鈕,然后去優(yōu)采云發(fā)布試試看。 查看全部

  免規則采集器列表算法(優(yōu)采云采集上傳圖片時(shí)提示421Tooconnections(10)fromthisIP的終極解決方法)
  現在越來(lái)越多的網(wǎng)站使用了一個(gè)叫做優(yōu)采云采集器的采集軟件,在采集之后發(fā)布操作或多或少會(huì )遇到一系列問(wèn)題,但是客服只為付費客戶(hù)服務(wù),找人處理也不便宜。這個(gè)時(shí)候你是不是很頭疼?今天給大家分享一下上傳圖片時(shí)提示421 Too many connections (10) from this IP)的終極解決方案。
  優(yōu)采云采集上傳圖片時(shí)提示421
  在采集之后的發(fā)布操作中,或多或少會(huì )遇到提示421 Too many connections (10) from this IP 上傳圖片時(shí),
  
  別著(zhù)急,這只是一道小菜,下面教你如何對付他。
  421提示解決方法:重啟FTP
  這個(gè)421提示往往是ftp中的一個(gè)小異常導致上傳文件失敗。我們可以選擇重啟ftp軟件嘗試解決21提示問(wèn)題。以下是一些常見(jiàn)的解決方案:
  1、如果是從寶塔安裝的,那么進(jìn)入寶塔面板后,找到軟件管理界面,會(huì )有很多免費和付費的插件,只需要重啟ftp就可以完美解決這個(gè)問(wèn)題;
  2、如果上面的重啟方法對你來(lái)說(shuō)有難度的話(huà),除了上面的重啟方法,還有一種更簡(jiǎn)單的。在寶塔面板的“首頁(yè)”上尋找軟件模塊,里面也會(huì )有ftp。,如下所示
  
  按照上圖從左到右搜索,方法很簡(jiǎn)單,找到他點(diǎn)擊他,最后點(diǎn)擊重啟按鈕,然后去優(yōu)采云發(fā)布試試看。

免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 119 次瀏覽 ? 2022-04-03 08:08 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)
  免規則采集器列表算法修改技術(shù)能力強,我見(jiàn)過(guò)sparkstreaming只用了一小時(shí)以?xún)热缓缶湍芊?wù)百萬(wàn)用戶(hù)那種,比我見(jiàn)過(guò)的ceo數量多很多.技術(shù)修煉過(guò)的人,并且已經(jīng)利用好技術(shù)來(lái)服務(wù)用戶(hù)的,
  ,傳送門(mén):
  先看能力,再看經(jīng)驗。北京有哪些有潛力的創(chuàng )業(yè)團隊?首頁(yè)-avazu-com歡迎試水。
  知乎有討論一個(gè)私人問(wèn)題:如何評價(jià)本人從頭至尾設計的產(chǎn)品-不需要下載,只要點(diǎn)開(kāi)就可以讓每個(gè)人都可以免費使用的正版操作系統-知乎?-產(chǎn)品,你可以看看創(chuàng )業(yè)就是磨練技能和提高忍耐力的過(guò)程,你再看看這問(wèn)題。
  應該隨便問(wèn)就能有人答吧。
  ?;丶铱纯?!
  上網(wǎng)應用、咨詢(xún)產(chǎn)品領(lǐng)域用戶(hù)粘性不高,體量太小,前景一般,除非說(shuō)領(lǐng)域內先樹(shù)立一個(gè)標桿品牌,然后逐步做好口碑,有先發(fā)優(yōu)勢的優(yōu)勢,畢竟5g電信網(wǎng)絡(luò )普及之后,本地服務(wù)業(yè)會(huì )出現爆發(fā)性增長(cháng),不僅僅是簡(jiǎn)單的軟件或互聯(lián)網(wǎng)業(yè)務(wù)提供。
  創(chuàng )業(yè)就是改變一種環(huán)境,至于怎么改變,怎么適應環(huán)境,完全看個(gè)人能力。有人說(shuō)電視臺會(huì )逐步被自動(dòng)機取代,因為傳統電視臺太重了,等社交媒體普及,整個(gè)電視臺都已經(jīng)不復存在了。微信和小程序也正在往服務(wù)業(yè)方向做布局,一個(gè)互聯(lián)網(wǎng)只是一個(gè)加法關(guān)系,你就是如何成為未來(lái)的社會(huì )中心。 查看全部

  免規則采集器列表算法(免規則采集器列表算法修改技術(shù)能力強,北京有哪些有潛力的創(chuàng )業(yè)團隊?)
  免規則采集器列表算法修改技術(shù)能力強,我見(jiàn)過(guò)sparkstreaming只用了一小時(shí)以?xún)热缓缶湍芊?wù)百萬(wàn)用戶(hù)那種,比我見(jiàn)過(guò)的ceo數量多很多.技術(shù)修煉過(guò)的人,并且已經(jīng)利用好技術(shù)來(lái)服務(wù)用戶(hù)的,
  ,傳送門(mén):
  先看能力,再看經(jīng)驗。北京有哪些有潛力的創(chuàng )業(yè)團隊?首頁(yè)-avazu-com歡迎試水。
  知乎有討論一個(gè)私人問(wèn)題:如何評價(jià)本人從頭至尾設計的產(chǎn)品-不需要下載,只要點(diǎn)開(kāi)就可以讓每個(gè)人都可以免費使用的正版操作系統-知乎?-產(chǎn)品,你可以看看創(chuàng )業(yè)就是磨練技能和提高忍耐力的過(guò)程,你再看看這問(wèn)題。
  應該隨便問(wèn)就能有人答吧。
  ?;丶铱纯?!
  上網(wǎng)應用、咨詢(xún)產(chǎn)品領(lǐng)域用戶(hù)粘性不高,體量太小,前景一般,除非說(shuō)領(lǐng)域內先樹(shù)立一個(gè)標桿品牌,然后逐步做好口碑,有先發(fā)優(yōu)勢的優(yōu)勢,畢竟5g電信網(wǎng)絡(luò )普及之后,本地服務(wù)業(yè)會(huì )出現爆發(fā)性增長(cháng),不僅僅是簡(jiǎn)單的軟件或互聯(lián)網(wǎng)業(yè)務(wù)提供。
  創(chuàng )業(yè)就是改變一種環(huán)境,至于怎么改變,怎么適應環(huán)境,完全看個(gè)人能力。有人說(shuō)電視臺會(huì )逐步被自動(dòng)機取代,因為傳統電視臺太重了,等社交媒體普及,整個(gè)電視臺都已經(jīng)不復存在了。微信和小程序也正在往服務(wù)業(yè)方向做布局,一個(gè)互聯(lián)網(wǎng)只是一個(gè)加法關(guān)系,你就是如何成為未來(lái)的社會(huì )中心。

免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 140 次瀏覽 ? 2022-04-02 19:25 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器
)
  軟件介紹:上一頁(yè)優(yōu)采云采集cms全站大移V1.0 免費版最新無(wú)限破解版測試可用下一頁(yè)Pakku(bilibili彈幕過(guò)濾瀏覽器)V 8.10.1 Chrome版最新無(wú)限破解版測試可用
  本軟件由啟道奇為您精心采集,轉載自網(wǎng)絡(luò )。收錄軟件為正式版,軟件著(zhù)作權歸軟件作者所有。以下是其具體內容:
  優(yōu)采云采集器是新一代智能網(wǎng)頁(yè)采集工具,智能分析,可視化界面,一鍵式采集無(wú)需編程,支持自動(dòng)生成采集可以采集99% 的互聯(lián)網(wǎng)網(wǎng)站 的腳本。該軟件簡(jiǎn)單易學(xué)。通過(guò)智能算法+可視化界面,你可以抓取任何你想要的數據。采集網(wǎng)頁(yè)上的數據只需點(diǎn)擊一下即可。
  
  【軟件特色】
  一鍵提取數據
  簡(jiǎn)單易學(xué),通過(guò)可視化界面,鼠標點(diǎn)擊即可抓取數據
  快速高效
  內置一套高速瀏覽器內核,配合HTTP引擎模式,實(shí)現快速采集數據
  適用于各種網(wǎng)站
  能夠采集99%的互聯(lián)網(wǎng)網(wǎng)站,包括單頁(yè)應用Ajax加載等動(dòng)態(tài)類(lèi)型網(wǎng)站
  【特征】
  向導模式
  使用簡(jiǎn)單,通過(guò)鼠標點(diǎn)擊輕松自動(dòng)生成
  定期運行的腳本
  無(wú)需人工即可按計劃運行
  原裝高速核心
  自研瀏覽器內核速度快,遠超對手
  智能識別
  智能識別網(wǎng)頁(yè)中的列表和表單結構(多選框下拉列表等)
  廣告攔截
  自定義廣告攔截模塊,兼容AdblockPlus語(yǔ)法,可添加自定義規則
  各種數據導出
  支持Txt、Excel、MySQL、SQLServer、SQlite、Access、網(wǎng)站等。
  
  【手動(dòng)的】
  輸入 采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  將數據導出到表、數據庫、網(wǎng)站 等。
  運行任務(wù),將采集中的數據導出到Csv、Excel等各種數據庫,支持api導出。
  
  【常見(jiàn)問(wèn)題】
  Q:如何過(guò)濾列表中的前N個(gè)數據?
  1、有時(shí)候我們需要對采集收到的列表進(jìn)行過(guò)濾,比如過(guò)濾掉第一組數據(當采集表時(shí),過(guò)濾掉表列名)
  2、點(diǎn)擊列表模式菜單設置列表xpath
  Q:如何抓包獲取cookies并手動(dòng)設置?
  1、首先,使用谷歌瀏覽器打開(kāi)網(wǎng)站為采集,并登錄。
  2、 然后按F12,會(huì )出現開(kāi)發(fā)者工具,選擇Network
  3、然后按 F5 刷新下一頁(yè)并選擇其中一個(gè)請求。
  4、復制完成后,在優(yōu)采云采集器中,編輯任務(wù),進(jìn)入第三步,指定HTTP Header。
  【更新日志】
  V2.1.8.0
  1、添加插件功能
  2、添加導出txt(一個(gè)文件保存為一個(gè)文件)
  3、多值連接器支持換行
  4、修改數據處理的文本圖(支持查找和替換)
  5、修復了登錄時(shí)的 DNS 問(wèn)題
  6、修復圖片下載問(wèn)題
  7、修復一些json問(wèn)題
  【下載鏈接】
  優(yōu)采云采集器 V2.1.8.0 正式版 查看全部

  免規則采集器列表算法(如何過(guò)濾列表中的前N個(gè)數據?采集器
)
  軟件介紹:上一頁(yè)優(yōu)采云采集cms全站大移V1.0 免費版最新無(wú)限破解版測試可用下一頁(yè)Pakku(bilibili彈幕過(guò)濾瀏覽器)V 8.10.1 Chrome版最新無(wú)限破解版測試可用
  本軟件由啟道奇為您精心采集,轉載自網(wǎng)絡(luò )。收錄軟件為正式版,軟件著(zhù)作權歸軟件作者所有。以下是其具體內容:
  優(yōu)采云采集器是新一代智能網(wǎng)頁(yè)采集工具,智能分析,可視化界面,一鍵式采集無(wú)需編程,支持自動(dòng)生成采集可以采集99% 的互聯(lián)網(wǎng)網(wǎng)站 的腳本。該軟件簡(jiǎn)單易學(xué)。通過(guò)智能算法+可視化界面,你可以抓取任何你想要的數據。采集網(wǎng)頁(yè)上的數據只需點(diǎn)擊一下即可。
  
  【軟件特色】
  一鍵提取數據
  簡(jiǎn)單易學(xué),通過(guò)可視化界面,鼠標點(diǎn)擊即可抓取數據
  快速高效
  內置一套高速瀏覽器內核,配合HTTP引擎模式,實(shí)現快速采集數據
  適用于各種網(wǎng)站
  能夠采集99%的互聯(lián)網(wǎng)網(wǎng)站,包括單頁(yè)應用Ajax加載等動(dòng)態(tài)類(lèi)型網(wǎng)站
  【特征】
  向導模式
  使用簡(jiǎn)單,通過(guò)鼠標點(diǎn)擊輕松自動(dòng)生成
  定期運行的腳本
  無(wú)需人工即可按計劃運行
  原裝高速核心
  自研瀏覽器內核速度快,遠超對手
  智能識別
  智能識別網(wǎng)頁(yè)中的列表和表單結構(多選框下拉列表等)
  廣告攔截
  自定義廣告攔截模塊,兼容AdblockPlus語(yǔ)法,可添加自定義規則
  各種數據導出
  支持Txt、Excel、MySQL、SQLServer、SQlite、Access、網(wǎng)站等。
  
  【手動(dòng)的】
  輸入 采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  將數據導出到表、數據庫、網(wǎng)站 等。
  運行任務(wù),將采集中的數據導出到Csv、Excel等各種數據庫,支持api導出。
  
  【常見(jiàn)問(wèn)題】
  Q:如何過(guò)濾列表中的前N個(gè)數據?
  1、有時(shí)候我們需要對采集收到的列表進(jìn)行過(guò)濾,比如過(guò)濾掉第一組數據(當采集表時(shí),過(guò)濾掉表列名)
  2、點(diǎn)擊列表模式菜單設置列表xpath
  Q:如何抓包獲取cookies并手動(dòng)設置?
  1、首先,使用谷歌瀏覽器打開(kāi)網(wǎng)站為采集,并登錄。
  2、 然后按F12,會(huì )出現開(kāi)發(fā)者工具,選擇Network
  3、然后按 F5 刷新下一頁(yè)并選擇其中一個(gè)請求。
  4、復制完成后,在優(yōu)采云采集器中,編輯任務(wù),進(jìn)入第三步,指定HTTP Header。
  【更新日志】
  V2.1.8.0
  1、添加插件功能
  2、添加導出txt(一個(gè)文件保存為一個(gè)文件)
  3、多值連接器支持換行
  4、修改數據處理的文本圖(支持查找和替換)
  5、修復了登錄時(shí)的 DNS 問(wèn)題
  6、修復圖片下載問(wèn)題
  7、修復一些json問(wèn)題
  【下載鏈接】
  優(yōu)采云采集器 V2.1.8.0 正式版

免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 187 次瀏覽 ? 2022-04-02 19:24 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據
)
  指示
  一:輸入采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  二:智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  三:導出數據到表、數據庫、網(wǎng)站等
  運行任務(wù)將采集中的數據導出到表、網(wǎng)站和各種數據庫中,并支持api導出。
  計算機系統要求
  它可以支持Windows XP以上的系統。
  .Net 4.0 框架,下載地址
  安裝步驟
  第一步:打開(kāi)下載的安裝包,直接選擇運行。
  第二步:收到相關(guān)條款后,運行安裝程序PashanhuV2Setup.exe。安裝
  
  第3步:然后繼續單擊下一步直到完成。
  第四步:安裝完成后可以看到優(yōu)采云采集器V2的主界面
  
  常問(wèn)問(wèn)題
  1、如何采集移動(dòng)網(wǎng)頁(yè)數據?
  一般情況下,一個(gè)網(wǎng)站有電腦版網(wǎng)頁(yè)和手機版網(wǎng)頁(yè)。如果電腦版(PC)網(wǎng)頁(yè)的反爬蟲(chóng)非常嚴格,我們可以嘗試爬取手機網(wǎng)頁(yè)。
 ?、龠x擇新的編輯任務(wù);
 ?、谠谛陆ǖ摹揪庉嬋蝿?wù)】中,選擇【第三步,設置】;
  
 ?、?將UA(瀏覽器ID)設置為“手機”。
  2、如何手動(dòng)選擇列表數據(自動(dòng)識別失敗時(shí))
  在采集列表頁(yè)面,如果列表自動(dòng)識別失敗,或者識別出的數據不是我們想到的數據,那么我們需要手動(dòng)選擇列表數據。
  如何手動(dòng)選擇列表數據?
 ?、冱c(diǎn)擊【全部清除】,清除已有字段。
  
 ?、邳c(diǎn)擊菜單欄上的【列表數據】,選擇【選擇列表】
  
 ?、?用鼠標單擊列表中的任意元素。
  
 ?、?單擊列表中另一行的相似元素。
  
  一般情況下,此時(shí)采集器會(huì )自動(dòng)枚舉列表中的所有字段。我們可以對結果進(jìn)行一些修改。
  如果沒(méi)有列出字段,我們需要手動(dòng)添加字段。單擊[添加字段],然后單擊列表中的元素數據。
  3、采集文章鼠標不能全選怎么辦?
  一般情況下,在優(yōu)采云采集器中,點(diǎn)擊鼠標選擇要抓取的內容。但是,在某些情況下,比如要抓取一個(gè)文章的完整內容時(shí),當內容較長(cháng)時(shí),鼠標有時(shí)會(huì )難以定位。
 ?、傥覀兛梢酝ㄟ^(guò)在網(wǎng)頁(yè)上右擊選擇【Inspect Element】來(lái)定位內容。
  
 ?、?點(diǎn)擊【向上】按鈕,展開(kāi)選中的內容。
  
 ?、?展開(kāi)到我們全部?jì)热莸臅r(shí)候,全選【XPath】,然后復制。
  
 ?、苄薷淖侄蔚腦Path,粘貼剛才復制的XPath,確認。
  
 ?、?最后修改value屬性,如果要HMTL,使用InnerHTML或OuterHTML。
   查看全部

  免規則采集器列表算法(如何采集手機版網(wǎng)頁(yè)的數據?如何手動(dòng)選擇列表數據
)
  指示
  一:輸入采集網(wǎng)址
  打開(kāi)軟件,新建一個(gè)任務(wù),輸入需要采集的網(wǎng)站地址。
  二:智能分析,全程數據自動(dòng)提取
  進(jìn)入第二步后,優(yōu)采云采集器自動(dòng)智能分析網(wǎng)頁(yè),從中提取列表數據。
  三:導出數據到表、數據庫、網(wǎng)站等
  運行任務(wù)將采集中的數據導出到表、網(wǎng)站和各種數據庫中,并支持api導出。
  計算機系統要求
  它可以支持Windows XP以上的系統。
  .Net 4.0 框架,下載地址
  安裝步驟
  第一步:打開(kāi)下載的安裝包,直接選擇運行。
  第二步:收到相關(guān)條款后,運行安裝程序PashanhuV2Setup.exe。安裝
  
  第3步:然后繼續單擊下一步直到完成。
  第四步:安裝完成后可以看到優(yōu)采云采集器V2的主界面
  
  常問(wèn)問(wèn)題
  1、如何采集移動(dòng)網(wǎng)頁(yè)數據?
  一般情況下,一個(gè)網(wǎng)站有電腦版網(wǎng)頁(yè)和手機版網(wǎng)頁(yè)。如果電腦版(PC)網(wǎng)頁(yè)的反爬蟲(chóng)非常嚴格,我們可以嘗試爬取手機網(wǎng)頁(yè)。
 ?、龠x擇新的編輯任務(wù);
 ?、谠谛陆ǖ摹揪庉嬋蝿?wù)】中,選擇【第三步,設置】;
  
 ?、?將UA(瀏覽器ID)設置為“手機”。
  2、如何手動(dòng)選擇列表數據(自動(dòng)識別失敗時(shí))
  在采集列表頁(yè)面,如果列表自動(dòng)識別失敗,或者識別出的數據不是我們想到的數據,那么我們需要手動(dòng)選擇列表數據。
  如何手動(dòng)選擇列表數據?
 ?、冱c(diǎn)擊【全部清除】,清除已有字段。
  
 ?、邳c(diǎn)擊菜單欄上的【列表數據】,選擇【選擇列表】
  
 ?、?用鼠標單擊列表中的任意元素。
  
 ?、?單擊列表中另一行的相似元素。
  
  一般情況下,此時(shí)采集器會(huì )自動(dòng)枚舉列表中的所有字段。我們可以對結果進(jìn)行一些修改。
  如果沒(méi)有列出字段,我們需要手動(dòng)添加字段。單擊[添加字段],然后單擊列表中的元素數據。
  3、采集文章鼠標不能全選怎么辦?
  一般情況下,在優(yōu)采云采集器中,點(diǎn)擊鼠標選擇要抓取的內容。但是,在某些情況下,比如要抓取一個(gè)文章的完整內容時(shí),當內容較長(cháng)時(shí),鼠標有時(shí)會(huì )難以定位。
 ?、傥覀兛梢酝ㄟ^(guò)在網(wǎng)頁(yè)上右擊選擇【Inspect Element】來(lái)定位內容。
  
 ?、?點(diǎn)擊【向上】按鈕,展開(kāi)選中的內容。
  
 ?、?展開(kāi)到我們全部?jì)热莸臅r(shí)候,全選【XPath】,然后復制。
  
 ?、苄薷淖侄蔚腦Path,粘貼剛才復制的XPath,確認。
  
 ?、?最后修改value屬性,如果要HMTL,使用InnerHTML或OuterHTML。
  

免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 352 次瀏覽 ? 2022-04-01 03:13 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)
  WordPress采集,作為網(wǎng)站 每日更新的工具。解決了網(wǎng)站日常維護更新的麻煩問(wèn)題,特別是全網(wǎng)批量自動(dòng)采集,讓網(wǎng)站的內容再也不用擔心,有是 文章 源源不斷的 網(wǎng)站 帖子。仔細閱讀下面的文字。WordPress采集的重點(diǎn)都在本文的四張圖里。忽略文字,直接看圖。[圖一,永遠免費,WordPress采集]
  
  WordPress采集要求采集源站是不斷更新的能力,是對優(yōu)質(zhì)內容的選擇性選擇采集。一方面可以經(jīng)常采集,另一方面這樣的站信息及時(shí),可以保證網(wǎng)站采集內容的新鮮度。采集方法有很多,唯一的目標就是要有質(zhì)量保證。對于大部分小站長(cháng)來(lái)說(shuō),只能轉化流量,這也是我們網(wǎng)站建設的終極目標?!緢D二,功能豐富,WordPress采集】
  
  搜索引擎優(yōu)化是利用算法技術(shù)手段,那么網(wǎng)站應該有針對性地調整網(wǎng)站的結構,合理安排關(guān)鍵詞,優(yōu)化外部資源,從而提高關(guān)鍵詞 在搜索引擎的 關(guān)鍵詞 排名中。搜索引擎優(yōu)化可以精準的將潛在用戶(hù)接入到網(wǎng)站,從而不斷獲得流量轉化,讓網(wǎng)站長(cháng)期輸出資源?!緢D3,自動(dòng)優(yōu)化,WordPress采集】
  
  有人說(shuō)采集的內容對搜索引擎不是很友好,也不容易得到排名。這不一定是真的。WordPress采集通過(guò)精準采集,以及AI智能處理文章,對搜索引擎更加友好。對于大多數網(wǎng)站來(lái)說(shuō),采集 內容肯定不如手寫(xiě)的原創(chuàng ) 內容有效。但是,原創(chuàng )一天可以更新多少篇文章呢?畢竟內容制作平臺已經(jīng)轉移,早就不再關(guān)注網(wǎng)站了。其他幾個(gè)搜索引擎也互相捕捉,更不用說(shuō)小型網(wǎng)站了?!緢D4,高效簡(jiǎn)潔,WordPress采集】
  
  所以 WordPress 采集 內容仍然有效,因為 采集 內容的后處理效果更好。對于認真而規律的人,定位采集,只關(guān)注與本站內容高度相關(guān)的網(wǎng)站的幾個(gè)特定范圍。對于其他類(lèi)型的網(wǎng)站,有更多選項可供選擇。你可以抓取所有觸及邊緣的內容,但數量很大,所以你不需要限制某些網(wǎng)站的抓取。WordPress采集這稱(chēng)為平移采集。
  通過(guò)對搜索引擎算法的研究,搜索引擎不僅根據文本判斷內容相似度,還根據HTML中DOM節點(diǎn)的位置和順序進(jìn)行判斷。WordPress采集 會(huì )一直根據算法的變化進(jìn)行更新,以符合搜索引擎的規則。
  
  WordPress采集的作用不僅僅針對采集網(wǎng)站,各種cms網(wǎng)站,各種網(wǎng)站類(lèi)型都匹配。WordPress的SEO優(yōu)化采集更適合搜索引擎收錄網(wǎng)站,增加蜘蛛訪(fǎng)問(wèn)頻率,提升網(wǎng)站的收錄,只有當網(wǎng)站 有了好的收錄,網(wǎng)站的排名有了更好的基礎。返回搜狐,查看更多 查看全部

  免規則采集器列表算法(WordPress采集的重要點(diǎn)都在本文的四張配圖中,文字忽略不讀,直接看圖)
  WordPress采集,作為網(wǎng)站 每日更新的工具。解決了網(wǎng)站日常維護更新的麻煩問(wèn)題,特別是全網(wǎng)批量自動(dòng)采集,讓網(wǎng)站的內容再也不用擔心,有是 文章 源源不斷的 網(wǎng)站 帖子。仔細閱讀下面的文字。WordPress采集的重點(diǎn)都在本文的四張圖里。忽略文字,直接看圖。[圖一,永遠免費,WordPress采集]
  
  WordPress采集要求采集源站是不斷更新的能力,是對優(yōu)質(zhì)內容的選擇性選擇采集。一方面可以經(jīng)常采集,另一方面這樣的站信息及時(shí),可以保證網(wǎng)站采集內容的新鮮度。采集方法有很多,唯一的目標就是要有質(zhì)量保證。對于大部分小站長(cháng)來(lái)說(shuō),只能轉化流量,這也是我們網(wǎng)站建設的終極目標?!緢D二,功能豐富,WordPress采集】
  
  搜索引擎優(yōu)化是利用算法技術(shù)手段,那么網(wǎng)站應該有針對性地調整網(wǎng)站的結構,合理安排關(guān)鍵詞,優(yōu)化外部資源,從而提高關(guān)鍵詞 在搜索引擎的 關(guān)鍵詞 排名中。搜索引擎優(yōu)化可以精準的將潛在用戶(hù)接入到網(wǎng)站,從而不斷獲得流量轉化,讓網(wǎng)站長(cháng)期輸出資源?!緢D3,自動(dòng)優(yōu)化,WordPress采集】
  
  有人說(shuō)采集的內容對搜索引擎不是很友好,也不容易得到排名。這不一定是真的。WordPress采集通過(guò)精準采集,以及AI智能處理文章,對搜索引擎更加友好。對于大多數網(wǎng)站來(lái)說(shuō),采集 內容肯定不如手寫(xiě)的原創(chuàng ) 內容有效。但是,原創(chuàng )一天可以更新多少篇文章呢?畢竟內容制作平臺已經(jīng)轉移,早就不再關(guān)注網(wǎng)站了。其他幾個(gè)搜索引擎也互相捕捉,更不用說(shuō)小型網(wǎng)站了?!緢D4,高效簡(jiǎn)潔,WordPress采集】
  
  所以 WordPress 采集 內容仍然有效,因為 采集 內容的后處理效果更好。對于認真而規律的人,定位采集,只關(guān)注與本站內容高度相關(guān)的網(wǎng)站的幾個(gè)特定范圍。對于其他類(lèi)型的網(wǎng)站,有更多選項可供選擇。你可以抓取所有觸及邊緣的內容,但數量很大,所以你不需要限制某些網(wǎng)站的抓取。WordPress采集這稱(chēng)為平移采集。
  通過(guò)對搜索引擎算法的研究,搜索引擎不僅根據文本判斷內容相似度,還根據HTML中DOM節點(diǎn)的位置和順序進(jìn)行判斷。WordPress采集 會(huì )一直根據算法的變化進(jìn)行更新,以符合搜索引擎的規則。
  
  WordPress采集的作用不僅僅針對采集網(wǎng)站,各種cms網(wǎng)站,各種網(wǎng)站類(lèi)型都匹配。WordPress的SEO優(yōu)化采集更適合搜索引擎收錄網(wǎng)站,增加蜘蛛訪(fǎng)問(wèn)頻率,提升網(wǎng)站的收錄,只有當網(wǎng)站 有了好的收錄,網(wǎng)站的排名有了更好的基礎。返回搜狐,查看更多

免規則采集器列表算法( 一個(gè)目標叫T的規則規則的算法介紹及注意事項)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 103 次瀏覽 ? 2022-03-28 15:09 ? 來(lái)自相關(guān)話(huà)題

  免規則采集器列表算法(
一個(gè)目標叫T的規則規則的算法介紹及注意事項)
  隱式規則搜索算法
  例如,我們有一個(gè)名為 T 的目標。下面是為目標 T 搜索規則的算法。請注意,下面我們不提及后綴規則,因為在將 Makefile 加載到內存中時(shí),所有后綴規則都會(huì )轉換為模式規則。如果目標是“archive(member)”的函數庫文件模式,那么這個(gè)算法會(huì )運行兩次,第一次是找到目標T,如果沒(méi)有找到,則進(jìn)入第二次,第二次將使用“member”作為“member”進(jìn)行搜索。
  1、分隔T的目錄部分。稱(chēng)為D,其余稱(chēng)為N。(例如:如果T是“src/foo.o”,則D是“src/”,N是“foo .o")
  2、創(chuàng )建匹配 T 或 N 的所有模式規則的列表。
  3、如果模式規則列表中存在匹配所有文件的模式,例如“%”,則從列表中刪除其他模式。
  4、刪除列表中沒(méi)有命令的規則。
  5、對于列表中的第一個(gè)模式規則:
  1)派生它的“stem” S,它應該是 T 或 N 匹配模式的非空“%”部分。
  2)計算依賴(lài)文件。將依賴(lài)文件中的“%”替換為“stem”S。如果目標模式不收錄斜線(xiàn)字符,則在第一個(gè)依賴(lài)文件的開(kāi)頭添加 D。
  3)測試所有依賴(lài)文件是否存在或應該存在。(如果文件被定義為另一個(gè)規則的對象,或者作為顯式規則的依賴(lài)項,則該文件被稱(chēng)為“應該存在”)
  4)如果所有依賴(lài)都存在或應該存在,或者如果沒(méi)有依賴(lài)。然后將應用此規則,退出算法。
  6、如果在第 5 步之后沒(méi)有找到模式規則,則進(jìn)行進(jìn)一步搜索。對于列表中的第一個(gè)模式規則:
  1)如果規則是終止規則,忽略它并繼續下一個(gè)模式規則。
  2)計算依賴(lài)文件。(與第 5 步相同)
  3)測試所有依賴(lài)文件是否存在或應該存在。
  4)對于不存在的依賴(lài)文件,遞歸調用這個(gè)算法,看是否可以通過(guò)隱式規則找到。
  5)如果所有依賴(lài)都存在或應該存在,或者根本不存在依賴(lài)。然后采用該規則,退出算法。
  7、如果沒(méi)有可以使用的隱式規則,檢查“.DEFAULT”規則,如果有,使用,使用“.DEFAULT”命令T。
  一旦找到規則,就執行它的等效命令,此時(shí),我們的自動(dòng)化變量的值就生成了。 查看全部

  免規則采集器列表算法(
一個(gè)目標叫T的規則規則的算法介紹及注意事項)
  隱式規則搜索算法
  例如,我們有一個(gè)名為 T 的目標。下面是為目標 T 搜索規則的算法。請注意,下面我們不提及后綴規則,因為在將 Makefile 加載到內存中時(shí),所有后綴規則都會(huì )轉換為模式規則。如果目標是“archive(member)”的函數庫文件模式,那么這個(gè)算法會(huì )運行兩次,第一次是找到目標T,如果沒(méi)有找到,則進(jìn)入第二次,第二次將使用“member”作為“member”進(jìn)行搜索。
  1、分隔T的目錄部分。稱(chēng)為D,其余稱(chēng)為N。(例如:如果T是“src/foo.o”,則D是“src/”,N是“foo .o")
  2、創(chuàng )建匹配 T 或 N 的所有模式規則的列表。
  3、如果模式規則列表中存在匹配所有文件的模式,例如“%”,則從列表中刪除其他模式。
  4、刪除列表中沒(méi)有命令的規則。
  5、對于列表中的第一個(gè)模式規則:
  1)派生它的“stem” S,它應該是 T 或 N 匹配模式的非空“%”部分。
  2)計算依賴(lài)文件。將依賴(lài)文件中的“%”替換為“stem”S。如果目標模式不收錄斜線(xiàn)字符,則在第一個(gè)依賴(lài)文件的開(kāi)頭添加 D。
  3)測試所有依賴(lài)文件是否存在或應該存在。(如果文件被定義為另一個(gè)規則的對象,或者作為顯式規則的依賴(lài)項,則該文件被稱(chēng)為“應該存在”)
  4)如果所有依賴(lài)都存在或應該存在,或者如果沒(méi)有依賴(lài)。然后將應用此規則,退出算法。
  6、如果在第 5 步之后沒(méi)有找到模式規則,則進(jìn)行進(jìn)一步搜索。對于列表中的第一個(gè)模式規則:
  1)如果規則是終止規則,忽略它并繼續下一個(gè)模式規則。
  2)計算依賴(lài)文件。(與第 5 步相同)
  3)測試所有依賴(lài)文件是否存在或應該存在。
  4)對于不存在的依賴(lài)文件,遞歸調用這個(gè)算法,看是否可以通過(guò)隱式規則找到。
  5)如果所有依賴(lài)都存在或應該存在,或者根本不存在依賴(lài)。然后采用該規則,退出算法。
  7、如果沒(méi)有可以使用的隱式規則,檢查“.DEFAULT”規則,如果有,使用,使用“.DEFAULT”命令T。
  一旦找到規則,就執行它的等效命令,此時(shí),我們的自動(dòng)化變量的值就生成了。

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久