leetcode——83,24;机器学习——神经网络

83. 删除排序链表中的重复元素

在这里插入图片描述

思路:

根据题目可得到本题为有序链表,用指针p指向头结点,从他的直接后继结点开始找与其值相同的结点,找到后将下下一个的值赋给下一个;以此类推,p指向最后结点时算法结束。

代码:

struct ListNode* deleteDuplicates(struct ListNode* head){
    if(head==NULL){
            return head;
        }
    struct ListNode *p=head;
    while(p->next!=NULL){
        if(p->val==p->next->val){
            p->next=p->next->next;
        }else{
            p=p->next;
        }
    }
    return head;
}

24. 两两交换链表中的节点

在这里插入图片描述
思路:

定义三个指针,p,q,t;p指向相邻结点的第一个结点,q指向相邻结点的第二个结点,t指向p,来连接上一组相邻结点与下一个相邻结点。
然后用p,q进行交换,再将t指向下一组结点的第一个

struct ListNode* swapPairs(struct ListNode* head){
    if(head==NULL || head->next==NULL){
        return head;
    }
    struct ListNode *p=head,*t=NULL;
    struct ListNode *q=p->next,*rp=q;
    while(p->next!=NULL){
        p->next=q->next;
        q->next=p;
        if(t!=NULL){
            t->next=q;
        }
        t=p;
        p=p->next;
        if(p==NULL){
            break;
        }
        q=p->next;
    }
    return q;
}

激活函数的作用

激活函数是神经网络的一个重要组成部分。如果不用激活函数(即相当于激活函数为f(x)=x),在这种情况下,网络的每一层的输入都是上一层的线性输出,因此,无论该神经网络有多少层,最终的输出都是输入的线性组合,与没有隐藏层的效果相当,这种情况就是最原始的感知机。
将线性问题转化为非线性。

机器学习基本流程

0 提出问题
大多数机器学习流程首先要提出一个问题,而这个问题无法通过简单的条件程序或基于规则的引擎(专家系统)来回答。这些问题的答案通常与数据集的预测结果有关。
1 收集和准备数据
为了能够解决这个问题,我们需要与问题相关的数据。数据的质量与数量将决定预测结果的准确性。数据可视化是此环节的一个重要方面。此阶段还将数据拆分为训练集和测试集和验证集以构建模型,以6.1.3的比例进行分配。
2 选择训练方法
根据问题和数据的性质,我们需要选择合适的训练模型以最好地适应数据并获得准确的预测结果。
3 训练模型
导入训练数据,我们将使用各种算法来训练模型以识别数据中的模式。该模型可以利用内部可调整的权重,将数据的某些部分优先与其他部分,以构建更好的模型。
4 评估模型
使用测试集(未参与模型训练的数据)来查看模型的性能,
5 预测 将新的输入值导入模型来测试模型的准确性

三层前馈神经网络有输入层、输出层、隐层来进行训练
验证模型可以根据P-R曲线、ROC、AUC等

验证集和训练集的区别


训练集:用于模型拟合的数据样本,即用于训练的样本集合,主要用来训练神经网络中的参数。

验证集:模型训练过程中单独留出的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估。

测试集:用来评估模最终模型的泛化能力。但不能作为调参、选择特征等算法相关的选择的依据。

P1:训练集的作用
拟合模型,调整网络权重。
P2:验证集的作用
作用1:快速调参,也就是通过验证集我们可以选择超参数(网络层数、网络节点数、迭代次数epoch、学习率learning rate、优化器)等。
作用2:选择超参数,为了让我们的模型在测试集表现得更好,调参是不可避免地一部分,如果把测试集当验证集,调参去拟合测试集合,是不可行地,这相当于作弊。
作用3:监控模型是否正常
验证集的重要性:
如果没有设置验证集,我们通常得等到测试集才可以知道我们模型真正得实力,然后再来调整参数,这样子时间代价较高,通过验证集我们可以训练几个epoch后查看模型的训练效果及我们的网络是否出现异常,然后决定怎么调整我们的超参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anan.3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值