自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

手把手教學:使用Elastic search和Kibana進行數(shù)據(jù)探索(Python語言)

大數(shù)據(jù)
探索性數(shù)據(jù)分析(EDA)幫助我們認識底層的數(shù)據(jù)基結(jié)構(gòu)及其動力學,以此來最大限度發(fā)掘出數(shù)據(jù)的可能性。EDA是提取重要變量和檢測異常值的關鍵。盡管存在著很多種機器學習算法,但EDA仍被視為理解和推動業(yè)務的最關鍵算法之一。

[[198483]]

探索性數(shù)據(jù)分析(EDA)幫助我們認識底層的數(shù)據(jù)基結(jié)構(gòu)及其動力學,以此來最大限度發(fā)掘出數(shù)據(jù)的可能性。EDA是提取重要變量和檢測異常值的關鍵。盡管存在著很多種機器學習算法,但EDA仍被視為理解和推動業(yè)務的最關鍵算法之一。

其實有很多種方式都能夠執(zhí)行實現(xiàn)EDA,例如Python的matplotlib、seaborn庫,R語言的ggplot2,而且網(wǎng)絡上有很多很好的資源,例如John W. Tukey的“探索性數(shù)據(jù)分析”, Roger D. Peng 的“用R進行探索性數(shù)據(jù)分析”等,不勝枚舉。

在本文中,我主要講解下如何使用Elastic search和Kibana實現(xiàn)EDA。

[[198484]]

目錄:

1. Elastic search

2. Kibana

3. 創(chuàng)建數(shù)據(jù)表

  • 數(shù)據(jù)索引
  • 鏈接Kibana
  • 可視化

4. 搜索欄

1. Elastic Search (ES)

Elastic Search是一個開放源碼,RESTful分布式和可擴展的搜索引擎。由于其簡單的設計和分布式特性,Elastic Search從大量級數(shù)據(jù)(PB)中進行簡單或復雜的查詢、提取結(jié)果都非常迅速。另外相較于傳統(tǒng)數(shù)據(jù)庫被模式、表所約束,Elastic Search工作起來也更加容易。

Elastic Search提供了一個具有HTTP Web界面和無模式JSON文檔的分布式、多租戶的全文搜索引擎。

ES安裝

安裝和初始化是相對簡單的,如下所示:

  • 下載并解壓Elasticsearch包
  • 改變目錄到Elasticsearch文件夾
  • 運行bin/ Elasticsearch(或在Windows上運行bin \elasticsearch.bat)

Elasticsearch實例在默認配置的瀏覽器中進行本地運行http://localhost:9200。

2.Kibana

Kibana是一個基于Elasticsearch的開源數(shù)據(jù)挖掘和可視化工具,它可以幫助用戶更好地理解數(shù)據(jù)。它在Elasticsearch集群索引的內(nèi)容之上提供可視化功能。

安裝

安裝和初始化的過程與Elasticsearch類似:

  • 下載并解壓Kibana包
  • 用編輯器打開config/ Kibana.yml,配置elasticsearch.url指向本地ElasticSearch實例所在位置
  • 更改目錄到Kibana文件夾
  • 運行bin/ Kibana(或在Windows上運行bin \ kibana.bat)

Kibana實例在默認配置的瀏覽器中進行本地運行http://localhost:5601.

將運行Kibana的終端保持打開狀態(tài),可以保證實例不斷的運行。你也可以使用nohup模式在后臺運行實例。

3. 創(chuàng)建數(shù)據(jù)表

使用ES和Kibana創(chuàng)建儀表板主要有三個步驟。接下來我將會用貸款預測的實際問題的數(shù)據(jù)來示例如何創(chuàng)建一個儀表板。請注冊該問題,以便能夠下載數(shù)據(jù)。請檢查數(shù)據(jù)字典以獲得更多詳細信息。

注:在本文中,我將使用python讀取數(shù)據(jù)并將數(shù)據(jù)插入到Elasticsearch中,并通過Kibana進行可視化。

讀取數(shù)據(jù)

  1. import pandas as pd 
  2. train_data_path = '../loan_prediction_data/train_u6lujuX_CVtuZ9i.csv' 
  3. test_data_path = '../loan_prediction_data/test_Y3wMUE5_7gLdaTN.csv' 
  4. train = pd.read_csv(train_data_path); print(train.shape) 
  5. test = pd.read_csv(test_data_path); print(test.shape) 

結(jié)果:

  1. (614, 13) 
  2. (367, 12) 

 

3.1 數(shù)據(jù)索引

Elasticsearch將數(shù)據(jù)索引到其內(nèi)部數(shù)據(jù)格式,并將其存儲在類似于JSON對象的基本數(shù)據(jù)結(jié)構(gòu)中。請找到下面的Python代碼,將數(shù)據(jù)插入到ES當中。

請如下所示安裝pyelasticsearch庫以便通過Python索引。

  1. pip install pyelasticsearch 
  1. from time import time 
  2. from pyelasticsearch import ElasticSearch 
  3.  
  4. CHUNKSIZE=100 
  5.  
  6. index_name_train = "loan_prediction_train" 
  7. doc_type_train = "av-lp_train" 
  8.  
  9. index_name_test = "loan_prediction_test" 
  10. doc_type_test = "av-lp_test" 
  1. def index_data(data_path, chunksize, index_name, doc_type): 
  2.     f = open(data_path) 
  3.     csvfile = pd.read_csv(f, iterator=True, chunksize=chunksize)  
  4.     es = ElasticSearch('http://localhost:9200/'
  5.     try : 
  6.         es.delete_index(index_name) 
  7.     except : 
  8.         pass 
  9.     es.create_index(index_name) 
  10.     for i,df in enumerate(csvfile):  
  11.         records=df.where(pd.notnull(df), None).T.to_dict() 
  12.         list_records=[records[it] for it in records] 
  13.         try : 
  14.             es.bulk_index(index_name, doc_type, list_records) 
  15.         except : 
  16.             print("error!, skiping chunk!"
  17.             pass 
  1. index_data(train_data_path, CHUNKSIZE, index_name_train, doc_type_train) # Indexing train data 
  1. index_data(test_data_path, CHUNKSIZE, index_name_test, doc_type_test) # Indexing test data 
  1. DELETE /loan_prediction_train [status:404 request:0.010s] 
  2. DELETE /loan_prediction_test [status:404 request:0.009s] 

3.2 鏈接Kibana

  • 在瀏覽器上訪問 http://localhost:5601
  • 去管理模塊中選取索引模式,點擊添加。
  • 如果你的索引數(shù)據(jù)中包含時間戳,則選復選框。否則,取消選中該框。
  • 將之前用于數(shù)據(jù)索引到ElasticSearch中的索引輸入。 (例如:loan_prediction_train)。
  • 點擊新建。

對loan_prediction_test重復上述4個步驟。 現(xiàn)在kibana已經(jīng)與訓練數(shù)據(jù)鏈接,并測試數(shù)據(jù)是否已經(jīng)存在于elastic search中。

3.3可視化

  • 單擊 可視化>創(chuàng)建可視化>選擇可視化類型>選擇索引(訓練或測試)>構(gòu)建

例一

選擇垂直條形圖,并選擇繪制Loan_status分布的訓練索引。

將y軸作為計數(shù),x軸代表貸款狀態(tài)

  • 保存可視化
  • 添加儀表板>選擇索引>添加只保存的可視化。

Voila!! Dashboard 生成啦!

例二

  • 單擊可視化>創(chuàng)建可視化>選擇可視化類型>選擇索引(訓練或測試)>構(gòu)建
  • 選擇垂直條形圖,并選擇訓練索引繪制已婚分布。
  • 選擇y軸為計數(shù),x軸為已婚

  • 保存可視化。
  • 重復上述步驟進行索引測試。
  • 打開已創(chuàng)建的儀表板添加這些可視化

例三

類似的性別分布。這一次我們將使用餅圖。

  • 單擊可視化>創(chuàng)建可視化>選擇可視化類型>選擇索引(訓練或測試)>構(gòu)建
  • 選擇餅圖并選擇列車索引繪制已婚分布。
  • 按“已分隔”列選擇切片大小作為計數(shù)和分割片段

  • 保存可視化。
  • 重復上述步驟進行索引測試。
  • 打開已創(chuàng)建的儀表板添加這些可視化

最后,創(chuàng)建所有可視化的儀表板將如下所示!

是不是很漂亮!

剩下將由你來探索更多的elasticsearch和Kibana了,并創(chuàng)建多種多樣的可視化效果。

4.搜索欄

搜索欄允許用戶通過字符串來搜索來數(shù)據(jù),這便有助于我們理解數(shù)據(jù)中的更改,并在一個特定屬性中進行更改,這對于可視化來說是不容易的。

舉例

  • 轉(zhuǎn)到發(fā)現(xiàn)>添加Loan_Status和Credit_History
  • 使用搜索欄僅選擇Credit_History為0.(Credit_History:0)
  • 現(xiàn)在可以查看Loan_Status列中的更改記錄。

觀點:大多數(shù)信用記錄為0的客戶沒有收到貸款(貸款狀態(tài)為N = 92.1%)

以上為全文。

責任編輯:武曉燕 來源: 36大數(shù)據(jù)
相關推薦

2021-06-16 09:02:43

Pythonjieba分詞Python基礎

2020-12-17 09:40:01

Matplotlib數(shù)據(jù)可視化命令

2021-07-14 09:00:00

JavaFX開發(fā)應用

2021-07-01 09:31:50

MySQL SQL 語句數(shù)據(jù)庫

2023-03-29 10:02:36

2022-12-07 08:42:35

2009-08-28 17:00:50

C# for

2020-10-12 08:19:43

Python爬蟲網(wǎng)頁數(shù)據(jù)

2020-12-08 10:32:15

Python郵件tcp

2020-08-12 09:07:53

Python開發(fā)爬蟲

2020-11-10 09:00:00

JavaMule ESB開發(fā)

2021-08-02 07:35:19

Nacos配置中心namespace

2021-06-05 10:31:53

動態(tài)排序圖可視化

2021-09-30 18:27:38

數(shù)據(jù)倉庫ETL

2016-04-20 16:32:53

粒子引擎bugly騰訊

2021-12-29 20:20:25

結(jié)構(gòu)化數(shù)據(jù)Pandas

2021-06-10 07:49:28

Python詞云圖wordcloud

2020-07-10 08:24:18

Python開發(fā)工具

2011-01-10 14:41:26

2011-05-03 15:59:00

黑盒打印機
點贊
收藏

51CTO技術(shù)棧公眾號