利用numpy实现Logistic回归模型——总结(5)

总结

前面已经写了5篇总结了,单层网络中要使用的所有方法基本上全部写完了,今天这篇总结就是写一下这个Logistic回归模型的main函数,把所有的方法都用起来,看看训练后的结果,和预测的结果怎么样。

main函数

首先回忆一下,训练Logistic回归模型需要我们给他提供什么数据,原始数据肯定少不了,还有初始化的W,b,还有学习率learning_rate,最重要的还有迭代次数,我们需要算多少次,iteration_nums
所以
第一步:加载数据,X_train,Y_train,X_test,Y_test,px_num,classes
第二部:给定迭代次数iteration_nums
第三步:给定学习率
第四步:初始化参数W,b
第五步:开始训练train,返回参数W,b和costs
第六步:计算准确率,一个是测试集的准确率,一个是训练集的准确率
第六步分成两步:6.1:计算出所有训练集的预测值
6.2:计算出所有测试集的预测值

第七步:输出准确率
第八步:查看预测结果,

from matplotlib import pyplot as plt
import numpy as np
import utils
def main():
    """
    主程序入口
    args:没有传入参数
    :return:
    """
    #第一步是不是获取数据
    X_train,Y_train,X_test,Y_test,classes,px_num=load_data()
    #设置迭代次数
    iteration_nums=2000
    #设置学习率
    learning_rate=0.005
    #设置特征的维度
    data_dim=X_train.shape[0]
    W,b=initialize_parameters(data_dim)
    #训练
    params,costs=train(X_train,Y_train,W,b,iteration_nums,learning_rate)
    #现在训练完毕了
    #需要看一下训练完后的模型对X_train数据集的预测结果集合
    predictions_train=predict_image(X_train,params["W"],params["b"])
    #看一下对测试集的预测结果集合
    predictions_test=predict_image(X_test,params['W'],params['b'])
    #和真实值对比产生准确率
    #训练集的准确率
    train_accuracy=calc_accuracy(predictions_train,Y_train)
    #测试集的准确率
    test_accuracy=calc_accuracy(predictions_test,Y_test)
    #输出准确率
    print("Accuracy on train set:{}%".format(train_accuracy))
    #输出测试集的准确率
    print("Accuracy on test set:{}%".format(test_accuracy))

    #预测示例
    index=1
    cat_img=X_test[:,index].reshape((px_num,px_num,3))
    plt.figure("results")
    #设置绘图窗口,显示选中的图片1,看看是不是猫
    plt.title("the %d's picture"%(index))
    plt.imshow(cat_img)
    plt.axis('off')
    plt.show()
    #显示预测值
    print("You predict that it's a "+classes[predictions_test[index]].decode('utf-8'))


总结到此结束,Logistic回归模型的整个算法就总结完了,虽然是抄写代码,这样梳理一下过程能够加深记忆,还有再多抄写几遍才能消化成为自己的东西,达到想用就用的境界。
接下来再整理一遍代码上传上来
加油

你可能感兴趣的:(深度学习学习笔记,机器学习,深度学习,python,人工智能)