注意: 雖然 JavaScript 對於本網站不是必需的,但您與內容的互動將受到限制。請啟用 JavaScript 以獲得完整體驗。

在 Einblick 的視覺化畫布中使用基於 Python 的運算元重新構想資料科學

目前,資料科學家與他們的隊友和相關利益相關者是孤立的。首先,資料科學家需要收集原始資料或透過 ETL 或 ELT 管道與資料工程師合作。然後開始清理資料並針對手頭的特定任務或專案進行探索性資料分析的過程。這一步驟可能非常耗時,因為它本質上是迭代的。只有這樣,資料科學家才能開始構建和調整機器學習模型。

Einblick canvas

Einblick:以思想的速度進行協作資料科學

Einblick,我們的目標之一是消除資料科學家的障礙,以便您可以減少在繁瑣的設定和重複性任務上花費的時間,而將更多時間用於提取有意義的見解。為了實現我們的目標,Einblick 在協作資料科學畫布中重新構想了現代資料科學工作流程,而不是線性的筆記本。在畫布環境中工作具有許多優勢,包括即時協作、廣闊的視覺化介面和漸進式計算引擎。在本文中,我們將重點介紹我們節省資料科學家時間的關鍵方法之一——我們的運算元。我們將介紹一些核心運算元,為什麼 Python 是我們軟體解決方案的關鍵部分,以及我們如何使用使用者運算元介面增強我們的產品。後者允許使用者自定義和使用自己的運算元,這些運算元可以在任何 Einblick 畫布中使用,並與其他 Einblick 使用者共享。

資料科學畫布中的運算元

現在,資料科學家的主要低效率問題之一是,有些任務或程式碼片段會一直執行,例如資料探索或特徵工程。即使這些任務可能很單調且重複,但它們對於資料科學工作流程至關重要。

我們平臺的核心部分是我們的運算元。Einblick 運算元都捕獲分析中定義的一組步驟,並且不必在畫布環境中線性排列。然後,該空間允許使用者根據他們的思維過程可能如何自然流動來工作。我們的一些核心運算元包括

  • Python 單元格傳統上是資料科學家可用的唯一運算元。編寫程式碼並在瀏覽器訪問的 Python 執行時中 1:1 重現您的 Jupyter 筆記本。
  • 圖表運算元建立不同的視覺化,包括散點圖、直方圖、條形圖、折線圖和熱圖
  • 表示式運算元支援 Python 3 語法,接收資料幀並基於邏輯表示式新增一個新列。我們目前支援許多操作,包括算術、比較和按位運算子,以及數學函式
  • AutoML 運算元可以在比手動調整短得多的時間內構建更準確的預測模型。您只需從資料幀中選擇目標列和特徵列,以及訓練資料集和測試資料集。

鑑於 Python 具有許多用於資料科學、統計和機器學習的庫和框架,例如 statsmodelssklearn,Python 是現代資料科學家的簡單選擇。因此,Einblick 在我們程式碼庫的各個部分都使用了 Python。此外,我們的 Python 單元格運算元對我們的使用者體驗至關重要,並將在 Python 筆記本中工作的體驗與在資料科學畫布中工作的體驗聯絡起來。我們重視 Python 為使用者提供的靈活性,不僅可以增強 Einblick 的功能,還可以使資料科學過程更加高效和易於訪問。

建立可共享的使用者定義運算元

Einblick canvas with user-defined linear regression operators

在我們努力使資料科學過程更加流暢和快速的過程中,我們建立了使用者運算元。透過編輯器或連結到 Git 儲存庫,我們的使用者可以建立自己的 Einblick 運算元,以便他們可以輕鬆高效地重用自己的程式碼和流程。鑑於協作和溝通對於資料科學過程的重要性,Einblick 使用者建立的運算元可以輕鬆共享,這樣,任何可能知道他們想做什麼的人,例如將文字列轉換為日期時間列,都可以在無需瞭解 Python 語法的情況下完成此操作。

例如,我們的線性迴歸和 k 均值聚類運算元都是透過我們的使用者運算元編輯器建立的。可以透過“使用者設定”選單切換開啟和關閉“運算元”選單來訪問使用者運算元編輯器。

為了紀念資料科學的根基,並向資料科學社群的共同經驗致敬,我們建立了一個運算元來視覺化簡單的線性迴歸模型。此使用者運算元是我們的線性迴歸運算元的擴充套件,該運算元是內建的,並且每個人都可以訪問,這將允許我們建立一個格式良好的線性迴歸圖。為了說明該運算元,我們透過 seaborn使用了 iris 資料集。

確定運算元輸入

Einblick user operator interface

在使用者運算元編輯器的“運算元規範”選項卡中,您可以指定以下內容

  • 基本屬性:包括畫布中運算元的維度和運算元的描述,該描述將在左側面板中以及使用運算元時在畫布中懸停顯示。
  • 資料幀輸入:允許您命名輸入到運算元的資料幀,在運算元編輯器中可以作為列表 dfs 訪問。您可以在“指令碼”選項卡中索引和訪問資料幀輸入。
  • 屬性選擇輸入:指定您可以和不能從資料幀輸入中選擇的內容,例如允許的列型別或每個欄位允許的選擇數量。您可以使用“指令碼”選項卡中的 attributes 變數訪問這些內容。
  • 自定義值:允許您輸入自定義值,例如圖形的文字標題、直方圖中的柱數或您希望每次使用運算元時定製的任何其他動態欄位
  • 內部輸入:允許您在運算元內部輸入,而不是在左側面板中輸入。這主要是畫布中使用運算元體驗中的一種審美差異

請務必在頁面底部儲存您的工作!

運算元包要求

在“要求”選項卡中,您可以列出您的運算元需要安裝的軟體包才能執行。您可以將此選項卡視為 GitHub 儲存庫中 requirements.txt 檔案的替代檔案。

運算元指令碼

“指令碼”選項卡是您可以自定義您希望運算元執行的操作的位置。您可以將其視為 Python 指令碼。就像任何 Python 指令碼一樣,您可以從匯入“要求”選項卡中列出的相關軟體包開始。然後您可以像往常一樣編寫程式碼。您還可以在編輯器中工作時在任何上傳的資料檔案上測試指令碼。內建的錯誤訊息將幫助您根據需要除錯程式碼。

對於迴歸視覺化運算元,我們使用了 Python 的 matplotlibseaborn 來建立和標記散點圖,以及一條根據兩個輸入繪製的最佳擬合線:資料幀和我們的內建線性迴歸運算元的結果。

Code for regression visualization operator

由於這是一個使用者定義的運算元,我們可以根據我們的特定需求定製運算元。在本例中,我們知道線性迴歸運算元的結果返回一個表,其中每一列對應一個預測變數或 X 變數,在本例中為 petal_width,以及一列對應 const,它表示迴歸線的 y 軸截距。對於更高階的運算元,您始終可以在“運算元規範”選項卡中新增更多輸入或自定義輸入。

Einblick operator focus on input, output

一旦您對程式碼感到滿意,就可以使用頂部的“選項”漢堡選單來發布您的運算元。一旦您點擊發布,您就可以在任何 Einblick 畫布中使用您的運算元。您還可以與任何利益相關者或協作者共享您的運算元,以便他們也可以使用它。請在 Einblick 的使用者運算元文件中閱讀有關使用者運算元的關鍵字和概念的更多資訊。

為什麼選擇 Python:作為資料科學社群發展

簡單線性迴歸示例是對 Einblick 中使用者運算元的實現的很好的介紹,但我們的一些使用者建立了更高階的運算元,例如受 此部落格文章啟發的 NBA 投籃圖視覺化器。

Einblick NBA shot chart operator

我們知道創新、靈活性和效率對於資料科學和 Python 社群有多麼重要。我們的團隊很高興看到其他使用者將如何使用我們的運算元來建立資料科學挑戰的創新解決方案,並且我們期待隨著我們公司發展而培養我們的社群。

與我們的使用者一起,我們將繼續利用 Python 的強大功能來簡化和放大現代資料科學。免費試用 Einblick 和我們的使用者運算元,並告訴我們您的想法。我們期待您的反饋!