使用 Azure 機器學習服務執行您使用 Python 建立好的智能模型

jopen 9年前發布 | 19K 次閱讀 機器學習

        Azure  機器學習服務(以下簡稱   Azure ML) 是 Microsoft 所推出的一個云端服務,它讓您能夠使用易于操作的圖形化接口,進行數據整理以及機器學習的運算,您可以在這個服務上從 0 開始,搭配這服務上不斷推出的各種學習算法,建立一個完整的學習模型,并且將學習后的智能模型變成 Web 服務,便能透過 Web API 的方式結合,為您的應用程序加入智能。


        
使用 Azure 機器學習服務執行您使用 Python 建立好的智能模型

        如 同其它的 Azure 服務一樣,Azure ML 也提供了可以操作它的 REST API,而 Azure 團隊也開發了一個 Python 的 Azure ML 客戶端函式庫(https://github.com/Azure/Azure-MachineLearning-ClientLibrary- Python),讓使用 Python 的開發人員或數據科學家便能輕易與 Azure ML 的各種服務結合。這篇文章介紹如何將您自己 Python 程序建立好的智能模式,讓它透過 Azure ML 來提供服務。 

         建立模型

        當然一開始您一定要有一個 Azure ML 的 workspace:

  • 若您已經有 Azure 訂閱(沒有的話也可以免費注冊一個。注冊地址:https://azure.microsoft.com/zh-cn/pricing/free-trial/),直接在管理后臺建立一個機器學習的工作區(workspace)。
  • 若 您尚未有 Azure 訂閱,也可以到 Azure ML Studio (https://studio.azureml.net/)中,用 Microsoft 賬號免費登入使用,這與已經有 Azure 訂閱的正式賬號比起來只是有一些計算時間及效能上的差異而已。

        然后在你的 Python 項目中安裝 azureml 這個套件,這個只需要直接使用像是 pipinstall azureml 這樣的指令便能完成安裝。

        以 下是一個范例程序,它是使用 Anaconda 提供的 Python 2.7(http://continuum.io/downloads) 版本所撰寫,這個 Python 中含有一些數據分析常用的模塊(如:numpy, scikit-learn 等):

#Build the model

from sklearn import svm

from sklearn import datasets

clf = svm.SVC()

iris = datasets.load_iris()

X, y = iris.data, iris.target

clf.fit(X, y)

 

#Predict using sample

sample = [7,3.2,4.7,1.4]

result = clf.predict(sample)

 

#Check the result

print(result[0])

        上面這段程序使用了 SVM (Support VectorMachine) 并搭配安德森鳶尾花卉數據集來做機器學習,所以建好的模型(clf)便能拿來分類(clf.predict)鳶尾花的種類。 

發布至 Azure ML

        透過上面這段程序代碼已經建立好一個能分類鳶尾花的智能模型,接下來我們只要使用 azureml 模塊提供的發布服務相關的函式就能把這個學習好的模型放上 Azure ML:

#Publish as a web service

from azureml import services

 @services . publish ( 'Azure ML工作區ID' ,  'AzureML工作區的授權碼' )

@services . types ( sep_l =  float , sep_w =  float, pet_l = float , pet_w = float )

@services . returns ( int )  #0, or 1, or 2

def predictIris ( sep_l , sep_w , pet_l , pet_w ):

  inputArray =  [ sep_l , sep_w , pet_l , pet_w ]

  return clf . predict ( inputArray )

        首先您必須先找到您 Azure ML 工作區的 ID 以及授權碼,只要您建立好 Azure ML 工作區,就可以在 Azure ML Studio中的設定里找到它們:

使用 Azure 機器學習服務執行您使用 Python 建立好的智能模型


        執行成功后,您就可以呼叫 predictIris.service(3,2,3,4) 這樣來測試是不是能正常運作,這個呼叫就是在 Azure ML 上執行完才回傳結果。 而要取得發布到 Azure ML 的 Web 服務的信息,就直接把

  • predictIris.service.help_url
  • predictIris.service.url
  • predictIris.service.api_key
        這 三個變量印出來看,第一個是說明文件的 URL,而第二個是要對這個智能模型進行 HTTP POST 呼叫端點的 URL,第三個就是呼叫 API 時需要帶入的授權密鑰。這樣一來就能在其它平臺發出 HTTP POST 的呼叫,運用到這個已經放在 Azure ML 上的智能模型了。

來自:http://weibo.com/p/1001603879782097025373
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!