宁波深度学习培训当日小结1

来了宁波参加一个深度学习的培训班,虽然大部分的内容其实是之前自学的时候都有了了解,但还是借此机会做个总结。

  • 传统机器学习
  • 深度学习简介
  • 环境设置

传统机器学习

在这个简单的机器学习介绍中, 我们从线性回归讲起,快速浏览机器学习中涉及的回归、分类、训练数据、测试数据、cost function、算法、模型、特征工程、优化方法、交叉验证、评价指标等等概念。

线性回归:(监督学习的例子)

数据:进货量预测场景, x:上周访客数, y:本周进货量
目标:预测本周进货量
x:特征-feature
y: 目标-target
过程:选择合适的特征, 对y的预测进行建模,验证模型的准确性
1. 模型
2. 算法

从sklearn导入数据分割器(train, test的概念)

from sklearn.cross_validation import train_test_splitimport numpy as npX = boston.data
y = boston.targetX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2017, test_size=0.25)# 构建回归目标值的差异
print("最大目标变量是:", np.max(boston.target))
print("最小目标变量是:", np.min(boston.target))
print("平均值是:", np.mean(boston.target))

logistic回归:(监督学习的例子)

logistics回顾:

数据:肿瘤预测场景, x:肿瘤的特征(大小,颜色,厚度等), y:良性/恶性
目标:良性/恶性

过程:选择合适的特征,对y的预测进行建模,验证模型的准确性
1. 模型
2. 算法

# 导入pandas与numpy工具包。
import pandas as pd
import numpy as np# 创建特征列表。
column_names = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape', 'Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']# 使用pandas.read_csv函数读取指定数据。
data = pd.read_csv('./raw_data/breast-cancer-wisconsin.data', names = column_names )# 将?替换为标准缺失值表示。
data = data.replace(to_replace='?', value=np.nan)
# 丢弃带有缺失值的数据(只要有一个维度有缺失)。
data = data.dropna(how='any')# 输出data的数据量和维度。
data.shape# 使用sklearn.cross_valiation里的train_test_split模块用于分割数据。
from sklearn.cross_validation import train_test_split# 随机采样25%的数据用于测试,剩下的75%用于构建训练集合。
X_train, X_test, y_train, y_test = train_test_split(data[column_names[1:10]], data[column_names[10]], test_size=0.25, random_state=33)# 查验训练样本的数量和类别分布。
y_train.value_counts()# 查验测试样本的数量和类别分布。
y_test.value_counts()# 从sklearn.preprocessing里导入StandardScaler。
from sklearn.preprocessing import StandardScaler
# 从sklearn.linear_model里导入LogisticRegression与SGDClassifier。
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import SGDClassifier# 标准化数据,保证每个维度的特征数据方差为1,均值为0
# 使得预测结果不会被某些维度过大的特征值而主导,影响速度和准确性
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)# 初始化LogisticRegression与SGDClassifier。
lr = LogisticRegression()
sgdc = SGDClassifier()# 调用LogisticRegression中的fit函数/模块用来训练模型参数。
lr.fit(X_train, y_train)
# 使用训练好的模型lr对X_test进行预测,结果储存在变量lr_y_predict中。
lr_y_predict = lr.predict(X_test)# 调用SGDClassifier中的fit函数/模块用来训练模型参数。
sgdc.fit(X_train, y_train)
# 使用训练好的模型sgdc对X_test进行预测,结果储存在变量sgdc_y_predict中。
sgdc_y_predict = sgdc.predict(X_test)# 从sklearn.metrics里导入classification_report模块。
from sklearn.metrics import classification_report# 使用logistic回归模型自带的评分函数score获得模型在测试集上的准确性结果。
print('Accuracy of LR Classifier:', lr.score(X_test, y_test))
# 利用classification_report模块获得LogisticRegression其他三个指标的结果。
print(classification_report(y_test, lr_y_predict, target_names=['Benign', 'Malignant']))

二分类任务

数据挖掘的分类问题:
二分类问题
多分类问题
多分类问题 —-> 二分类问题
二分类问题解决的大量算法, 相对简单,基本

多分类评价指标:
Logarithmic Loss metric(multi-class logarithmic loss)
logloss
https://www.kaggle.com/wiki/LogLoss
M:类别数
y_ij:当第i个样本为第j类时,y_ij = 1
p_ij:模型预测第i个样本为第j类的概率
二分类情况M=2: logloss2
y_i:第i个样本类别
p_i:模型预测的第i个样本为第1类的概率
Mean Consequential Error (MCE)(0-1损失)
mce
https://www.kaggle.com/wiki/MeanConsequentialError
更多分类指标:
0-1太武断,各个分类代价不同
ROC/AUC
PR曲线
MAP@n
F1 score
Model evaluation
http://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics
classmetric
regmetric
损失函数(loss function) vs. 评价指标(scoring)

机器学习建模流程

机器学习任务流程

问题定义
获取数据
数据预处理(清洗,处理)(a)
数据的分析,探索性分析,找出数据的pattern(b)
建模、预测、解决问题
可视化、形成报告、结论展示
形成最后的结果,比如产品或者预测的最终提交
注意点:以上步骤不是必须的,不是顺序
可以将几个步骤合并:比如将可视化和数据分析的步骤合并
可以将步骤的顺序调整:比如可以先进行分析,再对数据进行处理
同一步骤可重复多次:比如可视化的部分,建模的部分需要重复很多遍
可以丢掉一些步骤:比如问题的定义如果很清晰,比如最后的结果不是一个产品,这些步骤就都可以丢掉

我们分析过程中,需要带着类似问题前进:

  1. 我们的任务:比如分类
  2. 找出变量间的关联信息:

    2.1 单变量:变量对于y是不是有影响?某个变量的改变是不是会对y的结果有较大的影响?
    2.2 多变量:变量之间有不有关系?怎么样的关系?能不能基于原始变量产生新的变量?

  3. 缺失值的处理

  4. 异常值处理:数据中是不是有异常值?是去掉吗?还是进行处理

  5. 特征选择:有的特征如果对结论没有贡献,我们是不是可以丢弃它?

  6. 特征抽取(创建特征):是不是可以通过各种方法产生有用的新特征?

    6.1. 特征转换:比如文本、图像数据;比如对应于特定的模型、算法,是不是需要特定的数据类型

深度学习是什么

深度学习是近年来兴起的机器学习范式,… …深度学习利用多层神经网络结构,从大数据中学习 现实世界中各类事物能被用于计算机计算的表示形式(比如图像中的事物、音频中的声音等),被认为是智能机器可能的“大脑结构” ——《大数据智能》

既然是机器学习的分支,那么他和传统机器学习的区别在哪里呢?有何特点?
深度学习也曾被叫做features learning,或者表示学习
有能力通过算法,在少量人为经验的情况下,自动从数据中抽取出合适的特征,完成原本需要通过特征工程才能得到的效果(相当于自带“特征抽取器”)
(思考:传统的机器学习的实践难点,1. 特征工程;2.模型调参)
能够处理更多的数据,更大的维度
能够处理更加复杂的数据,更加复杂的任务(图像,文本,语音等)
由于以上特点,它可以用于端到端的服务
它的通用性很强, 一个深度网络模型,一旦训练出来,可能可以适合很多的场景。

那么在操作深度学习的时候,又有何特点呢?
深度学习炼丹术:https://zhuanlan.zhihu.com/p/23781756
深度学习·炼丹入门(真·炼丹)
灵材(数据)
丹方(CNN,RNN等)
真火(GPU)
丹炉(深度学习框架)
炼制(训练)

  1. 深度学习工具介绍(介绍框架)
    如果从炼丹的角度出发,我们看看分别需要啥?
    数据-自己找,特定任务后面会介绍现成的
    模型,算法-等下会学
    真火-花钱买,或者云平台
    丹炉-选一款
    炼制-慢慢练

深度学习培训班当天小结1相关推荐

  1. 深度学习之损失函数小结

    深度学习之损失函数小结 开篇 损失函数在深度学习中的作用相当于引领模型学习的方式,其重要程度不言而喻: 下图为一些损失函数的关系: Sigmoid和Softmax损失 Sigmoid公式:S(x)=1 ...

  2. 深度学习之激活函数小结

    深度学习之激活函数小结 激活函数的作用和意义:引入非线性,增加网络表达能力: 基本激活函数介绍 首先看一下一些常见的激活函数: Sigmoid: 总结:第一个出现的激活函数,存在以下问题,所以后面基本 ...

  3. 深度学习分布式训练小结

    分布式训练本质上是为了加快模型的训练速度,面对较为复杂的深度学习模型以及大量的数据.单机单GPU很难在有限的时间内达成模型的收敛.这时候就需要用到分布式训练. 分布式训练又分为模型并行和数据并行两大类 ...

  4. 吴恩达深度学习网课小结

    Coursera上吴恩达的深度学习网课,很适合那些想了解和学习深度学习的人来入门. 这个深度学习的专项网课共包含了五门课,包含了神经网络.卷积神经网络(CNN).循环神经网络(RNN).长短期记忆网络 ...

  5. 深度学习面试知识小结

    参考了一部分别人的,自己也整理了一点,持续更新中- 计算机视觉算法岗面试题:在这里. CNN结构特点 1.局部连接使网络可以提取数据的局部特征 2.首先权值共享就是滤波器共享,即是用相同的滤波器去扫一 ...

  6. 谷歌深度学习四大教训:应用、系统、数据及原理(附数据集列表)

     谷歌深度学习四大教训:应用.系统.数据及原理(附数据集列表) 新智元mp 2016-10-28 19:22:55 阅读(809) 评论(0) 新智元原创 参考来源:airsassociation ...

  7. 送10本今年最火的《动手学深度学习》

    点击我爱计算机视觉标星,更快获取CVML新技术 52CV曾经多次介绍FlyAI机器学习竞赛平台,不少粉丝也曾在FlyAI拿到现金奖励. 本次52CV & FlyAI联合送书,CV君查找了两天, ...

  8. 活动 | 飞桨全国高校深度学习师资培训班免费报名

    为推动中国人工智能行业的发展,进一步贯彻落实国家<新一代人工智能发展规划>,加快人工智能高层次人才培养,提高教师的知识.技术能力和教学水平,由教育部和工业和信息化部指导的信息技术新工科产学 ...

  9. 《深度学习:Java语言实现》一一2.6小结

    2.6小结 本章作为深度学习的铺垫,我们介绍了神经网络,它是一种机器学习算法.你学习了三种代表性的单层神经网络经典算法,分别是:感知器.逻辑回归以及多类逻辑回归.我们了解到单层神经网络无法解决非线性问 ...

最新文章

  1. ICRA2022 | AutoPlace:车载单片毫米波雷达场景识别
  2. class ts 扩展方法_如使用Typescript撸Vue(Vue2 + TS +TSX+CSS module)
  3. Unity Mathf 数学运算(C#)
  4. java 格式化位数_java数字如何格式化?
  5. 【.NET特供-第三季】ASP.NET MVC系列:传统WebForm站点和MVC站点执行机制对照
  6. java基础排序_Java排序算法-Java入门|Java基础课程
  7. 计算机网络安全常见问题,计算机网络安全是指什么?
  8. 大家一起看广告?微信朋友圈广告@好友评论互动功能全量开放
  9. 一个项目工程的重构小结
  10. 中国数码电影摄影机行业市场供需与战略研究报告
  11. centos6使用docker部署zookeeper
  12. Navicat连接Mysql教程
  13. OP-TEE 编译流程
  14. diagram怎么记忆_怎样记英语单词本子单词记忆法原则让每个学生真正的
  15. 安装uTool之后鼠标中键异常被uTool接管
  16. 三星6818芯片火焰报警器驱动的编写
  17. 浙江大学计算机考研分数线2018,2018年浙江大学考研复试分数线已公布
  18. python编程好学吗-python语言好学吗
  19. Activity工作流(2)-入门安装运行第一个例子
  20. matlab图像处理 识别颜色,MATLAB图像处理_直接操作像素点进行颜色变换

热门文章

  1. java基础常见面试题
  2. Atmel Studio 6.0 重新安装
  3. Android 实现左右声道播放不同音乐
  4. 几个设计原则的优先级排序
  5. python中 r'', b'', u'', f'' 的含义
  6. 20系列和30系列显卡下的tensorflow-gpu环境配置,避坑指南
  7. 微信小程序头像上传(一)
  8. WINVER 和 _WIN32_WINNT
  9. 视频直播推流与拉流的实现
  10. php直播推流rtmp,直播推流nginx-rtmp-module集成