总结这八大算法对比
八大算法都可以用调库实现,具体库如下:
细节对比
#消除警告
import warnings
warnings.filterwarnings('ignore')
'''特征缩放'''
# 归一化(0,1缩放)__(只适用于神经网络多分类)
min_x,max_x = np.min(x),np.max(x)
x = (x-min_x)/(max_x-min_x)
# 标准化
x -= np.mean(x,0)
x /= np.std(x,0,ddof=1)
'''精度与准确率对比'''
# 精度(用于单变量、多变量线性回归)
u = np.sum(np.square(h-y))
v = np.sum(np.square(y-np.mean(y)))
score = 1-u/v
# 准确率(逻辑回归)
count = 0
for i in range(len(y)):
if np.where(h[i]>=0.5,1,0)==y[i]:
count += 1
score = count/len(y)
# 准确率(神经网络_二分类)---与逻辑函数一样
# 准确率(神经网络_多分类)
count = 0
for i in range(len(y)):
if np.argmax(h[i]) == np.argmax(y[i]):
count += 1
score = count/len(y)
画图对比
线性回归:实际值与预测值对比图
逻辑回归:实际值正负样本对比图和预测值正负样本对比图
神经网络:代价函数图像、混淆矩阵、分类报告
SVM: 等值面、等值线
KMeans: 样本散点分布图、聚类中心
PCA: 分类对比图
前四个算法对比
单变量线性回归
- 数据读取
- 数据提取
- 数据初始化
- 洗牌
- 切分
- 定义模型(线性)
- 定义代价函数(误差平方和代价函数)
- 定义梯度下降
- 实际值与预测值对比图
多变量线性回归(比单变量多个标准化特征缩放)
- 数据读取
- 数据提取
- 数据初始化
- 特征缩放(标准化)
- 洗牌
- 切分
- 定义模型(线性)
- 定义代价函数(误差平方和代价函数)
- 定义梯度下降
- 实际值与预测值对比图
逻辑回归
- 数据读取
- 数据提取
- 数据初始化
- 特征缩放(标准化)
- 洗牌
- 切分
- 激活函数(逻辑函数)
- 定义模型
- 定义代价函数(交叉熵代价函数)
- 定义梯度下降(正则化)
- 实际值正负样本对比图和预测值正负样本对比图
神经网络(二分类)
- 数据读取
- 数据提取
- 数据初始化
- 特征缩放(标准化)
- 洗牌
- 切分
- 激活函数(逻辑函数)
- 定义模型(向前传播算法)
- 定义代价函数(交叉熵代价函数)
- 定义BP算法(向后传播算法)
- 定义梯度下降
- 代价函数图像
神经网络(多分类)
- 数据读取
- 数据提取
- 数据初始化
- 特征缩放(归一化)
- 洗牌
- 切分
- 激活函数(逻辑函数)
- 定义模型(向前传播算法)
- 定义代价函数(交叉熵代价函数)
- 定义BP算法(向后传播算法)
- 定义梯度下降
- 代价函数图像、混淆矩阵、分类报告
后四个算法主要是导库,详情请看前几篇八大算法之⑤⑥⑦⑧
点击查看