Hands-on ml2 - 第二章笔记

2 篇文章 0 订阅

主要步骤

  • 界定问题并从着眼于全局
  • 获取数据
  • 通过发现并可视化数据来得到见解
  • 为机器学习算法准备数据
  • 选择多种候选模型并训练,进而选择表现最佳的系统
  • 优化模型
  • 展示结果
  • 启动、监控并维护学习系统

0、处理真实数据

以下是一些提供开放数据集的网站:

1、界定问题并从着眼于全局

  • 用商业术语定义目标
  • 您的解决方案将如何使用?
  • 目前的解决方案/变通方法
  • 如何界定问题?
  • 如何定量评估模型的表现:均方根差法(Root Mean Square Error (RMSE)),数学公式如下:
    在这里插入图片描述
  • 其中 m 表示用于计算 RMSE 的数据集中的实例数;x(i) 表示数据集中第 i 个实例的全部特征值组成的向量,y(i) 表示第 i 个实例对应的标签(即想要的输出值);X 表示数据集中所有实例的所有特征值组成的矩阵,每一行都表示一个实例,第 i 行表示 x(i) 的转置,记作 (x(i))T ;h 表示系统的预测值,又叫做假设(hypothesis);RMSE(X, h) 表示在样例集上使用假设 h 的开销函数
  • 模型的性能是否与商业目标相一致?
  • 达到商业目标的最低性能要求是什么?
  • 可以进行类比的问题是什么?能否使用其经验或工具?
  • 人类的专业知识是否可用?
  • 您如何手动的解决这个问题?
  • 列出你或其他人迄今为止做出的假设?
  • 如果可能的话,对假设进行验证?

2、获取数据

  • 列出所需的数据及数据量
  • 寻找并记录您可以在哪里获取这些数据?
  • 检查它需要多少空间?
  • 检查法律义务,并在必要时获取授权
  • 获取访问授权
  • 创建工作区(具有足够的存储空间)
  • 获取数据
  • 将数据转换为易于处理的格式,但是不改变数据本身内容
  • 确保敏感性数据被删除或保护
  • 检查数据规模和类型
  • 从训练数据中采样一个测试集(通常是20%,如果数据量非常大,可以适当减小),把它放到一边,不要用它训练模型

问题:下载数据时报错:urlretrieve timeout[WinError 10060]
方案:下载数据之前先设置代理,如下:

# set proxy
proxy = urllib.request.ProxyHandler({"https":"http://your proxy IP:port"})
opener = urllib.request.build_opener(proxy)
urllib.request.install_opener(opener)

urllib.request.retrieve(housing_url, tgz_path)

3、探索数据

  • 创建用于探索的数据副本(如有必要,将其降低到可管理的规模)
  • 创建Jupyter笔记,对数据探索进行记录
  • 研究每个属性及其特征:名称、类型、缺失值的比例、噪声和噪声类型(随机、异常值、舍入错误等)、对任务的有用性、分布类型(高斯分布、均匀分布、对数分布等)
  • 对于监督学习任务,识别任务属性
  • 可视化数据
  • 研究数据之间的相关性
  • 研究如何手动解决问题
  • 识别您可能想应用的有望实现或完成任务的转换
  • 识别可能有用的额外数据
  • 记录你所学到的东西

4、准备数据

注意事项:
1、只处理数据副本,保证原始数据不变
2、为使用的所有数据转换编写函数,有以下原因:① 下一次可以很容易地处理新的数据;② 在未来的项目中也可以使用这些转换函数;③ 清洗数据并准备测试集;④ 在解决方案启动后,清洗并准备新的数据实例;⑤ 使得选择超参数变得容易

  • 数据清洗:① 修复或删除异常值(可选); ② 填充缺失值或删除这些记录
  • 特征选择(可选):删除对于任务没有作用的属性
  • 特征工程(设计制造):① 离散连续属性; ② 分解属性; ③ 如果对任务有帮助,则进行属性转换; ④ 如果对任务有帮助,将多个属性聚合成一种新属性
  • 特征缩放:标准化(standardize)或规范化(normalize)特征

5、列出合适的候选模型

注意事项:
1、如果数据很庞大,你可能想要采样较小的训练集,这样你可以在相对合适的时间训练多个不同的模型(这种方法不适用于复杂的模型,比如大型神经网络、随机森林,因为它们需要大规模数据的训练才能保证良好的表现)
2、尽可能将这些步骤自动化

  • 使用标准参数对快速而粗糙的模型(如线性回归、简单贝叶斯、(支持向量机)SVM、随机森林、神经网络)进行训练
  • 测试并比较它们的性能:对于每一种模型,通过N层交叉验证并计算性能测试的平均值和标准分布
  • 对每一种算法,分析最重要的那些变量
  • 分析每个模型产生的错误的类型:人类会使用哪些数据来避免这些错误?
  • 快速进行一轮特征选择和工程(设计制造)
  • 对前面的5个步骤进行一次或2次快速迭代
  • 把性能最好的2-5个模型列入候选,优先选择产生不同错误类型的模型

6、微调系统

注意事项:
1、这一步你可能希望使用尽可能多的数据,尤其是快到微调步骤的尾声时
2、尽可能将这些步骤自动化
3、不要在测试完泛化误差后微调系统

  • 使用交叉验证微调超参数:① 把你的数据转换选择作为超参数,尤其是当你不确定时(比如是否用0或平均值代替缺失值,还是丢弃这些数据);② 除非可选的超参数值很少,否则更推荐随机搜索而不是网格搜索。如果训练时间很长,更推荐贝叶斯优化算法
  • 尝试整体方法。将表现最好的模型组合使用的效果会比单独使用单独运行它们更好
  • 当你对最终的模型很有信心时,在测试集上测试以估计该算法的泛化错误

7、展示你的解决方案

  • 记录你所做的一切
  • 创建一个好的展示方案:确保优先突出显示全局
  • 解释为什么你的解决方案实现了目标
  • 不要忘记展示你在这个过程中发现的有趣的地方:① 描述哪些方法奏效,哪些不奏效 ② 列出你的假设以及系统的局限性
  • 确保你的发现通过优美的可视化或容易记住的描述来展示:

8、启用你的项目

  • 让您的解决方案为实际应用做好准备
  • 编写监控代码,以检查你的系统在一定时间内的实时性能,当其下降时做出预警:① 小心缓慢的退化;② 测试性能可能需要人力资源; ③ 也要监控输入数据的质量,对于在线学习尤其重要
  • 根据新数据,定期重新训练您的模型
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack是一个开源的云计算平台,它提供了一系列的服务,包括计算、存储、网络等,可以搭建私有云和公有云。Packstack是一个快速部署OpenStack的工具,它可以自动化安装和配置OpenStack。 以下是基于Packstack安装OpenStack-Train的步骤: 1. 确保你的服务器满足OpenStack-Train的最低要求,包括64位的Linux操作系统、至少4GB的RAM和50GB的硬盘空间等。 2. 更新操作系统:使用以下命令更新你的操作系统: ``` sudo yum update -y ``` 3. 安装Packstack:使用以下命令安装Packstack: ``` sudo yum install -y openstack-packstack ``` 4. 生成Packstack配置文件:使用以下命令生成Packstack配置文件: ``` sudo packstack --gen-answer-file=~/answers.txt ``` 这将在用户主目录下生成一个名为“answers.txt”的文件,其中包含Packstack的配置选项。 5. 修改配置选项:编辑“answers.txt”文件,修改以下配置选项: ``` CONFIG_CINDER_INSTALL=n CONFIG_SWIFT_INSTALL=n CONFIG_NEUTRON_ML2_TYPE_DRIVERS=vxlan,flat CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=extnet:br-ex CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth0 ``` 这些选项将禁用Cinder和Swift存储服务,启用VXLAN和Flat网络驱动程序,并配置外部网络接口。 6. 运行Packstack:使用以下命令运行Packstack并开始安装OpenStack: ``` sudo packstack --answer-file=~/answers.txt ``` 这将根据配置文件中的选项安装OpenStack-Train。 7. 验证安装:使用以下命令验证OpenStack服务是否正在运行: ``` sudo systemctl status openstack-* ``` 这将显示所有OpenStack服务的状态。如果所有服务都处于“active”状态,则OpenStack-Train已经成功安装。 以上就是基于Packstack安装OpenStack-Train的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值