數據挖掘:如何尋找相關項

導讀:隨著大數據時代浪潮的到來數據科學家這一新興職業也越來越受到人們的關注。本文作者Alexandru Nedelcu就將數學挖掘算法與大數據有機的結合起來,并無縫的應用在面臨大數據浪潮的網站之中。

數據科學家需要具備專業領域知識并研究相應的算法以分析對應的問題,而數據挖掘是其必須掌握的重要技術。以幫助創建推動業務發展的相應大數據產品和大數據解決方案。EMC最近的一項調查也證實了這點。調查結果顯示83%的人認為大數據浪潮所催生的新技術增加了數據科學家的需求。本文將為您展示如何基于一個簡單的公式查找相關的項目。請注意,此項技術適用于所有的網站(如亞馬遜),以個性化用戶體驗、提高轉換效率。

查找相關項問題

要想為一個特定的項目查找相關項,就必須首先為這兩個項目定義相關之處。而這些也正是你要解決的問題:

  • 在博客上,你可能想以標簽的形式分享文章,或者對比查看同一個人閱讀過的文章
  • 亞馬遜站點被稱為“購買此商品的客戶還購買了”的部分
  • 一個類似于IMDB(Internet Movie Database)的服務,可以根據用戶的評級,給出觀影指南建議

不論是標簽、購買的商品還是觀看的電影,我們都要對其進行分門別類。這里我們將采用標簽的形式,因為它很簡單,而且其公式也適用于更復雜的情形。

以幾何關系重定義問題

現在以我的博客為例,來列舉一些標簽:

  1. ["API",?"Algorithms",?"Amazon",?"Android",?"Books",?"Browser"]??

好,我們來看看在歐式空間幾何學中如何表示這些標簽。

我們要排序或比較的每個項目在空間中以點表示,坐標值(代表一個標簽)為1(標記)或者0(未標記)。

因此,如果我們已經獲取了一篇標簽為“API”和“Browser”的文章,那么其關聯點是:

  1. [?1,?0,?0,?0,?0,?1?]?

現在這些坐標可以表示其它含義。例如,他們可以代表用戶。如果在你的系統中有6個用戶,其中2個用戶對一篇文章分別評了3星和5星,那么你就可以針對此文章查看相關聯的點(請注意順序):

  1. [?0,?3,?0,?0,?5,?0?]?

現在我們可以計算出相關矢量之間的夾角,以及這些點之間的距離。下面是它們在二維空間中的圖像:

歐式幾何空間距離

計算歐式幾何空間兩點之間距離的數學公式非常簡單。考慮相關兩點A、B之間的距離:

兩點之間的距離越近,它們的相關性越大。下面是Ruby代碼:

  1. #?Returns?the?Euclidean?distance?between?2?points ?
  2. # ?
  3. #?Params: ?
  4. #??-?a,?b:?list?of?coordinates?(float?or?integer) ?
  5. # ?
  6. def?euclidean_distance(a,?b) ?
  7. ??sq?=?a.zip(b).map{|a,b|?(a?-?b)?**?2} ?
  8. ??Math.sqrt(sq.inject(0)?{|s,c|?s?+?c}) ?
  9. end?
  10. #?Returns?the?associated?point?of?our?tags_set,?relative?to?our ?
  11. #?tags_space. ?
  12. # ?
  13. #?Params: ?
  14. #??-?tags_set:?list?of?tags ?
  15. #??-?tags_space:?_ordered_?list?of?tags ?
  16. def?tags_to_point(tags_set,?tags_space) ?
  17. ??tags_space.map{|c|?tags_set.member?(c)???1?:?0} ?
  18. end?
  19. #?Returns?other_items?sorted?by?similarity?to?this_item? ?
  20. #?(most?relevant?are?first?in?the?returned?list) ?
  21. # ?
  22. #?Params: ?
  23. #??-?items:?list?of?hashes?that?have?[:tags] ?
  24. #??-?by_these_tags:?list?of?tags?to?compare?with ?
  25. def?sort_by_similarity(items,?by_these_tags) ?
  26. ??tags_space?=?by_these_tags?+?items.map{|x|?x[:tags]}?? ?
  27. ??tags_space.flatten!.sort!.uniq! ?
  28. ??this_point?=?tags_to_point(by_these_tags,?tags_space) ?
  29. ??other_points?=?items.map{|i|? ?
  30. ????[i,?tags_to_point(i[:tags],?tags_space)] ?
  31. ??} ?
  32. ?
  33. ??similarities?=?other_points.map{|item,?that_point| ?
  34. ????[item,?euclidean_distance(this_point,?that_point)] ?
  35. ??} ?
  36. ??sorted?=?similarities.sort?{|a,b|?a[1]?<=>?b[1]} ?
  37. ??return?sorted.map{|point,s|?point} ?
  38. End?

這是一些示例代碼,你可以直接復制運行:

  1. #?SAMPLE?DATA ?
  2. ?
  3. all_articles?=?[ ?
  4. ??{ ?
  5. ???:article?=>?"Data?Mining:?Finding?Similar?Items",? ?
  6. ???:tags?=>?["Algorithms",?"Programming",?"Mining",? ?
  7. ?????"Python",?"Ruby"] ?
  8. ??},? ?
  9. ??{ ?
  10. ???:article?=>?"Blogging?Platform?for?Hackers",?? ?
  11. ???:tags?=>?["Publishing",?"Server",?"Cloud",?"Heroku",? ?
  12. ?????"Jekyll",?"GAE"] ?
  13. ??},? ?
  14. ??{ ?
  15. ???:article?=>?"UX?Tip:?Don't?Hurt?Me?On?Sign-Up",? ?
  16. ???:tags?=>?["Web",?"Design",?"UX"] ?
  17. ??},? ?
  18. ??{ ?
  19. ???:article?=>?"Crawling?the?Android?Marketplace",? ?
  20. ???:tags?=>?["Python",?"Android",?"Mining",? ?
  21. ?????"Web",?"API"] ?
  22. ??} ?
  23. ] ?
  24. ?
  25. #?SORTING?these?articles?by?similarity?with?an?article? ?
  26. #?tagged?with?Publishing?+?Web?+?API ?
  27. # ?
  28. # ?
  29. #?The?list?is?returned?in?this?order: ?
  30. # ?
  31. #?1.?article:?Crawling?the?Android?Marketplace ?
  32. #????similarity:?2.0 ?
  33. # ?
  34. #?2.?article:?"UX?Tip:?Don't?Hurt?Me?On?Sign-Up" ?
  35. #????similarity:?2.0 ?
  36. # ?
  37. #?3.?article:?Blogging?Platform?for?Hackers ?
  38. #????similarity:?2.645751 ?
  39. # ?
  40. #?4.?article:?"Data?Mining:?Finding?Similar?Items" ?
  41. #????similarity:?2.828427 ?
  42. # ?
  43. ?
  44. sorted?=?sort_by_similarity( ?
  45. ????all_articles,?['Publishing',?'Web',?'API']) ?
  46. ?
  47. require?'yaml'?
  48. puts?YAML.dump(sorted)?

你是否留意到我們之前選擇的數據存在一個缺陷?前兩篇文章對于標簽“["Publishing",?"Web",?"API"]”有著相同的歐氏幾何空間距離。

為了更加形象化,我們來看看計算第一篇文章所用到的點:

  1. [1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?0,?0,?0,?0,?1] ?
  2. [1,?0,?1,?0,?0,?0,?0,?0,?1,?0,?0,?1,?0,?0,?0,?1]?

只有四個坐標值不同,我們再來看看第二篇文章所用到的點:

  1. [1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?0,?0,?0,?0,?1] ?
  2. [0,?0,?0,?0,?1,?0,?0,?0,?0,?0,?0,?0,?0,?0,?1,?1]?

與第一篇文章相同,也只有4個坐標值不同。歐氏空間距離的度量取決于點之間的差異。這也許不太好,因為相對平均值而言,有更多或更少標簽的文章會處于不利地位。

余弦相似度

這種方法與之前的方法類似,但更關注相似性。下面是公式:

下面是Ruby代碼:

  1. def?dot_product(a,?b) ?
  2. ??products?=?a.zip(b).map{|a,?b|?a?*?b} ?
  3. ??products.inject(0)?{|s,p|?s?+?p} ?
  4. end?
  5. ?
  6. def?magnitude(point) ?
  7. ??squares?=?point.map{|x|?x?**?2} ?
  8. ??Math.sqrt(squares.inject(0)?{|s,?c|?s?+?c}) ?
  9. end?
  10. ?
  11. #?Returns?the?cosine?of?the?angle?between?the?vectors? ?
  12. #associated?with?2?points ?
  13. # ?
  14. #?Params: ?
  15. #??-?a,?b:?list?of?coordinates?(float?or?integer) ?
  16. # ?
  17. def?cosine_similarity(a,?b) ?
  18. ??dot_product(a,?b)?/?(magnitude(a)?*?magnitude(b)) ?
  19. end?

對于以上示例,我們對文章進行分類得到:

  1. -?article:?Crawling?the?Android?Marketplace ?
  2. ??similarity:?0.5163977794943222 ?
  3. -?article:?"UX?Tip:?Don't?Hurt?Me?On?Sign-Up"?
  4. ??similarity:?0.33333333333333337 ?
  5. -?article:?Blogging?Platform?for?Hackers ?
  6. ??similarity:?0.23570226039551587 ?
  7. -?article:?"Data?Mining:?Finding?Similar?Items"?
  8. ??similarity:?0.0?

這種方法有了很大改善,我們的代碼可以很好地運行,但它依然存在問題。

示例中的問題:Tf-ldf權重

我們的數據很簡單,可以輕松地計算并作為衡量的依據。如果不采用余弦相似度,很可能會出現相同的結果。

Tf-ldf權重是一種解決方案。Tf-ldf是一個靜態統計量,用于權衡文本集合中的一個詞在一個文檔中的重要性。

根據Tf-ldff,我們可以為坐標值賦予獨特的值,而并非局限于0和1.

對于我們剛才示例中的簡單數據集,也許更簡單的度量方法更適合,比如Jaccard index也許會更好。

皮爾遜相關系數(Pearson?Correlation?Coefficient)

使用皮爾遜相關系數(Pearson?Correlation?Coefficient)尋找兩個項目之間的相似性略顯復雜,也并不是非常適用于我們的數據集合。

例如,我們在IMDB中有2個用戶。其中一個用戶名為John,對五部電影做了評級:[1,2,3,4,5]。另一個用戶名為Mary,對這五部電影也給出了評級:[4,?5,?6,?7,?8]。這兩個用戶非常相似,他們之間有一個完美的線性關系,Mary的評級都是在John的基礎上加3。

計算公式如下:

?代碼如下:

  1. def?pearson_score(a,?b) ?
  2. ??n?=?a.length ?
  3. ??return?0?unless?n?>?0 ?
  4. ??#?summing?the?preferences ?
  5. ??sum1?=?a.inject(0)?{|sum,?c|?sum?+?c} ?
  6. ??sum2?=?b.inject(0)?{|sum,?c|?sum?+?c} ?
  7. ??#?summing?up?the?squares ?
  8. ??sum1_sq?=?a.inject(0)?{|sum,?c|?sum?+?c?**?2} ?
  9. ??sum2_sq?=?b.inject(0)?{|sum,?c|?sum?+?c?**?2} ?
  10. ??#?summing?up?the?product ?
  11. ??prod_sum?=?a.zip(b).inject(0)?{|sum,?ab|?sum?+?ab[0]?*?ab[1]} ?
  12. ??#?calculating?the?Pearson?score ?
  13. ??num?=?prod_sum?-?(sum1?*sum2?/?n)?? ?
  14. ??den?=?Math.sqrt((sum1_sq?-?(sum1?**?2)?/?n)?*?(sum2_sq?-?(sum2?**?2)?/?n)) ?
  15. ??return?0?if?den?==?0 ?
  16. ??return?num?/?den?? ?
  17. end?
  18. puts?pearson_score([1,2,3,4,5],?[4,5,6,7,8]) ?
  19. #?=>?1.0 ?
  20. puts?pearson_score([1,2,3,4,5],?[4,5,0,7,8]) ?
  21. #?=>?0.5063696835418333 ?
  22. puts?pearson_score([1,2,3,4,5],?[4,5,0,7,7]) ?
  23. #?=>?0.4338609156373132 ?
  24. puts?pearson_score([1,2,3,4,5],?[8,7,6,5,4]) ?
  25. #?=>?-1?

曼哈頓距離算法

沒有放之四海而皆準的真理,我們所使用的公式取決于要處理的數據。下面我們簡要介紹一下曼哈頓距離算法。

曼哈頓距離算法計算兩點之間的網格距離,維基百科中的圖形完美詮釋了它與歐氏幾何距離的不同:

紅線、黃線和藍線是具有相同長度的曼哈頓距離,綠線代表歐氏幾何空間距離。(張志平/編譯)

原文鏈接:http://bionicspirit.com/blog/2012/01/16/cosine-similarity-euclidean-distance.html



云時代的企業應用數據挖掘

本文主要分析了企業面對云時代的SaaS服務時,如何有效地對應用數據進行數據挖掘。首先分析了企業面對海量增長的數據時數據挖掘面臨的挑戰,其次提出了一種適合云應用環境的數據挖掘模式,最后對該方法進行了總結。

趙鵬

中國電信股份有限公司北京研究 院高級工程師,主要研究方向為信息系統規劃與設計、語義網絡和知識工程。

顧茜

中國電信股份有限公司北京研究 院工程師,目前從事云計算領域的研究工作。

隨著云時代的到來和SaaS概念的引入,越來越多的企業開始選擇由SaaS應用提供商、運營商等通過互聯網平臺提供SaaS應用服務,SaaS應用的數據量面臨著TB級的增長速度;不同的SaaS應用體系,提供的數據結構也不完全相同,數據有文本、圖形甚至小型數據庫;SaaS應用數據隨著云服務平臺的分布性特點,有可能分布在不同的服務器上,如何對這些異構異源的數據進行數據挖掘,是云時代的企業面臨的難題。

圖1 企業面臨著在不同數據源上進行數據挖掘的挑戰
圖1 企業面臨著在不同數據源上進行數據挖掘的挑戰

如何從海量應用挖掘出合理的數據

對于企業而言,如何將各種SaaS應用數據進行整合挖掘,提煉出適合其使用的商業信息是企業的一大急迫需求。傳統的BI模式大多基于數據倉庫,是關系型數據庫的模式。面對急劇增長的異構數據,傳統的數據倉庫和原有的并行計算技術由于挖掘效率低,已經不能解決海量數據挖掘工作,影響著數據的及時提取。

云時代企業數據挖掘也面臨如下挑戰。

  • 挖掘效率:進入云計算時代后,BI的思路發生了轉換。以前是基于封閉的企業數據進行挖掘,而面對引入互聯網應用后海量的異構數據(據預計到2020年,爆發式增長的數據量將突破35ZB(1ZB=10億TB))時,目前并行挖掘算法的效率很低。
  • 多源數據:引入云計算后,企業數據的位置有可能在提供公有云服務的平臺上,也可能在企業自建的私有云上,如何面對不同的數據源進行挖掘也是一個挑戰。?如圖1所示。
  • 異構數據:Web數據的最大特點就是半結構化,如文檔、報表、網頁、聲音、圖像、視頻等,而云計算帶來了大量的基于互聯網模式提供的SaaS應用,如何梳理有效數據是一個挑戰。

SaaS應用的數據挖掘希望能夠通過海量數據存儲平臺,引入快速并行的挖掘算法,提高數據挖掘的質量。

適合云應用數據挖掘的模式建議

數據倉庫建模階段

為了應對SaaS應用大量異構數據,引入XML標記和交換數據。由于XML能夠使不同來源的結構化數據很容易地結合在一起,因而使搜索多樣的不兼容的數據庫成為可能,從而為解決Web數據挖掘難題帶來了希望。XML的擴展性和靈活性允許XML描述不同種類應用軟件中的數據,從而能描述搜集的Web頁中的數據記錄。

引入MapReduce算法,提高數據抽取轉換的效率。MapReduce算法是Google提出的一個軟件架構,用于大規模數據集(大于1TB)的并行運算。當前的實現方法是指定一個Map(映射)函數用來把一組鍵值對映射成一組新的鍵值對,指定并發的Reduce(化簡)函數用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

MapReduce更適合如下場景。

  • ETL(數據提取轉化加載)類的應用:從多個不同的源讀取日志信息;分析以及清理日志數據;執行復雜的變換,比如“會話轉換”;決定存儲什么樣的屬性以及把信息裝載到DBMS或者其他存儲引擎中。
  • 復雜分析應用:這種挖掘類型的應用需要對數據進行多步驟的計算和處理,通常一個程序的輸出會是另外一個程序的輸入,因此很難用單個SQL語句來表示,這種應用場合下,MapReduce是很好的候選方案。
  • 半結構化數據:因為不需要對數據的存儲進行格式定義,所以MapReduce比較適合處理半結構化數據,這些數據通常都是一些鍵值對。這些場合下,MapReduce非常適合做ETL的事情。
  • 快速實施的系統:完善和健壯的低成本開源解決方案是MapReduce最大的優點。
    圖2 數據挖掘模式圖
    圖2 數據挖掘模式圖

引入HDFS的分布式存儲模式。HDFS系統簡單,利于提高實施效率,適合海量數據挖掘。HDFS架構基于GFS體系架構(Google?File?System,簡稱GFS,是由Google設計并實現的一個分布式文件系統,基于大量安裝有Linux操作系統的普通PC構成的集群系統),但比GFS架構精簡。GFS和HDFS都采用“單一主控機+多臺工作機”的模式,通過數據分塊和復制(多副本,一般是3)來提供更高的可靠性和性能。GFS允許文件被多次或者多個客戶端同時打開以追加數據,以記錄為單位。而在HDFS中,文件只允許一次打開并追加數據。GFS中采用主從模式備份Master的系統元數據,當主Master失效時,可以通過分布式選舉備機接替主Master繼續對外提供服務,而由于Replication及主備切換本身有一定的復雜性,HDFS?Master的持久化數據只寫入到本機(可能寫入多份存放到Master機器的多個磁盤中防止某個磁盤損害),出現故障時需要人工介入。GFS通過內部采用Copy-on-Write的數據結構實現集群快照功能,而HDFS不提供快照功能。

引入Hive架構。Hive是建立在Hadoop上的數據倉庫基礎構架,是一種可以存儲、查詢和分析Hadoop中大規模數據的機制,提供了一系列工具用來進行數據ETL操作。Hive定義了簡單的類SQL查詢語言,稱為HQL,它允許熟悉SQL的用戶查詢數據。這個語言也允許熟悉MapReduce開發者自定義Mapper和Reducer來處理內建的Mapper?和Reducer無法完成的復雜分析工作。

數據挖掘階段

引入數據分析中間件,提供數據處理、數據探索、數據建模及模型應用等一系列功能,開發多種數據挖掘算法和統計建模方法,并能夠方便、快速、高效地處理海量數據,為商業智能的應用提供更方便、更靈活的工具和服務。

數據呈現階段

BI作為云計算的一種SaaS服務提供給企業,建立行業數據庫。面對林林總總的SaaS應用,BI同樣可作為一種SaaS服務提供給企業。同時,數據挖掘工具進行數據分析,可以發現重要的數據模式,這對構建知識庫做出了巨大貢獻——數據和信息之間的鴻溝要求系統地開發數據挖掘工具,將數據“墳墓”轉換成知識“金塊”。

數據挖掘模式圖

我們設計的數據挖掘模式圖如圖2所示。

  • 企業數據層:企業數據來源于各類應用,如?SaaS應用、企業內部應用數據和專有云應用。
  • 數據倉庫層:主要引入HDFS分布存儲系統和Hive體系架構,通過MapReduce算法對數據梳理和提取。
  • 數據挖掘層:引入基于XML數據分析中間件,實現統計查詢和數據挖掘功能。
  • 數據分析與BI應用層:將BI以SaaS服務的模式提供給企業使用。

總結

隨著云時代的到來,企業面臨的應用方式更加多元化,通過云的手段提供海量數據挖掘的方法,提高了挖掘的效率,增加了挖掘的精度,更利于挖掘應用的推廣以及專業的行業知識庫的構建。



剖析數據挖掘在金融證券交易領域的應用

[CSDN.NET報道]7月28日晚,由CSDN旗下高級技術管理者大本營CTO俱樂部舉辦的“數據挖掘在金融證券交易領域的應用經驗分享”主題沙龍活動在海淀橋車庫咖啡館成功舉辦,這是CTO俱樂部金融行業軟件專業委員會成立以來的首場線下活動。

本次活動邀請到鳳凰網高級技術經理王允、和瑞網CTO巨建華、搜狐金融事業部高級工程師趙士昌、金融界技術主管吳旻等嘉賓,分享了在證券交易行情數據分析領域所涉及的經驗和技術,并對數據挖掘在互聯網相關領域的應用進行深入的溝通和探討。活動現場火爆,有近百位行業內技術管理者來現場。

活動現場火爆

和瑞網CTO巨建華介紹了國內證券交易行業的數據特點:全部是動態時間序列數據;每秒新增數據上千;21年歷史數據;多個交易市場,多種證券類別;滬深兩市每天原始數據量為2G;財務報表等數據為非結構化數據;歷史數據永遠不會發生變化。就數據清洗與去噪,他談到了幾個基本機制——編碼標準化;單位標準化;入庫檢查規則制定;缺失數據處理機制。在數據倉庫的構建——自定義文件數據庫方面,巨建華分析了為何當前采用了NoSQL:因為磁盤的效率依然低下,因此采用了MongoDB,用內存來存儲數據,4臺服務器配備128G內存,實現了每秒27000條的寫入速度。

和瑞網CTO巨建華

在研發流程規劃方面,他重點介紹了:產品規劃(產品經理)-模型設計(金融工程師)-模型開發(開發團隊)-回歸測試(測試部)-實盤驗證(產品經理)-模型監控(產品經理)的模式。

鳳凰網高級技術經理王允

鳳凰網高級技術經理王允分享了自己對于數據挖掘在金融證券交易領域應用的未來展望——能否根據指標值給用戶操作提示?能否提示用戶K線圖上出現的形態;能夠從海量數據中自動分析得出操作提示;走勢預測;套利機會(跨A|B|H|權證|基金|商品);按照特定模型分析財務數據;周易、占星等理論能否用在股票分析上。

互動問答(從左到右分別為:王允、趙士昌、吳旻、巨建華)

現場聽眾提問,主要集中于幾點:金融行業的數據分析如何跟自身業務結合;BS/CS(客戶端)架構區別,各自的優劣;數據安全性;如何才能獲得更優質的證券交易數據、數據傳輸、清理方式等問題。在談到數據分析解決方案BS/CS架構區別時,金融界技術主管吳旻認為BS相對于CS來說會慢一點,數據量很大的時候可能不那么及時,可能會慢一兩秒。普通客戶覺得不重要,但是對于高端用戶來說半秒都是很重要的。其次是證券交易數據的獲取和使用都要合規,上交所深交所的規定都有不同的區別,很多網站因為拿不到牌照所以做不了,有些可以獲取數據做分析但不能交易。再有,數據安全是另一個不容忽視的方面。

對此,搜狐金融事業部高級工程師趙士昌并不贊同,他認為BS架構完全可以達到CS數據級別,搜狐技術部門做過測試,速度相差不會太多,一個級別的。CS架構的話,因為有客戶端,可以在本地存儲一些大量數據做分析,BS架構可能受限互聯網的束縛,但是可以將數據拿到客戶端處理,瀏覽器僅僅是顯示一下處理結果就可以,技術上都已經很成熟了。

總體來看,未來的金融證券行業數據服務,下一步的技術焦點將在如何為個人提供個性化的服務上,現場互動活躍,與會者提出了很多很好的需求和建議。

更多精彩內容及CSDN CTO俱樂部的下期線下活動,請持續關注CSDN CTO俱樂部。

CTO俱樂部是CSDN旗下面向廣大技術管理者的網上大本營,采取采用了嚴格的邀請審核制,只有公司的高級技術管理者,如CTO、技術總監、開發總監、工程總監才能申請加入,現已超過10000多名會員。CTO俱樂部定期舉行線下活動,就相關主題進行共同探討,并便于會員們相互交流




馬云的秘密武器:數據挖掘

導讀:最新一期英國《經濟學人》雜志撰文稱,阿里巴巴手中掌握著中國中產階級的大量購物數據,可以借此開展更多業務,另外一個有潛力的領域是信貸。阿里巴巴已經成為了中國電子商務之王。

以下為文章全文:

小個子馬云脫穎而出

墻上掛著十幾個大屏幕,地圖不停地閃動,數字則不斷地滾動著。阿里巴巴集團的“實時數據檢測室”為我們提供了一幅繁忙的景象:中國企業與外國企業之間的交易;中國消費者之間的服裝交易。阿里巴巴旗下各類網絡服務的用戶大約為5億人。作為該集團的創始人,個子矮小的馬云笑著說,生意“很好”。然而,這卻遠未令他滿足。

馬云曾經高考兩度落榜,但卻堅持通過廣播學習英語。上世紀90年代,馬云以翻譯的身份前往美國,并“巧遇”互聯網。他當時在一款搜索引擎中輸入了“Chinese Beer”,但卻沒有任何結果。他看到了機會。

馬云1999年創辦阿里巴巴,幫助小企業跳過中間商直接尋找客戶和供應商。阿里巴巴網站如今號稱擁有5700萬用戶,幾乎遍及世界各國。這有點像是eBay,但更像是一個網絡黃頁。

作為阿里巴巴集團旗下的另外一家網站,淘寶則專門針對普通消費者。它擁有3億用戶,2009年的交易額達到290億美元。淘寶就像是亞馬遜與 eBay的結合體:既運營著一家專供大型商家的在線商城,也提供一個任何擁有中國居民身份證的人都可以注冊并出售合法物品的網站。淘寶通過廣告獲取收入。

阿里巴巴的員工對他們一手打造的業務都很驕傲。有一個村子積壓了大量的兔肉和皮毛。村長讓村民想辦法。于是,一名村民通過阿里巴巴網站賣出了這些貨。但更多情況下,阿里巴巴的客戶都是一些希望通過廉價渠道打開國際市場的小企業。無需親自來中國,土耳其或英國的機械制造商就可以借助阿里巴巴找到這里的廉價供應商。買家可以閱讀他人針對每名賣家發表的評論,盡管并不完美,但依然能夠營造誠信氛圍。

他處處都能看到機遇

阿里巴巴位于杭州的園區與硅谷企業的風格很像。這里的建筑都很通風,而且風水很好。員工可以享受乒乓球和免費的按摩。老人和西裝革履的人在這里都很少見。與其他中國互聯網公司一樣,這里的很多高級管理人員都受過國外教育或者有過海外工作經驗。

阿里巴巴有著實力強大的海外支持者:美國雅虎和日本軟銀。然而,由于身處中國,它不能向西方企業一樣運營。到上世紀90年代,互聯網的報道已經遍及全球,但中國媒體卻罕有提及。所以馬云的創業之路非常艱難。但是現在,他處處都能看到機遇。

中國擁有數百萬小企業家,但是金融體制卻比較落后。為了提高網站流量,馬云2004年創建了一套在線支付系統——支付寶。它的增長很大程度上受益于美國同行PayPal無法進軍中國,后者直到最近才剛剛獲準在中國開展業務。支付寶目前在全球擁有4.7億用戶,中國有超過50萬商家接受這種支付方式。部分中國城市的居民還可以利用支付寶交水電費。

馬云還啟動了一項名為阿里貸款的服務。他并不對外提供貸款,但卻與銀行合作展開業務。銀行通常無法知道小型借款人的信用,但馬云卻擁有大量數據,可以判斷小企業是否具備按時還款的能力。他還可以將相互認識的企業進行綁定,以便讓賣家為常客提供銀行貸款擔保。根據阿里巴巴的數據,阿里貸款的壞賬率僅為 0.35%,這也使得該服務得以快速擴張。

阿里巴巴還面臨著許多障礙。首先,中國互聯網市場競爭非常激烈,而且發展很快。作為中國最大的搜索引擎,百度雖然現在沒有與阿里巴巴展開正面沖突,但遲早會有這么一天。其次是人才短缺。最優秀的工程師和管理者的薪酬一路飆升。

第三,為了推動增長,阿里巴巴已經放棄了很多利潤。它的主要服務是免費的,只有在賣家要求額外服務時才會收費,例如要出現在搜索結果頂部。馬云表示,這是經過深思熟慮的:規模最終將帶來回報。但是投資者卻不會一直等下去。在認識到這一點后,阿里巴巴集團的上市子公司阿里巴巴網絡有限公司今年12 月承諾,將于明年1月發放1.4億美元的特別股息。

盤活龐大數據資產

阿里巴巴擁有一項龐大而未經開發的資產:針對中國正在崛起的中產階級消費習慣搜集的大量數據。該公司對于如何使用這些數據非常謹慎,并且堅稱不會侵犯任何人的隱私。

盡管如此,阿里巴巴仍然有多種方法可以憑借現有資料賺取利潤。一種方法是,利用用戶數據來判斷趨勢,并幫助企業預測用戶需求。由于中國缺乏精確的數據,因此這項業務將很有價值。

另外一個有潛力的領域是信貸。阿里貸款不向借款企業收取信用評級費,并表示,沒有這方面的計劃。但是收費計劃的確可行:只要對每筆貸款收取少量費用,幾乎就可以創造凈利潤。而且阿里巴巴也沒有理由限制自己幫助企業借款。另外一個可能是,幫助中國消費者獲取信貸。目前,很少有企業能夠做到這一點,但是希望開展這項業務的卻大有人在。

原文鏈接:http://www.alibuybuy.com/posts/52342.html



五個免費開源的數據挖掘軟件

Orange

Orange是一個基于組件的數據挖掘和機器學習軟件套裝,它的功能即友好,又很強大,快速而又多功能的可視化編程前端,以便瀏覽數據分析和可視化,基綁定了Python以進行腳本開發。它包含了完整的一系列的組件以進行數據預處理,并提供了數據帳目,過渡,建模,模式評估和勘探的功能。其由C++和Python開發,它的圖形庫是由跨平臺的Qt框架開發。

????? RapidMiner

RapidMiner,以前叫YALE(Yet Another Learning Environment),其是一個給機器學習和數據挖掘和分析的試驗環境,同時用于研究了真實世界數據挖掘。它提供的實驗由大量的算子組成,而這些算子由詳細的XML文件記錄,并被RapidMiner圖形化的用戶接口表現出來。RapidMiner為主要的機器學習過程提供了超過500算子,并且,其結合了學習方案和Weka學習環境的屬性評估器。它是一個獨立的工具可以用來做數據分析,同樣也是一個數據挖掘引擎可以用來集成到你的產品中。

?? ?? Weka

由Java開發的Weka(Waikato Environment for Knowledge Analysis)是一個知名機器學機軟件,其支持幾種經典的數據挖掘任務,顯著的數據預處理,集群,分類,回歸,虛擬化,以及功能選擇。其技術基于假設數據是以一種單個文件或關聯的,在那里,每個數據點都被許多屬性標注。Weka使用Java的數據庫鏈接能力可以訪問SQL數據庫,并可以處理一個數據庫的查詢結果。它主要的用戶接品是Explorer,也同樣支持相同功能的命令行,或是一種基于組件的知識流接口。

?? ?? JHepWork

為科學家,工程師和學生所設計的jHepWork是一個免費的開源數據分析框架,其主要是用開源庫來創建一個數據分析環境,并提供了豐富的用戶接口,以此來和那些收費的的軟件競爭。它主要是為了科學計算用的二維和三維的制圖,并包含了用Java實現的數學科學庫,隨機數,和其它的數據挖掘算法。jHepWork是基于一個高級的編程語言Jython,當然,Java代碼同樣可以用來調用jHepWork的數學和圖形庫。

?? ?? KNIME

KNIME (Konstanz Information Miner) 是一個用戶友好,智能的,并有豐演的開源的數據集成,數據處理,數據分析和數據勘探平臺。它給了用戶有能力以可視化的方式創建數據流或數據通道,可選擇性地運行一些或全部的分析步驟,并以后面研究結果,模型以及可交互的視圖。KNIME由Java寫成,其基于Eclipse并通過插件的方式來提供更多的功能。通過以插件的文件,用戶可以為文件,圖片,和時間序列加入處理模塊,并可以集成到其它各種各樣的開源項目中,比如:R語言,Weka,Chemistry Development Kit,和LibSVM。

源文:http://www.junauza.com/2010/11/free-data-mining-software.html



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

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

相關文章

Python 第三方模塊之 selenium - 模擬操作 Chrome 瀏覽器

1、安裝selenium 1.1、Python 安裝 selenium 模塊 pip install selenium1.2、下載驅動 選擇和自己chrom版本相對應的驅動到本地&#xff0c;下載地址 http://npm.taobao.org/mirrors/chromedriver/2、Python 操作 from selenium import webdriver import time import json…

jupyter notebook代碼導出_Jupyter Notebook導出包含中文的pdf_親測有效

Jupyter Notebook是很好的數據科學創作環境&#xff0c;是非常方便的Python代碼編輯器。jupyter提供導出的格式有.py、.html、.md、.pdf等。目前用其導出包含中文的pdf會遇到很多坑&#xff0c;網上也有一些解決方案&#xff0c;大致分為兩種方式&#xff0c;一是安裝 pandoc并…

前端之使用 POST 提交數據并跳轉

GET 方式 window.location.href是我們常用來在js中實現頁面跳轉的方法&#xff0c;這是使用get方式發送請求&#xff0c;示例如下 window.location.href url;優點是簡單易用&#xff0c;缺點是如果有參數的話&#xff0c;參數會暴露在url地址中&#xff0c;這降低了系統的安…

cef js返回c++的代碼_CEF3開發者系列之外篇——IE中JS與C++交互

使用IE內核開發客戶端產品&#xff0c;系統和前端頁面之間的交互&#xff0c;通常給開發和維護帶來很大的便利性。但操作系統和前端之間的交互卻是比較復雜的。具體來說就是腳本語言和編譯語言的交互。在IE內核中html和css雖然不兼容,但是IE編程接口是完全一樣的,這得益于微軟的…

多線程編程指南 part 2

多線程編程指南Sun Microsystems, Inc.4150 Network CircleSanta Clara, CA95054U.S.A.文件號碼819–7051–102006 年10 月版權所有2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA95054 U.S.A. 保留所有權利。本文檔及其相關產品的使用、復制、分發和反編譯…

00030_ArrayList集合

1、數組可以保存多個元素&#xff0c;但在某些情況下無法確定到底要保存多少個元素&#xff0c;此時數組將不再適用&#xff0c;因為數組的長度不可變 2、JDK中提供了一系列特殊的類&#xff0c;這些類可以存儲任意類型的元素&#xff0c;并且長度可變&#xff0c;統稱為集合 3…

1.3tf的varible\labelencoder

1.tf的varible變量 import tensorflow as tf #定義變量--這里是計數的變量 statetf.Variable(0,namecounter) print (state.name) #輸出變量值 onetf.constant(1) #常量new_valuetf.add(state,one) updatetf.assign(state,new_value)#初始化所有變量 inittf.initialize_all_var…

kafka 日志相關配置

日志目錄 ${kafka.logs.dir}/server.log &#xff1a;服務器日志${kafka.logs.dir}/state-change.log&#xff1a;狀態變化日志${kafka.logs.dir}/kafka-request.log&#xff1a;請求處理日志${kafka.logs.dir}/log-cleaner.log&#xff1a;日志清理${kafka.logs.dir}/control…

linux mc服務器 mod_如何在linux搭建MC服務器

摘要&#xff1a;前言Q&#xff1a;為什么要用linux搭建MC服務器&#xff1f;A&#xff1a;因為linux系統占用率低&#xff0c;跑服務器效果非常好Q&#xff1a;看不懂linux ssh&#xff0c;后期自己無力運維怎么辦A&#xff1a;沒關系&#xff0c;這個教程是通過安裝BT...前言…

flask-SQLAlchemy 使用 session.commit() 處理異常回滾

最為原始的try/except辦法&#xff0c;多次插入數據就要寫多次&#xff0c;很麻煩&#xff0c;使用python原生的contextlib.contextmanager簡化代碼&#xff01; try:user_db User(emailself.email, nicknameself.nickname, passwordself.password)db.session.add(user_db)#所…

小米機器人清理主刷和軸承_掃地機主刷怎樣更換

原標題&#xff1a;掃地機主刷怎樣更換隨著電動掃地機逐漸取代手動清潔&#xff0c;電動掃地機的工作量不斷增加&#xff0c;從而導致主刷磨損更加嚴重&#xff0c;并增加了主刷更換的次數。因此&#xff0c;偉頓在這里告訴大家掃地機主刷怎樣更換&#xff1a;1 .首先&#xff…

多線程編程指南

1. 多線程編程指南1--線程基礎 線程編程指南1--線程基礎 Wednesday, 29. March 2006, 11:48:45 多線程 本文出自:BBS水木清華站 作者:Mccartney (coolcat) (2002-01-29 20:25:25) multithreading可以被翻譯成多線程控制。與傳統的UNIX不同&#xff0c;一個傳統 的UNIX進…

路由器和貓的區別

路由器和貓的區別 網絡在我們現在生活中必不可少,我們鏈接互聯網經常需要用到貓和路由器,但是依然有很多菜鳥根本不知道什么是貓什么是路由器,至于貓和路由器怎么使用就更不知道了,下面給大家詳細的講解下路由器和貓的區別。 路由器和貓的用途和鏈接位置不一樣,如下圖: 路由器:…

Docker 精通之 docker-compose

1、Docker-compose簡介 1.1、ocker-compose簡介 Docker-Compose項目是Docker官方的開源項目&#xff0c;負責實現對Docker容器集群的快速編排。   Docker-Compose將所管理的容器分為三層&#xff0c;分別是工程&#xff08;project&#xff09;&#xff0c;服務&#xff08…

json數據格式 穗康碼_Json數據格式

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。JSON采用完全獨立于語言的文本格式&#xff0c;這些特性使JSON成為理想的數據交換語言。易于人閱讀和編寫&#xff0c;同時也易于機器解析和生成。JSON 比 XML 更小、更快&#xff0c;更易解析。JSON建構于兩種結…

Linux 系統版本查詢

顯示Linux版本信息輸入"cat /proc/version",說明正在運行的內核版本。輸入"cat /etc/issue", 顯示的是發行版本信息。輸入"lsb_release -a ",可對多個linux版本適用。輸入"uname -a ",可顯示電腦以及操作系統的相關信息。轉載于:https…

kafka 命令行命令大全

kafka 腳本 connect-distributed.sh connect-mirror-maker.sh connect-standalone.sh kafka-acls.sh kafka-broker-api-versions.sh kafka-configs.sh kafka-console-consumer.sh kafka-console-producer.sh kafka-consumer-groups.sh kafka-consumer-perf-test.sh kafka-dele…

kotlin將對象轉換為map_Kotlin程序將哈希映射(HashMap)轉換為列表(List)

Kotlin程序將哈希映射(HashMap)轉換為列表(List)在此程序中&#xff0c;您將學習在Kotlin中將map轉換為列表的不同方法。示例&#xff1a;將map轉換為列表示例import java.util.ArrayListimport java.util.HashMapfun main(args: Array) {val map HashMap()map.put(1, "a…

零元學Expression Blend 4 - Chapter 4元件重復運用的觀念

零元學Expression Blend 4 - Chapter 4元件重復運用的觀念 原文:零元學Expression Blend 4 - Chapter 4元件重復運用的觀念本章將教大家Blend元件重復運用的觀念&#xff0c;這在Silverlight設計中是非常重要的&#xff0c;另外加碼贈送漸層工具(Gradient Tool)。 ? 本章將教…

Python 內置模塊之 ConfigParser - 解析 ini 文件

ini配置文件是被configParser直接解析然后再加載的&#xff0c;如果只是修改配置文件&#xff0c;并不會改變已經加載的配置 INI文件結構簡單描述 INI文件就是擴展名為“ini”的文件。在Windows系統中&#xff0c;INI文件是很多&#xff0c;最重要的就是“System.ini”、“Sy…