————————————————————————————
原文发表于夏木青 | JoselynZhao Blog,欢迎访问博文原文。
————————————————————————————
深度学习 | 绪论
深度学习 | 线性代数基础
深度学习 | 机器学习基础
深度学习 | 实践方法论
深度学习 | 应用
深度学习 | 安装conda、opencv、pycharm以及相关问题
深度学习 | 工具及实践(TensorFlow)
深度学习 | TensorFlow 命名机制和变量共享、变量赋值与模型封装
深度学习 | TFSlim介绍
深度学习 | TensorFlow可视化
深度学习 | 训练及优化方法
深度学习 | 模型评估与梯度下降优化
深度学习 | 物体检测
深度学习| 实战1-python基本操作
深度学习 | 实战2-TensorFlow基础
深度学习 | 实战3-设计变量共享网络进行MNIST分类
深度学习 | 实战4-将LENET封装为class,并进行分类
深度学习 | 实战5-用slim 定义Lenet网络,并训练测试
深度学习 | 实战6-利用tensorboard实现卷积可视化
深度学习 | 实战7- 连体网络MINIST优化
深度学习 | 实战8 - 梯度截断
深度学习 | 实战9- 参数正则化
机器学习:学习如何映射 F(x): 数据 结果
数据规律复杂——F(x) 复杂
一把学出 F(x) 有点难,能不能简化?
机器学习:手工设计特征和模型,并学习数据分布
深度学习:侧重从大量数据中直接学习高维、复杂的数据特征
机器学习: 实现人工智能的方法
深度学习: 机器学习的一种特殊形式,是一种表示学习
来源:人工神经网络
实质:非常“深”的人工神经网络
目的:学习数据-> 特征
特点:多层表达,高层复杂特征是底层简单特征的抽象
只要装好了anaconda ,python就装好了。
验证是否装好了
conda --version
在深度学习的实践中,数据集扮演重要的角色
假设数据集 D 包含 N 个训练样本,每个样本为三维浮点数,并对 应一维整形标签
(1.73, 3.86, 2.50)-> 1 (2.56, 9.75, 3.21)-> 2
… 用基本数据类型难以定义 使用容器类型
将list转为tuple
mytuple = tuple(myList1)
列表和元组的设计目的:
列表和元组的具体区别:
元组使用案例: 定义数据集 D 中的单个训练样本:
表示结构
不可改变
例如:(1.73, 3.86, 2.50)、(2.56, 9.75, 3.21) 等
列表使用案例: 定义整个数据集 D:
数据列表:包含所有训练样本元组:[(1.73, 3.86, 2.50), (2.56, 9.75,3.21), …]
标签列表:包含所有标签:[1, 2, …]
表示顺序
可以增减或修改数据
列表和元组的索引访问:
列表和元组的索引都是从0开始。
列表和元组的分片访问:
通过[]来取键。
遍历字典:
字典类型下的更多函数:
pop之后就会从字典中删除。
Labels_set= set(Labels)
Python使用def关键字创建函数:
def function_name(arg1,arg2...):
# statement inside function
Python 函数仅支持返回一个值,可以通过返回元组的方式变相实现返回多个值。
股票指数预测:
线性回归的定义:
在统计学中,线性回归 (Linear regression) 是利用称为线性回归方 程的最小二乘函数对一个或多个自变量和因变量之间关系进行线 性建模的一种回归分析
只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
标准库 :
pprint,sys,os,…
第三方库
Numpy Scipy Matlibplot Scikit-learn Pandas …
第三方库安装
conda install
第三方库更新
conda update
import numpy
import numpy as np
from numpy import array
导入pandas 模块:
import pandas as pd
pandas.read_csv 模块:加载 csv 文件:
df = pd.read_csv(”googlestock.csv”)
df 数据类型:pandas.core.frame.DataFrame
将 df 修改为按时间戳索引,以便后续处理:
df[’Date’] = pd.to_datetime(df[’Date’])
df.set_index(”Date”, inplace=True)
将Date项变为索引项,不再是真正的数据
** 预处理 DataFrame 类型数据:**
df[’HL_PCT’] = (df[’Adj. High’] - df[’Adj.Close’]) / df[’Adj. Close’]
* 100.0 # 最高价与最低价的变化百分比
df[’PCT_change’] = (df[’Adj. Close’] - df[’Adj.Open’]) / df[’Adj.Open’] * 100.0 # 收盘价与开盘价的变化百分比
df = df[[‘Adj. Close’, ‘HL_PCT’, ‘PCT_change’,‘Adj.Volume’]] # 最终进行预测时需要的特征
df[‘label’] = df[‘Adj. Close’].shift(300) # 标签:以收盘价为预测指标,每一项特征对应的标签为 300 个时间片之后的股价
python 科学计算的基础包
ndarray可以作为数据类型转化的桥梁。
NumPy 数组的创建:向 array 中传入一个 list:
显示数组元素的属性
改变数组元素类型
改变数组的尺寸:reshape方法
将reshape 的某个参数指定位-1时,numpy会根据实际数组元素个数自动替换-1 为具体的大小。
常用于数据量比较大的时候。
元素所以(基于列表和元组的索引方式):从零开始,左闭右开。
使用布尔型索引
使用条件索引
元素修改
多维数组的索引和切片
多维数组的布尔索引和切片
ufunc操作:可对数组的每个元素进行操作的函数
四则运算符同样具有ufunc属性
比较操作
矩阵乘法
文件存取(假设有数组array为a,类型为int32)
将 DataFrame 的数据转换成 Numpy 矩阵,并分为数据和标签,以 便下一步处理
然后可以利用 Scikit-learn 等第三方库对 X 和 y 做进一步处理
案例 1:数据预处理
sklearn.preprocessing.scale 模块:数据零均值化和单位方差化
案例 2:数据特征降维
sklearn.decomposition.PCA 模块:PCA 数据降维
案例 3:数据集处理
sklearn. model_selection.train_test_split 模块:快速划分训练集与测 试集
案例 4:机器学习模型
sklearn.linear_model. LinearRegression 模块:线性回归
举例:用线性回归做直线拟合 (注意:之前股票回归的线性回归是 做多元数据预测)
股价预测程序:对调用 Numpy 生成的数据和标签矩阵 X 和 y,使 用 Scikit-learn 进行进一步处理:
完成数据规范化和训练测试集划分之后,调用线性回归模块进行
回归预测
clf = sklearn.linear_model.LinearRegression() # 定 义 线 性回归器
clf.fit(X_train, y_train) # 开 始 训 练
accuracy = clf.score(X_test, y_test) # 测 试 并 得 到 测 试 集性能
forecast_set = clf.predict(X_lately) # X_lately: 一 部 分不包括在训练和测试集中的数据,用于生成股价预测结果
完成线性回归训练和预测之后,下一步需要输出预测结果
股价预测程序的结果绘制分成两个部分:
(1)已有的收盘价格数 据;
(2)预测的未来收盘价
绘制出来的效果
基于 Numpy 之上,操控 Numpy 数组进行科学计算
专门解决科学计算中各种标准问题域的包的集合
数值积分、矩阵分解、信号处理、稀疏矩阵和线性系统求解器、统 计工具等。
Scipy.io 模块:保存和加载 MATLAB 文件 (mat)