使用 Azure 机器学习服务执行您使用 Python 建立好的智能模型
Azure 机器学习服务(以下简称 Azure ML) 是 Microsoft 所推出的一个云端服务,它让您能够使用易于操作的图形化接口,进行数据整理以及机器学习的运算,您可以在这个服务上从 0 开始,搭配这服务上不断推出的各种学习算法,建立一个完整的学习模型,并且将学习后的智能模型变成 Web 服务,便能透过 Web API 的方式结合,为您的应用程序加入智能。
当然一开始您一定要有一个 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])
发布至 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中的设定里找到它们:
执行成功后,您就可以呼叫 predictIris.service(3,2,3,4) 这样来测试是不是能正常运作,这个呼叫就是在 Azure ML 上执行完才回传结果。 而要取得发布到 Azure ML 的 Web 服务的信息,就直接把
- predictIris.service.help_url
- predictIris.service.url
- predictIris.service.api_key
来自:http://weibo.com/p/1001603879782097025373