直接使用
请打开 PAI-DSW快速入门,并点击右上角 “ 在DSW中打开” 。
PAI-DSW 快速入门
阿里云机器学习PAI(Platform of Artificial Intelligence) 是集数据管理,模型管理,开发,训练,部署为一体的机器学习平台,并为企业级算法团队和数据科学团队提供了一站式开箱即用的机器学习平台解决方案。主要包括:
- 可视化建模和分布式训练 PAI-Designer
- Notebook交互式AI研发 PAI-DSW(Data Science Workshop)
- 云原生AI基础平台 PAI-DLC(Deep Learning Containers)
- 在线预测服务 PAI-EAS(Elastic Algorithm Service)
其中,PAI-DSW是一款在阿里巴巴集团内上百个团队的打磨之下,为数据科学团队和算法团队们量身定制的云端机器学习交互式开发IDE,使读取数据、开发、训练及部署模型更简单高效且安全。
PAI-DSW集成了Jupyterlab、Code-Server等多种开源项目,并从网络与数据上打通了ODPS多种数据源,方便用户在构建模型的时候免去重新构建数据管道的工作。同时支持将开发环境直接保存为容器镜像并发起离线训练任务,为人工智能数字化转型添砖加瓦。
使用准备
为方便企业级客户和团队使用,PAI设计了AI工作空间 的概念,为团队提供统一的计算资源管理及人员权限管理能力,为AI开发者提供支持团队协作的全流程开发工具及AI资产管理能力。因此在使用上述PAI的功能之前,您需要
使用DSW训练第一个线性回归模型
以下,我们将使用PAI-DSW训练一个简单的线性回归模型,帮助您对产品的基础使用有所了解。
步骤一:安装依赖
如下示范了如何利用Jupyter的快速安装此案例中需要的依赖。
!pip install pandas
Requirement already satisfied: pandas in /Users/yuze/anaconda3/lib/python3.7/site-packages (1.0.1) Requirement already satisfied: numpy>=1.13.3 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from pandas) (1.18.1) Requirement already satisfied: python-dateutil>=2.6.1 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from pandas) (2.8.2) Requirement already satisfied: pytz>=2017.2 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from pandas) (2022.1) Requirement already satisfied: six>=1.5 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from python-dateutil>=2.6.1->pandas) (1.16.0)
!pip install scikit-learn
Requirement already satisfied: scikit-learn in /Users/yuze/anaconda3/lib/python3.7/site-packages (0.23.2) Requirement already satisfied: joblib>=0.11 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from scikit-learn) (0.14.1) Requirement already satisfied: scipy>=0.19.1 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from scikit-learn) (1.4.1) Requirement already satisfied: threadpoolctl>=2.0.0 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from scikit-learn) (2.1.0) Requirement already satisfied: numpy>=1.13.3 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from scikit-learn) (1.18.1)
!pip install matplotlib
Requirement already satisfied: matplotlib in /Users/yuze/anaconda3/lib/python3.7/site-packages (3.1.3) Requirement already satisfied: kiwisolver>=1.0.1 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from matplotlib) (1.1.0) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from matplotlib) (2.4.6) Requirement already satisfied: cycler>=0.10 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from matplotlib) (0.10.0) Requirement already satisfied: python-dateutil>=2.1 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from matplotlib) (2.8.2) Requirement already satisfied: numpy>=1.11 in /Users/yuze/anaconda3/lib/python3.7/site-packages (from matplotlib) (1.18.1) Requirement already satisfied: setuptools in /Users/yuze/anaconda3/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib) (45.2.0.post20200210) Requirement already satisfied: six in /Users/yuze/anaconda3/lib/python3.7/site-packages (from cycler>=0.10->matplotlib) (1.16.0)
步骤二:引入依赖
import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn import datasets, linear_model from sklearn.metrics import mean_squared_error, r2_score
# 使展示的图可以直接在Notebook内显示 %matplotlib inline
步骤三:加载数据,构建模型和训练
from sklearn.datasets import load_diabetes data = load_diabetes(as_frame=True)
df = pd.concat([pd.DataFrame(data['data']), pd.DataFrame(data['target'])],axis=1)
# 观察数据格式 df.head()
age | sex | bmi | bp | s1 | s2 | s3 | s4 | s5 | s6 | target | |
0 | 0.038076 | 0.050680 | 0.061696 | 0.021872 | -0.044223 | -0.034821 | -0.043401 | -0.002592 | 0.019908 | -0.017646 | 151.0 |
1 | -0.001882 | -0.044642 | -0.051474 | -0.026328 | -0.008449 | -0.019163 | 0.074412 | -0.039493 | -0.068330 | -0.092204 | 75.0 |
2 | 0.085299 | 0.050680 | 0.044451 | -0.005671 | -0.045599 | -0.034194 | -0.032356 | -0.002592 | 0.002864 | -0.025930 | 141.0 |
3 | -0.089063 | -0.044642 | -0.011595 | -0.036656 | 0.012191 | 0.024991 | -0.036038 | 0.034309 | 0.022692 | -0.009362 | 206.0 |
4 | 0.005383 | -0.044642 | -0.036385 | 0.021872 | 0.003935 | 0.015596 | 0.008142 | -0.002592 | -0.031991 | -0.046641 | 135.0 |
# 构造训练与测试集,如我们假设BMI指数和糖尿病指数相关,并通过线性回归模型来找出关系 diabetes_X = np.array([df['bmi']]).transpose() diabetes_y = np.array([df['target']]).transpose()
# 构造训练与测试数据 diabetes_X_train = diabetes_X[:-20] diabetes_X_test = diabetes_X[-20:] diabetes_y_train = diabetes_y[:-20] diabetes_y_test = diabetes_y[-20:] # 构造模型并训练 regr = linear_model.LinearRegression() regr.fit(diabetes_X_train, diabetes_y_train) # 预测 diabetes_y_pred = regr.predict(diabetes_X_test) # 输出对应指标 print("相关度: ", regr.coef_) print("Mean squared error: %.2f" % mean_squared_error(diabetes_y_test, diabetes_y_pred)) print("Coefficient of determination: %.2f" % r2_score(diabetes_y_test, diabetes_y_pred)) # 可视化训练结果 plt.scatter(diabetes_X_test, diabetes_y_test, color="black") plt.plot(diabetes_X_test, diabetes_y_pred, color="blue", linewidth=3) plt.xticks(()) plt.yticks(()) plt.show()
相关度: [[938.23786125]] Mean squared error: 2548.07 Coefficient of determination: 0.47
这样就完成了一个简单的机器学习模型的训练。关于更多示例内容您可以前往 DSW Gallery 或者直接参考以下章节的内容
数据集管理与使用
- 数据挂载(OSS, NAS) 本文简述如何将管理DSW的数据,包括(NAS, OSS)等数据挂载。
云原生AI基础平台DLC使用相关
- DLC任务提交 本文简述如何通过DSW进行DLC任务的提交与生命周期管理。
在线推理服务EAS使用相关
- EAS模型部署与调用 本文简述如何通过DSW进行EAS模型推理服务的创建,生命周期管理和调用。
企业和团队使用
- 企业和团队如何使用PAI-DSW协作开发 本文简述如何在AI工作空间中协调使用DSW进行多人协作。
- 实例管理 本文简述如何在团队中合理设置实例回收策略以降低消耗。
- DSW镜像使用入门 本文简述如何在团队中通过DSW结合镜像来管理环境。
- 网络打通 本文简述如何在团队中通过DSW结合网络VPC设置来管理环境。
数据科学场景开发案例
- 房价预测 数据分析经典案例:Kaggle竞赛之房价预测
- 使用Numpy实现卷积神经网络 本文以CNN为例子,使用Numpy来实现CNN网络的前向传递和反向传递逻辑。
- sklearn KNN快速入门本文以KNN模型为例子,介绍了如何使用sklearn中的方法进行模型的训练
- xgboost使用示范 如何使用XGBoost解决回归问题
深度学习场景开发案例
- 利用Tensorflow Mnist 实现自编码器 使用Tensorflow来构建AutoEncoder
- 基于残差网络的图像分类示例 本文以图像分类为例,为您介绍如何在PAI-DSW中使用EasyCV来完成基于残差网络的图像分类
- 使用EasyNLP进行文本分类 本文以文本分类为例,为您介绍如何在PAI-DSW中使用EasyNLP。
- Hugging Face 入门 本文介绍如何在DSW中使用Hugging Face Python SDK完成基本的任务