18 段代碼帶你玩轉 18 個機器學習必備交互工具

2021-03-02 CSDN

作者:曼紐爾·阿米納特吉(Manuel Amunategui)、邁赫迪·洛佩伊(Mehdi Roopaei)

如需轉載請聯繫大數據(ID:hzdashuju)

01 Jupyter Notebook

Jupyter Notebook是基於Web的交互式Python解釋器,非常適合構建、調整和發布任何使用Python腳本的東西。它被附加到一個功能完整的Python內核(將其設置為Python 3.x),並且可以像其他解釋器一樣加載和運行庫及腳本。要安裝Jupyter Notebook,請參考官方文檔:

http://jupyter.readthedocs.io/en/latest/install.html

安裝方式多種多樣,包括使用「pip3」命令,如果這種方法不適合你,則請查看官方文檔,了解不同的方法(代碼清單1)。

sudo pip3 install jupyter

Jupyter Notebook使用起來既簡單又強大。你只需將它下載到本地計算機(它是帶有* .ipynb擴展名的文件),打開命令/終端Shell窗口,導航到該文件夾,然後運行「notebook」命令(代碼清單2)。

此命令將打開一個網頁,顯示它從中啟動的文件夾的內容(圖3)。你可以通過單擊文件列表正上方的文件夾圖標向下導航文件夾結構。

▲圖3 Jupyter Notebook登錄頁面

要打開Jupyter Notebook,只需單擊任何帶有「 * .ipynb」擴展名的文件。如果要創建全新Notebook,請單擊緊接刷新按鈕的儀錶板右側的「New」按鈕。

【提示】有關其他信息、Jupyter Notebook問題以及附加內核的信息,請參閱:

http://jupyter-notebook-beginner-guide.readthedocs. io/en/latest/execute.html

02 Flask

Flask是一個輕量級但非常強大的伺服器端Web框架。它是應用程式背後的「大腦」,也是Python數據生成函數和網頁之間的黏合劑。我喜歡使用Flask的原因之一是,它允許我們在不離開Python語言的情況下將獨立的Python腳本連結到伺服器端Web框架,使得在對象之間傳遞數據更加容易!

Flask附帶了發布網頁的最低要求。如果你需要其他支持,例如資料庫、表單控制項等,則必須安裝其他庫,這就是它被稱為輕量級微框架的原因。這也是它易於使用的原因,因為你只需學習一些技巧,其他一切都可使用熟悉的經過驗證的Python庫。

遺憾的是,我們只能使用Python至此,最終你需要進入前端Web腳本。但是不要有困擾—網際網路上有很多很棒的例子(Stackoverflow.com、w3schools.com)和令人難以置信的GetBootstrap.com模板,可以讓你儘快到達目的地。

【提示】有關Flask的更多信息,請參閱官方Flask文檔。

http://flask.pocoo.org/

03 HTML

HTML(超文本標記語言)是網絡技術方面最基本的東西之一。它已存在多年,用於創建幾乎所有的網頁和Web應用程式。

對於那些想要了解這一主題的人來說,網上的免費資料浩如煙海。要了解HTML,推薦w3schools.com網站,這個網站的學習材料組織良好、全面,而且通常是交互式的。

04 CSS

CSS(Cascading Style Sheet,層疊樣式表)使大多數網站看起來很棒!我們在這裡使用兩種類型的CSS文件:大多數網頁(最常見)的「<HEAD>」部分中加載的CSS連結和代碼清單3中顯示的自定義CSS。

<STYLE>
.btn-circle.btn-xl {
     width: 70px;
     height: 70px;
     padding: 10px 2px;
     border-radius: 35px;
     font-size: 17px;
     line-height: 1.33;
}
</STYLE>

託管在外部伺服器上的CSS文件無法自定義,但通常是同類最佳的。有時你只需要在頁面上自定義功能,即在HTML頁面中直接創建本地CSS文件或樣式標籤,然後使用「class」參數將其應用於特定標籤或區域(代碼清單4)。

<button type="button" onclick="calculateBikeDemand(this)"  
id="season_spring" class="btn btn-info btn-circle btn-xl"> 
<i class="fa fa-check">Spring</i></button>

CSS非常詳細地定義了所有的尺寸、顏色、字體。它還允許你創建所見即所感的Web門戶。只需創建一次,即可讓所有頁面調用它來繼承該特定樣式。

【提示】有關CSS的其他信息,請訪問:

w3schools.com

05 Jinja2

Jinja2用於生成標記和HTML代碼,並與Flask變量緊密配合。它由Armin Ronacher創建,廣泛用於處理Flask生成的數據以及直接在HTML模板中的if/then邏輯。

在此HTML模板示例中,使用Jinja2將名為「previous_slider_ value」的Flask生成的值注入滑塊的「value」參數。注意使用雙花括號(代碼清單5)。

<input type="range" min="1" max="100" value="{{previous_slider_value}}" 
id="my_slider">

【提示】有關Jinja2的其他信息,請參閱:

http://jinja.pocoo.org/docs/2.10/

06 JavaScript

JavaScript本身就是一種真正的程式語言,它可以為你的任何前端控制項添加極其強大的行為。JavaScript為網頁帶來了很高的交互性。

這是一個有趣的示例,我們捕獲HTML滑塊控制項的滑鼠按鈕鬆開(mouse-up)事件,以將表單提交到Flask伺服器。這個想法是,每當用戶更改滑塊值時,Flask需要使用新的滑塊值進行一些伺服器端處理並重新生成網頁(代碼清單6)。

slider1.onmouseup = function () 
{
    document.getElementById("submit_params").submit(); 
}

【提示】有關JavaScript的其他信息,請訪問:

w3schools.com

07 jQuery

jQuery是一個定製的JavaScript庫,可以幫助處理複雜的前端和行為事件,並確保不同瀏覽器版本之間的兼容性。

jQuery幫助優化按鈕、下拉動態行為,甚至Ajax交互(許多項目中大量使用的關鍵技術)。

【提示】有關jQuery的更多信息,請查看jQuery.com上的官方文檔。

08 Ajax

Ajax是一種出色的前端腳本技術,可以為網頁添加動態伺服器端行為。它允許發送和接收數據,而無須像表單提交那樣重建或重新加載整個頁面。一個常用領域是地圖網頁,例如Google地圖,它允許拖動和滑動地圖,而無須在每次移動後重新加載整個頁面。

【提示】有關Ajax的其他信息,請訪問w3schools.com。

09 Bootstrap

Bootstrap是一個非常強大、近乎神奇的前端Web工具。根據BuiltWith Trends的說法,它幾乎佔據了Web的13%。它包含大多數Web標籤和控制項的各種外觀及行為。通過簡單地將你的網頁連結到最新的Bootstrap,CSS將為任何無聊的HTML頁面提供即時和專業的改造!

如果你查看HTML文件,那麼首先要注意的是頁面頂部的LINK和SCRIPT標籤中包含的連結。這是構建網頁的最佳捷徑(代碼清單7)。

<LINK rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/ 
ootstrap/4.0.0/css/bootstrap.min.css">

HTML文件(更可能是你將來要創建的任何網頁)都將使用這些連結來下載預製的Bootstrap和JavaScript腳本,並自動繼承流行的字體、顏色、樣式和行為。通過網際網路,你可輕鬆且快速地獲得最佳外觀和行為。

【提示】有關Bootstrap的其他信息,請查看GetBootstrap.com上的官方文檔。

10 Web插件

Web插件(plugin)具有巨大的優勢:將大量硬體、數據和安全管理推送給專門從事該領域的人。沒有理由重新發明輪子,浪費寶貴時間或引入安全風險。讓其他人顧好這一點,而你專注於最擅長的事情。

遺憾的是,我們只能探索其中一部分,這裡列出了我過去用過的好東西或者從別人那裡聽來的好東西(還有成千上萬可能同樣好的東西—尋找那些為小型企業提供良好支持的人,在成交之前他們往往會提供演示和測試帳戶)。

11 會員平臺

有幾個平臺可用。

1. Memberful

www.memberful.com

我個人非常喜歡Memberful.com,並認為對於任何想要輕鬆管理網站付費功能的人來說,它是一個很好的選擇。它通過Stripe.com提供信用卡支付,以及用戶管理功能,並緊密集成在你自己的Web應用程式中。

2. Patreon

www.patreon.com

Patreon是藝術家和內容創作者的會員平臺與插件。

3. Wild Apricot

www.wildapricot.com

Wild Apricot是小型和非營利組織的會員平臺。

4. Subhub

www.subhub.com

Subhub是一個為企業家、專家和組織設計的會員平臺。

5. Membergate

www.membergate.com

Membergate是企業通信、新聞通訊、協會和受限訪問站點的平臺。

12 付款平臺

有幾個平臺可用。

1. Paypal Donations

www.paypal.com/us/webapps/mpp/donation

我過去使用過Paypal插件,它易於安裝和使用。你所需要的只是一個信譽良好的Paypal帳戶,剩下的事情都很簡單。

2. Paypal Express

www.paypal.com/us/webapps/mpp/express-checkout

Paypal Express仍然屬於Paypal,能快速簡便地結帳。

3. Stripe

http://stripe.com/

Stripe是一種付款選項,可讓網站輕鬆接受在線信用卡付款。它是Memberful.com背後的支付引擎。

13 分析

構建自己的Web使用跟蹤器需要在每個頁面上添加大量的Flask自定義代碼,以及用於保存這些交互的資料庫和用於理解它的分析引擎。這個工作量很大!相反,使用Google Analytics,我們所要做的只是在每個頁面頂部添加JavaScript代碼段。基本分析可以免費使用,這對我們非常有利。

14 留言板

我過去曾使用https://disqus.com向靜態網站添加留言板。它直接在你的網站上創建具有專業外觀的留言板,同時在其他地方進行管理。

15 郵件列表

我已經使用formspree.io很多年了,我很喜歡它!可以很容易地將它添加到任何靜態網頁、文本框和提交按鈕。用戶可以在你的網頁上添加他們的電子郵件地址,https://formspress.io將通過電子郵件向你發送已提交的信息。如果你正在託管靜態站點或者不想自己管理資料庫,那麼這是一個很好的選擇。

16 Git

Git是一個很棒的版本控制工具,它能保存存儲庫中發生的任何代碼創建、更改、更新以及刪除。它與GitHub緊密集成,這對於代碼保護和協作來說至關重要。它也集成在大多數雲提供商那裡。如果你需要處理大型應用程式或與他人協作,那麼強烈建議你使用它。

大多數雲提供商都支持GitHub、BitBucket等在線代碼庫。這些在線代碼庫利用Git,因此學習基礎知識將對你很有幫助。在Microsoft Azure上部署Web應用程式的過程與Git緊密集成,因此有必要學一些入門知識或在線獲取一些很棒的教程,例如try.github.io:

git init:創建本地存儲庫。

git clone https://github.com/...:將GitHub存儲庫克隆到本地驅動器。

git status:列出已更改並等待提交(commit)和推送(push)至存儲庫的文件。

git add.:添加所有文件(注釋期間)。

git add '*.txt':添加所有文本文件。

git commit:提交等待中的文件。

git log:查看提交歷史記錄。

git push(或git push azure master):將分支推送到遠程主站。

git pull:將遠程更改拉取到本地倉庫。

git reset *:撤銷git。

gitrm --cached <file>:停止跟蹤文件。

17 虛擬環境

使用虛擬環境能帶來許多優勢:

要啟動虛擬環境,請使用「venv」命令。如果你的計算機上沒有安裝它,建議安裝一下(可以通過常見的安裝程序,如pip、conda、brew等)。有關為作業系統安裝虛擬環境的更多信息,請參閱「venv-Greation of virtual environments」用戶指南:

https://docs.python. org/3/library/venv.html

打開命令窗口並在命令行上調用Python 3「venv」函數以創建沙箱環境(代碼清單8和代碼清單9)。

$ python3 -m venv some_name

$ source some_name/bin/activate

完成後,可以使用代碼清單10中的命令停用虛擬環境。

18 創建requirements.txt文件

大多數雲提供商使用requirements.txt文件列出託管Web應用程式所需的所有Python庫。在大多數情況下,它與Web文件一起打包並發送到其「無伺服器計算」雲上進行設置。

你可以創建自己的requirements.txt文件,並將其放在與Flask Python主腳本相同的文件夾中。讓我們看看如何使用虛擬環境創建一個完整的requirements.txt文件。

使用虛擬環境時,你將創建一個不含任何Python庫的安全沙箱。這允許你僅安裝所需內容並運行「pip freeze」命令以獲取庫和當前版本號的快照。請注意,如果你已經知道需要哪些庫、依賴項和版本號,則不需要執行此操作。

【第1步】在Python中創建虛擬環境,以從乾淨的平臺開始,如代碼清單11所示。

$ python3 -m venv some_env_name
$ source some_env_name/bin/activate 

【第2步】使用「pip3」安裝運行本地Web應用程式所需的庫,如代碼清單12所示。

$ pip3 install flask
$ pip3 install pandas
$ pip3 install sklearn

【第3步】凍結環境及所有已安裝的Python庫,包括requirements.txt文件中的版本號,如代碼清單13所示。

$ pip3 freeze > requirements.txt

【第4步】停用虛擬環境,如代碼清單14所示。

通過上面這些步驟,創建了一個requirements.txt文件。使用「vi」查看其內容(按下ESC和Q鍵退出)。requirements.txt的內容可能看起來非常不同,但這沒關係(代碼清單15)。

輸入:

輸出:

click==6.7
Flask==0.12.2
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
numpy==1.14.2
scikit-learn
scipy
python-dateutil==2.7.2
pytz==2018.4
six==1.11.0
Werkzeug==0.14.1
Pillow>=1.0
matplotlib 
gunicorn>=19.7.1
wtforms>=2.1

在requirements.txt文件中,可以使用「==」符號來要求特定版本(代碼清單16)。

還可以要求大於等於或小於等於某版本(代碼清單17)。

或者可以簡單地指定為安裝程序可以找到的最新版本(代碼清單18)。

相關焦點

  • 18段代碼帶你玩轉18個機器學習必備交互工具
    09 BootstrapBootstrap是一個非常強大、近乎神奇的前端Web工具。根據BuiltWith Trends的說法,它幾乎佔據了Web的13%。它包含大多數Web標籤和控制項的各種外觀及行為。通過簡單地將你的網頁連結到最新的Bootstrap,CSS將為任何無聊的HTML頁面提供即時和專業的改造!
  • 95後哈佛小哥撰寫《從零開始的機器學習》,入門必備,書籍資源已開放
    書中的每一章都對應一種機器學習方法。作者 Danny Friedman 介紹說,學習一種方法的最佳方式就是從零開始(無論是從理論上還是代碼上),因此本書的宗旨也是提供這些推導過程。每章分為三個部分:首先是從「概念」上進行介紹,並且從數學層面演示推導過程;然後是「構造」部分,如何使用 Python 從零開始演示這些方法;最後的「實現」部分介紹了如何使用 Python 包應用這些方法,比如 scikit-learn、 statsmodels 和 tensorflow。這本書面向的是機器學習領域的新人,或者是希望深入了解算法的學習者。
  • 單片機實用工具大全,超級贊,工程師必備!
    今天,電子發燒友小編要給各位大佬介紹幾款非常實用的單片機小工具,涉及調試、計算、設計、自動代碼生成等。第1款:555定時器自動計算工具,想要什麼頻率,想要什麼佔空比,輸入要求,點一下開始計算,然後結果就出來了!!!
  • 18個PPT,29個提問解答,都在這兒啦!
    演講 | 微博基於 Flink 的機器學習實踐於茜,微博機器學習研發中心高級算法工程師。多年來致力於使用 Flink 構建實時數據處理和在線機器學習框架,有豐富的社交媒體應用推薦系統的開發經驗。曹富強,微博機器學習研發中心系統工程師。現負責微博機器學習平臺數據計算模塊。
  • 金庸群俠傳5門派RPGVX修改工具代碼一覽
    國產新作《金庸群俠傳5》中有不少門派可供玩家選擇,不過有玩家在遊戲中使用了RPGVX修改工具,但是不知道各門派的代碼是多少,下面小編就為大家整理出金庸群俠傳5門派代碼一覽表,一起來看看吧。金庸群俠傳5門派代碼一覽:  用RPGVX修改工具門派在(變量) 922可改0 江湖  1 華山(氣)  2 武當  3 少林
  • 全民開發大時代,低代碼與零代碼工具的這些特徵,你了解嗎?
    如果你一直關注2020年的技術工具領域動態,你會發現關於低代碼的討論不絕於耳。據Forrester預測,到2022年,關於低代碼類的支出將超過200億美元。    也許你在好奇,是什麼驅動了我們這一代的低代碼和零代碼的大火?
  • 網際網路創業必備工具盤點
    Axure :產品原型設計工具,如果產品經理對產品原型、交互演示、原型細節設計等的需求比較強烈,Axure RP是非常不錯的選擇。Axure RP 能讓產品經理快速創建應用軟體和基於Web的的線框圖、流程圖、原型頁面、交互頁面和規格說明文檔。 Pencil :免費的手繪風格原型圖設計工具,可以用來繪製各種架構圖和流程圖。
  • 第一部分:網頁設計師應該如何學習編程代碼?
    設計師是否應該要學習編程代碼?可以根據當前工作需求與未來發展方向而定,在我成為軟體工程師之前也是一名網頁設計師,這也是大多女性近身網際網路開始的方向,雖然一開始很不情願,過度是痛苦的,結果卻是滿意的成就感。
  • 網紅做自媒體必備的18個文案素材網站
    今天給老友們提高我們一直在用的18個文案素材網站,希望對你有所幫助。建議收藏。1、TOPYS | 全球頂尖創意分享平臺TOPYS:https://www.topys.cn/頂尖創意文案分享,大咖雲集的地方,你不可或缺。
  • 7.18-9.19,麗水冒險島水世界帶你玩轉國潮電音派對
    7.18-9.19,麗水冒險島水世界帶你玩轉國潮電音派對 2020-07-16 16:36 來源:澎湃新聞·澎湃號·媒體
  • 最好的Python機器學習庫
    然而有些人更多的是把它描述成一個研究工具,而不是當作產品來使用,因此要按需使用。Theano最好的功能之一是擁有優秀的參考文檔和大量的教程。事實上,多虧了此庫的流行程度,使你在尋找資源的時候不會遇到太多的麻煩,比如如何得到你的模型以及運行等。
  • 亞馬遜雲服務(AWS) 為機器學習擴圈 觸及每一位AI工作者
    當年只發布了三個服務,2017年開始加速,最近三年,每年新增的服務和功能超過200個,為全球人工智慧工作者豐富了他們急需的工具集。」打造包羅萬象的工具箱,賦能每一位AI工作者擴圈舉措之二,是打造全面豐富的工具集,用顧凡的話說, right tool for the right job(為每一項工作都提供一個趁手的工具)。AWS提供的機器學習工具集包括三個層面。工具集的底層,面向那些技術能力超強的客戶,希望將人工智慧和機器學習作為自己的核心競爭力。
  • 圖機器學習有多大神力?一文帶你回顧2020,展望2021
    【新智元導讀】近兩年,圖機器學習可謂是機器學習研究領域的新星,隨著模型的更新和應用的推廣,越來越多的人開始把注意力轉向了這一方向。過去一年中,圖機器學習在哪方面有突破呢,在未來的一年中,哪些分支和方向會成為新的研究趨勢呢?這篇文章,帶你領略該領域諸多名人的最新思考。2020年,圖機器學習成為了機器學習領域中炙手可熱的」明星「。
  • 浪費在Excel上的時間:如何開始專家式機器學習實驗追蹤?
    本文首先將介紹追蹤實驗的重要性,然後將概述MLFlow如何讓生活變得簡單,最後通過一個常見的代碼示例來解釋如何自己進行整合。在此之後,保證你可以像個專家一樣整合機器學習流(ML flow)和優化工作流!為什麼要追蹤實驗不論你是老手還是新手,都不可能一次性開發出性能最好的模型。最佳性能模型的關鍵是對手頭業務的指標優化進行迭代。
  • 對象存儲適合AI和機器學習的三個原因!
    這三個主要的原因表明了為什麼對象存儲(而不是文件存儲或塊存儲)特別適合AI和機器學習工作負載:1. 可擴展性——有龐大且多樣的數據源可供學習時,AI和機器學習最有效。數據科學家利用這些豐富的數據來訓練領域模型。在「大數據的五個V」(容量、種類、速度、準確性和價值)中,前兩個(容量和種類)最重要。
  • 亞馬遜Comprehend為機器學習工具添加自定義語言列表
    今天,亞馬遜宣布了對「Comprehend」的升級,允許開發人員在沒有機器學習領域知識的情況下構建專業單詞和短語列表。「通過少至50個示例,Comprehend將自動訓練可用於對所有文檔進行分類的自定義分類模型。您可以按部門分組支持電子郵件,按產品分組社交媒體帖子,或按業務部門分組分析報告,「Wood寫道。您可以看到這些項在提取和分類後如何使用這些項有用,並將它們通過工作流移動到適當的人員或由應用程式以編程方式進一步使用。  亞馬遜提供了一種構建定製機器學習模型的方法,同時它負責處理幕後細節。
  • 推薦 25個HTML5製作工具合集,終於可以自己做HTML5頁面了!
    以下為大家推薦25個HTML5製作工具,前15個免費HTML5製作工具是編程小白也能使用的微網頁、微畫報或場景應用的製作工具。後10個向設計師推薦十款優秀 HTML5 在線工具,這些工具能夠幫助設計師們設計出更有創意的作品。排名不分先後,功能大同小異,可按照自身需求挑選。
  • 澳大利亞推出機器學習工具Critterpedia
    這是一個機器學習工具,旨在自動識別不同種類的蜘蛛和蛇。 像Critterpedia這樣由人工智慧驅動的算法需要數十萬張圖片才能成為準確的評估,因此CSIRO和Data 61希望能讓儘可能多的人下載Critterpedia,並上傳他們可能在野外看到的蜘蛛和蛇的圖片。「這兩個物種之間的視覺差異可能相當微妙。
  • 2021年IT領導者對人工智慧和機器學習未來發展的期望
    新的AutoML2.0平臺可幫助人工智慧/機器學習開發流程實現自動化,從而使組織能夠構建更快、更有用的模型。 無代碼人工智慧的演變:從拖放式可視化編程工具到真正的無代碼全周期人工智慧自動化。隨著對其他人工智慧應用程式需求的增長,組織將需要投資有助於其加速和民主化數據的技術科學過程。這產生了一些所謂的無代碼人工智慧。