導航:首頁 > 編程語言 > 超市零售分析python

超市零售分析python

發布時間:2022-11-14 14:41:02

1. python使用面向對象的編程方法完成「超市管理系統」的編寫

是代碼有bug需要調試,還是別的

2. 超市營銷創新分析

超市營銷創新分析

現代社會競爭越來越激烈,要想從激烈的競爭中脫穎而出,企業就要不斷改革創新營銷思路,要在較好掌握傳統營銷策略的基礎上,創造性地開發符合市場需求的、可行的營銷策略。以下是我精心整理的超市營銷創新分析,歡迎閱讀,希望大家能夠喜歡。

[摘要 ]

現在,超市已經成為人們生活中不可或缺的部分,超市是民眾休閑購物的重要場所,人們在滿足物質需要的同時,也在享受超市購物帶來的購物體驗。超市是零售業的主要集合地,我們國內目前已有多家國際大型超市入駐,這些外來超市往往憑借自身優秀的管理理念、先進的管理手段和舒適的購物體驗而贏得民眾的廣泛認可;面對外來超市的沖擊我國的本土超市又該如何迎接挑戰、站穩市場呢?通過對消費者行為以及以往營銷方式的分析,提出營銷策略的創新對策。

[關鍵詞]

超市;消費者行為;營銷

1.超市的消費者行為特點及其分析

去超市購物的人有學生、家庭主婦、老人等,他們由於生活背景、文化程度、消費能力等的不同,所具有的購物心態和購物目的也不相同,但總體分析還是有一些共同之處的。

1.1價值取向越來越清晰

人們去超市購物一般都是去購買一些生活用品以及副食品,而這類商品主要是用來滿足消費者最基本的生活需求的,在消費過程中,消費者越來越關注商品的價格、商品的實用價值以及商品的質量,價格和質量成為人們決定是否購買的關鍵性因素。

1.2注重購物的便捷性

隨著生活節奏的加快,人們越來越重視購物的便捷性,為了節約時間人們往往會選擇能夠一次性付款的超市,而不去逛商業街;人們往往也喜歡超市自由的選購氛圍,這樣他們就能按照自己的標准去選擇商品,也能節省挑選時間。

1.3消費判斷能力較強

一般說來,家庭主婦和老人,由於生活經驗比較豐富,在選購商品時往往能夠較為准確地判斷商品的屬性和實用價值,往往能夠以較合適的價格買到稱心的商品。上班族或學生則因具有較高的文化水平,往往也能准確判斷商品是否擁有較高的性價比,是否值得購買。

1.4感性消費成為趨勢

隨著生活水平的提高,人們的物質需求已基本能夠得到滿足,越來越多的人開始追求精神層面上的東西,開始注重購物體驗,開始關注購物過程中精神需求能否得到滿足。

1.5對店鋪的忠誠度下降

超市購物的出現使得消費者的購物經驗快速增加,消費者在消費過程中變得更加理性,更加註重商品的甄別,而不再將自己的購物喜好禁錮在某些商店。

2.常見的營銷策略對超市消費者行為產生的影響

超市在經營過程中也不斷摸索出一些營銷策略方法,那麼那些較為常見的營銷策略對消費者的消費行為究竟影響如何呢?下面我們就來分析一下,也為下一步提出營銷創新做好鋪墊。

2.1促銷策略對超市消費行為的影響

促銷是最常見的一種營銷方式,其形式也是多種多樣,但是具體到超市,主要還是以打廣告、銷售促進和人員推銷三種為主。

2.1.1打廣告。消費者的購買程序通常是這樣的,先知道有這么一種商品,然後開始關注,之後就萌發出想要購買的慾望,最後就是實施購買行動,而要想讓消費者行動起來,打廣告的工作是必不可少的。對於那種半確定型的消費者,他們的購買目標和意向還不是很明確,因此他們很有可能在終端廣告的提示下展開購買行動;還有一些消費者,他們在逛超市時並沒有明確的購物目標,那麼,商場里的任意一條終端廣告都有可能勾起他們的購物慾望,並誘使他們購買。

2.1.2銷售促進。銷售促進的方式是多種多樣的,有打折、抽獎、免費贈送樣品、發放獎券等,通過這些方式直接現場改變消費者的消費行為。銷售促進的目的是增加消費者對商品的購買次數,通過銷售促進還可以幫助樹立產品品牌印象,增加消費者再度購買的可能性。

2.1.3人員推銷。人員推銷是一種較為直接、有效的促銷方式,消費者在與推銷人員的交談中能夠提高對產品的認識,增強消費者的興趣和參與熱情,從而有效促成購買行為的發生。

2.2價格策略對超市消費行為的影響

價格是消費行為發生與否的一個很關鍵的因素,也是消費者在購物過程中最為關心的。所謂價格策略就是在一定的市場環境條件下,根據實際成本和供求關系來靈活調控價格的一種營銷策略。雖然超市裡商品的價格是總店和生產商協商之後的結果,但是對於商品的心理定價往往是確定的,主要有以下兩種。

2.2.1非整數定價策略。這種定價方法在超市裡較為常見,就是商品定價的時候,以零頭數結尾,使用戶在心理上有一種很便宜的感覺;這種定價方法往往能給消費者帶來心理上的信賴感,認為該商品是經過嚴格考量後才被精準定價的,消費者購買時也會感覺很踏實。

2.2.2招徠定價策略。這種定價策略往往是為了滿足消費者追求價格優惠或是心理好奇而制定的,其形式有低價與高價招徠兩種。例如,為了吸引消費者,將某些商品價格定得很低以滿足消費者追求低價的心理;或是有的把價格定得很高,致使有些消費者出於好奇前來超市。

3.超市營銷策略創新分析

現代社會競爭越來越激烈,要想從激烈的競爭中脫穎而出,企業就要不斷改革創新營銷思路,要在較好掌握傳統營銷策略的基礎上,創造性地開發符合市場需求的、可行的營銷策略。

3.1營銷過程中要以講誠信為基本導向

現在媒體對於商品質量問題事件時有曝光,奶粉、黑作坊製作的飲料和食品、食品中有害添加劑嚴重超標等,都讓消費者對購物環境和所購商品的質量時常持懷疑的態度,這些問題商品不但流入了很多小超市,一些大超市中也時常出現問題商品,這讓消費者對超市商品的信賴程度大打折扣。就超市而言,其誠信問題主要體現在:

①所售商品質量不合格或是缺斤少兩;

②存在價格欺詐和促銷欺詐行為,最常見的就是標簽價與實際結賬價格不一致、截取贈品當賣品。這些行為不但是商家不講誠信,也是對消費者實際利益的侵害。而這些不誠信行為之所以屢見不鮮是因為長期以來,消費者一直處於一種弱勢地位,而在這種狀況無法一下子被扭轉的情況下,消費者利益的保護只能靠商家的自律來實現了。

誠信是企業發展的一項重要保障,很多知名店鋪之所以擁有良好的業界口碑、較大的市場份額以及忠實的'消費者,往往是因為其將誠信作為企業發展戰略的一部分,能夠在實際運營中做到誠信經營。

3.2品牌化策略

品牌化道路是超市穩固市場、贏得忠實消費者的必然選擇。

3.2.1目標市場差別化策略。

由於消費者的消費水準不同,對商品的質量、價格的要求也不一樣,所以超市需要對消費市場進行合理劃分,將目標市場按照人群或人群需求做系統劃分,在防止競爭過激的同時,還能獲得較高的經營利潤,對企業而言是一件十分有利的事。例如那些退休老人,他們沒有生活負擔,退休金還比較可觀,購買力相對較強,針對這一目標人群,超市可以開展專門的促銷活動,還可以通過改變超市內部購物環境的方法,例如地面防滑處理、設置老年購物通道等,來吸引老年人來超市購物。

3.2.2市場定位差異化。

通過提供差異化服務,可以使超市的形象在消費者心目中得到提升,超市給消費者的品牌印象也是很獨特、很好的。例如,在食品超市中,食品占絕大多數,而這些食品超市又有所區別,有的以零食為主,有的以海產品為主;在日用品超市中,有的主營廚房用具,有的主營生活用品等;在商品檔次選擇設定上,可以選擇中低檔商品作為超市的主營商品,一些較大的超市還是以中高端商品銷售為主,而那些社區里的小超市則多以低端商品售賣為主。

3.2.3營銷創新要結合目標市場以及市場定位的實際情況。

對於超市而言,加強商品策略、價格策略、促銷手段、銷售地點方面的協同是十分有必要的。商品的選取上,除了要考慮商品的種類以及檔次質量以外,商品的產品線的寬度與深度也需要被包含在考慮范圍之內。在一些大超市中可以實施完善商品品牌和產品線的做法,這樣的最終目的是為了滿足消費者的一站式購物需求。那些規模較小的超市則可以選擇售賣一些消費者生活中常用到的普通商品,商品的選擇要圍繞「便利」展開。那麼,怎樣做才能找到那些與消費者日常生活密切相關的商品?要知道超市不可能一步到位找到所有適合的商品,只有通過不斷調試、不斷調整,才能最終陳設與消費者生活最為密切的商品,找到消費者購買頻率高的商品並不斷增加其上架數量和種類,找到消費者購買較少的商品,逐漸減少其上架數量,進而商品的購買率呈不斷上升態勢。

另外,超市還可以通過經營自有品牌的方式來提高消費者的消費黏性。國外一些超市在這方面做得就很好,而且自有商品在本超市中所佔比例還比較可觀,作為超市商品結構的改善方向之一,自有品牌策略是很重要的。

適當的價格策略也是很重要的。降低成本從而壓低價格,這是超市運營的一條很重要的規律,低價也是消費者始終追求的。可是現在很多超市所採取的價格策略卻是,部分主要商品價格較低,其他很多商品價格高於周邊商場,還有一些是雖然價低但是商品質量也很次,長此以往,超市的經營勢必受到影響。

為提升銷售量同時提升超市整體形象,超市可以選擇開展合理的廣告宣傳活動,例如直接藉助媒體打廣告、參加公益事業等。關於超市的渠道策略,不僅要局限於線下選址,還可以開發一些線上途徑,同時可以提供送貨上門服務,這樣可以為消費者帶來便利,增強消費黏性,為超市發展提供幫助。

3.3創建營銷文化

現在的消費者消費越來越理性,超市需要在增強文化軟實力方面下功夫,打造特色購物平台,營造高雅購物氛圍,滿足消費者精神層面的需求,提升品牌影響力。在掌握消費者消費心理基礎上,立足本土文化,將傳統的尊老愛幼、團結友愛等文化理念運用到超市的文化構造上來,讓這些成為超市的獨特賣點。例如春節時候超市可以通過徵集對聯等形式為參與者發放獎品,調動消費者的參與熱情,讓大家在文化氛圍中體會傳統佳節帶給我們購物樂趣。

另外,超市還可以針對不同的民族,開設具有不同民族特色的分店,讓店員穿上具有不同地域特色的民族服裝,拉近與當地同胞的距離。超市文化品牌的打造,是超市整體實力的體現,是應對激烈的市場競爭不可缺少的重要組成部分,好的文化品牌不僅能提升超市的綜合競爭能力,還能提高顧客忠誠度,長久地贏得顧客的青睞。

;

3. 超市零售業的行業分析應該從什麼方面入手

就超市內部每日管理來說,首先是商品銷售結構上的分析(abc單品類別銷售分析、銷售top100、不動銷商品分析、高庫存、負毛利、負庫存、銷售部門佔比),然後是顧客消費數據分析(客單價、客流量、全店平效、時段客流量等)

4. python數據分析好學嗎

不難,python是當下十分火爆的編程語言,尤其在人工智慧應用方面。如果有心從事編程方向的工作,最好到專業機構深入學習、多實踐,更貼近市場,這樣更有利於將來的發展。

5. 怎樣用python求超市銷售量前五商品

沒表、沒數據,沒欄位、、、
只能說下大致思路:
pandas 讀表,groupby聚合,sort_values(by=銷量,ascending=Flase)
pd.head(5),前五行數據就是。

6. 如何對超市的數據分析,需要對那些方面和數據分析

一、從銷量入手
1、與去年同期相比查找銷量下降原因
2、從滯銷品查找,主要分析零銷售商品。
3、應季商品銷量分析。
4、分析各區銷售佔比。
5、促銷活動開展時的銷量變化
二、從價格體系入手
1、認真研究周邊商圈價格情況與己對比
2、根據毛利額的情況看價格設定是否合理
3、進價分析
三、從商品結構入手
1、根據各類商品購買力找出缺品
2、在同系列供應商的增加或減少對銷售的影響
3、正確掌握「二、八」原則
總之從數據中能發現很多問題,甚至更換賣場管理者在數據中都能反映出來。因此數據是管理的基礎,很多問題都是通過數據反映出來的。

7. 超市銷售分析怎麼寫大哥大姐,幫幫忙!

首先,超市營運者心中要有「三個價值」的銷售理念,即:渠道價值、消費價值、品牌價值。

渠道價值:在供應商營銷戰略中,渠道是最重要的,也是最出業績的方式,就超市而言,除了關注賣場消費者終端,也要關注渠道價值,即團購客戶。尤其是節慶旺季時期,各個事業機關單位,金融教育機構,工廠醫院等大型單位都會給職工發放節慶福利物品,對於超市而言,建立外聯公關營銷部門(團購部),通過渠道進行業務,如果開發好這些團購大客戶,建立長期信任的合作方式,相信會很大幅度拉升銷售了。

消費價值:眾所周知,超市行業以零售消費群為主,賣場硬體要做好商場藝術陳列展示等,運用商品管理,軟體上做好顧客服務,不斷提升商品力、企業形象,在消費者心中的樹立良好的影響,要記住,想要提升銷售,最終「得民心者得天下」。

品牌價值:不管哪個行業,樹立品牌影響力總會是一個長期的過程,但只要在經營超市,管理者就要以這個理念做指導,堅持不懈,始終如一,明白做生意不是「一錘子買賣」,努力去完善商品結構,改進服務,為每個消費者提供具備良好性價比的商品,良好的增值服務,將賣場從心智上推進至消費者心中,產生品牌效應,使消費者用良好的口碑相互宣傳,從而產生重復購買、提高銷售。

其次,提升銷售的「三個主力」武器,即:商品力,價格力,促銷力。

商品力:超市行業,商品本身就是一個提升銷售的競爭力,根據周邊的消費習慣制定合理的商品品類,拓展優秀的供應商資源,運用商品三零七零管理法則,搞好主力商品、輔助產品、關聯商品,高、中、低檔商品的組合。節慶時期尤其注重節慶主力商品的陳列,一定要排面整齊,貨源充足。制訂合理庫存,合理訂貨,盤活滯銷商品資金,做好商品的各項工作,也是為銷售的提升做了最基本的鋪墊。

價格力:近幾年因通貨膨脹,物價一直上漲的厲害,因此造就了消費者的購買習慣更加的敏感,消費更加理性化。「貨比三家」式的購物習慣正逐漸在全球蔓延開來,因此,商品的價格又是提升銷售的一個競爭力。通常除了給消費者做好商品「一物一簽」的標識外,更要多做敏感性商品(油、奶、蛋、肉、糧)的市調工作,多了解競爭店的價格動態,供應商貨源方面運用談判技巧,增大銷量,爭取到好的價格,從各方面讓自己店的價格優勢更為主動。

促銷力:顧名思義就是促進銷售,促銷實質上是一種溝通活動,即營銷者(信息提供者或發送者)發出作為刺激物的各種信息,說服或吸引消費者購買其產品,以達到擴大銷售的目的。在當今營銷策劃滿天飛的年代,促銷的創新性更為重要,就中秋節日促銷而言,超市168網編輯已在《借勢中秋超市促銷要點》一文中做了要點的闡述,可以說一個有創意的促銷主題,加上合理的商品選擇及強勢的價格,做好評估預算,那麼,提升銷售的目標也就達到了。

最後,不要忘記,超市品牌的最直接傳導者,提升銷售真正的執行者,你的員工。

員工是一個企業的中堅力量,是企業的細胞,是建設品牌,整合企業形象的基石。指導好員工做好理貨與促銷及顧客服務,才能更好更有效的去實現制定的銷售目標。顧客是零售企業利潤的源泉,但他們往往是由企業最基層的員工(如營業員、收銀員)直接提供服務。企業是否有崇高的使命,管理人員有沒有受過良好的教育,企業的管理機制是否完善,這些東西對於企業來說固然非常重要,但顧客不一定感受得到,他們也不一定在意。顧客想要的是在這家店裡是否能買到自己想買的東西,是否得到了良好的服務。所以說,基層員工的管理直接關繫到業績的提升。

人力資源絕對不容忽視,除非想放棄銷售的增長。所以說,超市內部更應加強底層員工的培訓,制定合理的制度化流程,更好的規范員工的工作,制定有效的激勵機制,讓員工與企業產生一種和諧歸宿感,員工各個是企業的主人,還怕銷售不提升嗎?

綜上所述,全面系統化的提升銷售,是一個堅持不懈,共同創新的過程,停止空談一切,現在開始吧!

8. 如何在 Tableau 中利用 Python 的力量

2016年, Tableau便發布了 TabPy的試用版本,一個可以在 Tableau工作簿中運行 Python代碼的新 API 。當你通過 Tableau使用 TabPy時,你可以在 Python中定義計算欄位,從而在你的可視化作品中充分挖掘大量機器學習庫的潛力。
這個在 Tableau中與 Python的集成應用,為用戶提供了強大的解決方案。例如,它只需幾行 Python代碼就能得到一個線上零售商所售商品的情感分析。然後你可以在 Tableau中從很多方面探索獲得的結果。
你可能只想看到負面評價並且希望理解這些內容背後的原因。你可能想得到一個顧客列表,並與他們聯系。或者你可能想可視化整體情緒隨時間變化的情況。

R/Python整合:Rserve/TabPy Server
你可以很容易在電腦上或者遠程伺服器上安裝 TabPy伺服器。在 Tableau Desktop中,通過點擊幫助 >設置與性能 >管理外部服務連接,在其中輸入服務 URL ,你就可以完成配置。然後你可以使用 Python腳本作為 Tableau中計算欄位的一部分,就像從 Tableau 8.1開始你可以利用 R的那樣。

TabPy使用流行的 Anaconda環境,這能夠預裝和准備許多包括 scipy , numpy和 scikit-learn在內的常見 Python包。你可以在你的腳本中安裝使用任何 Python庫。
如果在公司里你有一個數據分析團隊來開發定製模型, TabPy還可以通過發布模型很方便與其他那些想要在 Tableau中利用模型的人分享。
一旦發布,無論模型的類型與復雜性如何,你就只需要在 Tableau中運行一個只有一行 Python代碼來運行該機器學習模型。

使用已發布的模型有幾個好處。在預服務環境中,復雜的功能變得容易使用,分享和以部署方式重用。你可以在後端提升和更新模型,或者修改代碼,而 Tableau中的計算欄位並不需要額外的操作即可保證正常工作。
看到 Python在 Tableau中的應用,你是不是有點手癢了?亟不可待的想嘗試一下?小編在這里推薦一篇新手實用教程,如果你以前沒有使用過 Python ,不用擔心 ——這對新手來說絕對是可以實現的。繼續看下去吧!
Python實用案例分享
本次教程使用的數據集來源 Makeover Monday(點擊了解詳情) ,關於最流行的前100首歌曲的歌詞。
1設置你的環境
1 .確保你使用的是 Tableau 10版本
2 .打開含有 top-song數據的 TDE文件
3 .安裝 TabPy
2在 Tableau中連接 TabPy
現在是時候在 Tableau中設置 TabPy了。在 Tableau中,轉到幫助 >設置和性能 >管理外部連接。輸入 「localhost」 ,因為你在自己的計算機上運行 TabPy 。默認埠為 9004 ,因此除非你手動更改它,否則應該將其保留。

3創建 TabPy計算
TabPy Github頁面具有你應該在 Tableau計算中使用 Python的詳細文檔。我簡單地重新調整了在 #data 16 TabPy部分的一個計算演示。這里可以看重播。復制下方鏈接至瀏覽器查看重播:
現在,你可以使用視圖中的這個 [Word]計算欄位來處理情緒評分了!缺點是,由於這是一個表計算並且還使用了 ATTR函數,因此你不能在一個詳細級別表達式中使用它。也就是說,你不能使用這個例子和數據結構來計算歌曲細節級別的情感總和。

9. Python購物籃數據(關聯分析)

pip install mlxtend

由於已經是csv格式,所以直接輸入:

每一行: 一個購物籃

每一列: 購物籃中的商品

先看看pd讀的對不對:

然後按行列印:

再將這些存在一個數組中:

1、什麼是獨熱碼

獨熱碼,在英文文獻中稱做 one-hot code, 直觀來說就是有多少個狀態就有多少比特,而且只有一個比特為1,其他全為0的一種碼制,更加詳細參加 one_hot code(維基網路) 。在機器學習中對於離散型的分類型的數據,需要對其進行數字化比如說性別這一屬性,只能有男性或者女性或者其他這三種值,如何對這三個值進行數字化表達?一種簡單的方式就是男性為0,女性為1,其他為2,這樣做有什麼問題?

使用上面簡單的序列對分類值進行表示後,進行模型訓練時可能會產生一個問題就是特徵的因為數字值得不同影響模型的訓練效果,在模型訓練的過程中不同的值使得同一特徵在樣本中的權重可能發生變化,假如直接編碼成1000,是不是比編碼成1對模型的的影響更大。為了解決上述的問題,使訓練過程中不受到因為分類值表示的問題對模型產生的負面影響,引入獨熱碼對分類型的特徵進行獨熱碼編碼。

        可以這樣理解,對於每一個特徵,如果它有m個可能值,那麼經過獨熱編碼後,就變成了m個二元特徵(如成績這個特徵有好,中,差變成one-hot就是100, 010, 001)。並且,這些 特徵互斥 ,每次只有一個激活。因此,數據會變成稀疏的。

這樣做的好處主要有:

(1)解決了分類器不好處理 屬性數據 的問題

(2)在一定程度上也起到了 擴充特徵 的作用

                                        M

以下為我摘取的別人的,貼上原文鏈接https://blog.csdn.net/hellozhxy/article/details/80600845

著名的啤酒與尿布, 這是典型的購物籃問題, 在數據挖掘界叫做頻繁項集(Frequent Itemsets).

note: 數據類型寫法按照Python的格式.

一. 目標與定義

1. 問題背景

超市中購物清單中總是有一些項目是被消費者一同購買的. 如果我們能夠發現這些 關聯規則 (association rules), 並合理地加以利用, 我們就能取得一定成果. 比如我們發現熱狗和芥末存在這種關系, 我們對熱狗降價促銷, 而對芥末適當提價, 結果能顯著提高超市的銷售額.

2. 目標

找到頻繁地 共同 出現在消費者結賬小票中項目(比如啤酒和尿布), 來一同促銷, 相互拉動, 提高銷售額.

3. 定義

支持度support: 其實就是概率論中的頻次frequency

支持度閾值support threshhold: 記為s, 指分辨頻繁項集的臨界值.

頻繁項集: 如果I是一個項集(Itemset), 且I的出現頻次(i.e.支持度)大於等於s, 那麼我們說I是頻繁項集.

一元項, 二元項, 三元項: 包含有一種商品, 兩種, 三種商品的項集.

4. 關聯規則

關聯規則: 形式為I->j, 含義是如果I種所有項都出現在某個購物籃的話, 那麼j很有可能也出現在這個購物籃中. 我們可以給出相應的confidence值(可信度, 即概率論中的置信度).

其中, 這個關聯規則的可信度計算為Confidence = I∪{j} / I, 本身是非常符合直覺和常識的. 比如我們說關聯規則{dog, cat} -> and 的可信度為0.6, 因為{dog, cat}出現在了1, 2, 3, 6, 7五個購物籃中, 而and出現在了1,2,7中, 因此我們可以算出Confidence = freq[{dog, cat, and}] / freq[{dog, cat}] = 3/5 = 0.6

注意到, 分子部分的頻次總是比分母低, 這是因為{dog, cat} 出現的次數總是大於等於{dog, cat, and}的出現次數.

二. 購物籃與A-Priori演算法

1. 購物籃數據表示

我們將有一個文本文件輸入, 比如allBills.txt, 或者allBills.csv. 裡面每行是一個購物籃.

文件的頭兩行可能是這樣(df.show(2)):

{23, 456, 1001}

{3, 18, 92, 145}

我們假定這是一家大型連鎖超市, 比如沃爾瑪, 因此這個文本文件是非常大的, 比如20GB. 因此我們無法一次將該文件讀入內存. 因此, 演算法的主要時間開銷都是磁碟IO.

我們同時還假定, 所有購物籃的平均規模是較小的, 因此在內存中產生所有大小項集的時間開銷會比讀入購物籃的時間少很多.

我們可以計算, 對於有n個項目組成的購物籃而言, 大小為k的所有子集的生成時間約為(n, k) = n! / ((n-k)!k!) = O(n^k/ k!), 其中我們只關注較小的頻繁項集, 因此我們約定k=2或者k=3. 因此所有子集生成時間T = O(n^3).

Again, 我們認為 在內存中產生所有大小項集的時間開銷會比讀入購物籃的時間少很多.

2. Itemset計數過程中的內存使用

我們必須要把整個k,v字典放在內存中, 否則來一個Itemset就去硬碟讀取一次字典將十分十分地慢.

此處, 字典是k=(18, 145), v=15這種形式. 此處, 應當注意到, 如果有{bread, milk, orange}這樣的String類型輸入, 應當預先用一個字典映射成對應的整數值編碼, 比如1920, 4453, 9101這樣.

那麼, 我們最多能用字典存儲多少種商品?

先看下我們存儲多少個count值.

我們假定項的總數目是n, 即超市有n種商品, 每個商品都有一個數字編號, 那麼我們需要(n, 2) = n^2/2 的大小來存儲所有的二元組合的count, 假設int是佔4個byte, 那麼需要(2·n^2)Byte內存. 已知2GB內存 = 2^31 Byte, 即2^31/2 = 2^30 >= n^2 --> n <= 2^15. 也就是說n<33 000, 因此我們說商品種類的最多是33k種.

但是, 這種計算方法存在一個問題, 並不是有10種商品, 那麼這10種商品的任意二元組合都會出現的. 對於那些沒出現的組合, 我們在字典中完全可以不存儲, 從而節省空間.

同時, 別忘了我們同樣也得存儲key = (i, j), 這是至少額外的兩個整數.

那麼我們到底具體怎麼存儲這些計數值?

可以採用三元組的方式來構造字典. 我們採用[i, j, count]形式來存儲, 其中i代表商品種類1, j代表商品種類2, 前兩個值代表key, 後面的value就是count, 是這個二元組合下的計數.

現在, 讓我們注意到我們(1)假定購物籃平均大小較小, 並(2)利用三元組(2個key的)字典和(3)不存儲沒出現組合優勢. 假設有100k = 10^5種商品, 有10million=10^7個購物籃, 每個購物籃有10個項, 那麼這種字典空間開銷是(10, 2) · 10^7 = 45 x 10^7 x 3= 4.5x10^8x3 = 1.35x10^9 個整數.  這算出來約為4x10^8 Byte = 400MB, 處於正常計算機內存范圍內.

3. 項集的單調性

如果項集I是頻繁的, 那麼它的所有子集也都是頻繁的. 這個道理很符合常識, 因為{dog, cat} 出現的次數總是大於等於{dog, cat, and}的出現次數.

這個規律的推論, 就是嚴格地, 我們頻繁一元組的個數> 頻繁二元組的個數 > 頻繁三元組的個數.

4. A-Priori演算法

我們通過Itemset計數中內存使用的部門, 已經明確了我們總是有足夠的內存用於所有存在的二元項集(比如{cat, dog})的計數. 這里, 我們的字典不存放不存在於購物籃中的任何二元項集合, 而且頻繁二元組的數目將會大於三元頻繁三元組> ...

我們可以通過單邊掃描購物籃文件, 對於每個購物籃, 我們使用一個雙重循環就可以生成所有的項對(即二元組). 每當我們生成一個項對, 就給其對應的字典中的value +1(也稱為計數器). 最後, 我們會檢查所有項對的計數結果,並且找出那些>=閾值s的項對, 他們就是頻繁項對.

1) A-Priori演算法的第一遍掃描

在第一遍掃描中, 我們將建立兩個表. 第一張表將項的名稱轉換為1到n之間的整數, 從而把String類型這樣的key轉為空間大小更小的int類型.  第二張表將記錄從1~n每個項在所有購物籃中出現的次數. 形式上類似

table 0(name table): {'dolphin': 7019, 'cat': 7020}  //dict形式, 其實也可以做成list形式 [['dolphin', 7019], ['cat', 7020]]

table 1(single-item counter table): {7019: 15, 7020: 18}  //dict形式, 其實也可以做成數組形式A[7019] = 2, A[7020] = 18

2) 第一遍掃描完的處理

第一遍掃描完後, 我們會按照自己設定的閾值s, 對整個table 1再進行一次mapping, 因為我們只關注最後counter值大於等於閾值的項目, 而且不關心其counter值具體多少. 因此, mapping策略是:

對凡是counter<s的, 一律把counter設成0; 對於counter>=s的, 按照次序, 把其設置成1~m的值(總共有m個滿足要求的項)

3) 第二遍掃描

第二遍掃描所做的事有三:

(1) 對每個購物籃, 在table 1中檢查其所有的商品項目, 把所有為頻繁項的留下來建立一個list.

(2) 通過一個雙重循環生成該list中的所有項對.

(3) 再走一次循環, 在新的數據結構table 2(dict或者list)中相應的位置+1. 此時的效果是dicta = {48: {13: 5}, 49: {71, 16}} 或者 lista [ [48, 13, 5],[49, 71, 16], ... ]

注意此時內存塊上存儲的結構: table1(name table), table2(single-item counter table), table3(double-item counter table)

5. 推廣: 任意大小頻繁項集上的A-Priori演算法

我們對上面這個演算法進行推廣.

從任意集合大小k到下一個大小k+1的轉移模式可以這么說:

(1) 對每個購物籃, 在table 1中檢查其所有的商品項目, 把所有為頻繁項的留下來建立一個list.

(2) 我們通過一個k+1重循環來生成該list中的所有(k+1)元組

(3) 對每個k+1元組, 我們生成其的(k+1 choose k)個k元組, 並檢查這些k元組是否都在之前的table k中. (注意到k=1的時候, 這步與(1)是重復的, 可以省略)

(4)再走一次循環, 在新的數據結構table k+1(dict或者list)中相應的位置+1. 此時的效果是k=2, k+1=3, 生成dicta = {48: {13: {19: 4}}, 49: {71: {51: 10}},  ... } 或者 生成lista [ [48, 13, 19, 4],[49, 71, 51, 10], ... ]

注意, 在進入下一次掃描前, 我們還需要額外把counter中值小於s的元組的計數值都記為0.

模式總體是:C1 過濾後 L1 計數後 C2 置零後 C2' 過濾後 L2 計數後 C3 置零後 C3' ......

END.

生成的商品種類為set形式:轉成list形式

第一張表:把項名稱轉換為1~n的整數:

至於數數,大神說,你就用collections.Counter就好:哈?

哈哈,可愛的wyy,開始分析吧~嚕嚕嚕啦啦啦~嚕啦嚕啦嚕~

生成全零矩陣:

換成zeros:

統計每一列的和,即每種商品的購買總數:

每一行列:

第一行:

建立一個新的只含有頻繁一項集的購物籃矩陣:

頻繁二項集:

10. 如何做超市的數據分析

1989年成立而研發的FineBI的分析頁面由控制項和組件組成,控制項和組件的數量是可以添加至任意多個,同時控制項和組件的大小以及位置都是可以調整的,可以滿足用戶自由定義的風格需求。

閱讀全文

與超市零售分析python相關的資料

熱點內容
php基礎編程教程pdf 瀏覽:219
穿越之命令與征服將軍 瀏覽:351
android廣播重復 瀏覽:832
像阿里雲一樣的伺服器 瀏覽:318
水冷空調有壓縮機嗎 瀏覽:478
訪問日本伺服器可以做什麼 瀏覽:432
bytejava詳解 瀏覽:448
androidjava7 瀏覽:384
伺服器在山洞裡為什麼還有油 瀏覽:885
天天基金app在哪裡下載 瀏覽:974
伺服器軟路由怎麼做 瀏覽:291
冰箱壓縮機出口 瀏覽:227
OPT最佳頁面置換演算法 瀏覽:644
網盤忘記解壓碼怎麼辦 瀏覽:853
文件加密看不到裡面的內容 瀏覽:654
程序員腦子里都想什麼 瀏覽:434
oppp手機信任app在哪裡設置 瀏覽:189
java地址重定向 瀏覽:272
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:90