一般思路:分析数据集,选择合适模型
最简单的情况是数据向量是一维二维或者三维的,我们可以把图像画出来,直观上就能看出来。
多维情况可以先PCA降维,在将前几行列画图画出来。
降维是对数据高维度特征的一种预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。
**主成分分析(PCA)是一种分析、简化数据集的技术。**主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。通俗理解:就是找出一个最主要的特征,然后进行分析。
PCA 思想
具体的算法流程
输入:n维样本集D=(x(1),x(2),…,x(m)),要降维到的维数n.
输出:降维后的样本集D′
在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度,其中,方差的计算公式为
其中,n表示样本量,
在此基础上,协方差的计算公式被定义为
PCA 优缺点:
优点:降低数据的复杂性,识别最重要的多个特征。
缺点:不一定需要,且可能损失有用信息。
适用数据类型:数值型数据。
PCA的思想是将n维特征映射到k维上(k
#PCA降维
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D #3D绘图教程 3D曲面和散点的绘制用的都是mpl_toolkits库的mplot3d模块中的Axes3D来完成
#from sklearn.datasets.samples_generator import make_blobs
from sklearn.datasets import make_blobs #sklearn中的make_blobs函数主要是为了生成数据集的
import sys
sys.path.append(r'D:\zhangzhe\Postgraduate\lab\Myself')
# 样本10000个,特征维度3
X, y = make_blobs(n_samples=10000, n_features=3, centers=[[3, 3, 3], [0, 0, 0], [1, 1, 1], [2, 2, 2]],
cluster_std=[0.2, 0.1, 0.2, 0.2], random_state=9)
print(X,y)
"""
n_features表示每一个样本有多少特征值
n_samples表示样本的个数
centers是聚类中心点的个数,可以理解为label的种类数
random_state是随机种子,可以固定生成的数据
cluster_std设置每个类别的方差
"""
# 画图
fig = plt.figure()
ax = Axes3D(fig, rect=[0, 0, 1, 1], elev=30, azim=20)
plt.scatter(X[:, 0], X[:, 1], X[:, 2], marker='o')
plt.show()
# 计算特征值和特征向量 n
eigvalue, eigvector = np.linalg.eig(np.cov(X.T)) #计算方阵的特征值和右特征向量。
print(eigvalue)
print(eigvector)
# 获取第一个和第三个特征
a = np.hstack((eigvector[:, 0].reshape(3, -1), eigvector[:, -1].reshape(3, -1)))
print(a)
X = X - X.mean(axis=0)
X_new1 = X.dot(a)
print(X_new1)
fig = plt.scatter(X_new1[:, 0], X_new1[:, 1], marker='o')
plt.show()
一点经验:可以从ReLU函数开始,如果ReLU函数没有提供最优结果,再尝试其他激活函数。
最常见的方法:使用学习率规划器
为了同时保证训练速度和收敛范围,目前最常用的方法就是动态衰减神经网络的学习率(可以保持固定的Batch Size,对训练机器显存的利用和规划有利)。
在训练过程中,最简单的调整学习率的方法就是让学习率随着时间的推移而不断衰减。在训练开始时,我们通常使用较大的学习率来让模型快速达到较好的性能,随后通过衰减学习率使模型权重更好地逼近最优的配置。
两个易于使用的学习率规划器:
详细点这里
一个很不错的文章
LearningRate = LearningRate / (1 + decay * epoch)
衰减系数decay
Decay = LearningRate / Epochs
例如:
我们设置一个较高的学习率0.1作为初始值,设定训练的批次数(epochs)为50,根据上面的公式计算得到衰减系数为0.1/50=0.002。