A~G
组成的集合。按固定顺序 A B C D E F G
做 one-hot 编码:只要某个字母在序列中出现(次数不计),对应位置记为 1
,否则为 0
,得到长度为 7 的特征向量。p = sigmoid(w·x + b)
;损失函数采用交叉熵;用**梯度下降(SGD,batch=1)**更新参数。题面给定超参:学习率 0.1
,训练轮数 20
,初始 w、b
全为 0。p
,阈值 0.5
二值化,p>0.5
输出 1
,否则输出 0
。N M
;接着 N
行为训练样本(“字符串 标签”);之后 M
行为仅含字符串的测试样本;输出 M
行预测标签。意图分类是一种常见的 NLP 任多,现在需要实现一个基于逻辑回归的意图分类系统(二分类)。本系统的输入是一个已处理的特征序列,输出是意图标签 ( 0 或 1 )。请根据以下步骤实现该分类器:
1、数据预处理:对输入(特征序列,即仅包含大写字母 ABCDEFG 的序列)进行 one−hot 编码,编码时的特征顺序是 ABCDEFG;某个特征存在取 1 ,不存在取 0 ;
2、模型初始化:构造一个单层的训练网络,初始化权重 w 和偏置 b 初始化的值全部设为 0 ;
3、模型训练:使用 Sigmoid 函数计算预测值,使用交叉熵损失函数训练,使用梯度下降算法更新参数;训练过程中使用训练数据进行训练,相关超参数为:学习率 0.1,训练轮数 20 ,batch 大小为 1 ;
(1)Sigmoid 函数公式:
σ(z)=1+e−z1 ,其中 z=w⋅x+b ( x 为输入特征向量)。
4.模型预测:对测试数据进行预测,首先使用 sigmoid 函数计算预测值,然后做二值化处理(大于 0.5 认为是类别 1 ,否则是类别 0 )
第一行输入 N 和 M,N(10<=N<=100) 表示训练数据条数,M(2<=M<=10) 表示测试数据条数;
接下来 N 行是训练数据,每行包含两部分内容(空格隔开),即代表输入的特征序列(由大写字母 ABCDEFG 构成的字符串,长度范围是 [3,7] )和该条数据的意图标签(使用数字 0 或 1 表示);
在接下来 M 行是测试数据的特征序列。
输出有 M 行,每行是测试输出,即用数字 0 或 1 表示的意图标签。
输入
10 2
CBG 0
AFE O
FGD 1
BFG O
BBA 0
BDD 0
BEG 1
EGE 0
CAF O
DGD 1
DBA
DAD
输出
0
0
说明
该样例有 10 条训练数据,2 条测试数据,2 个测试输出均 0
输入
10 3
GDEE 0
BDFEA 1
BDFE O
GECD 0
DDCEE 1
ADA O
EECBC 0
BACBC 1
DDD 1
FEEEE O
AADC
BBAE
ECEC
输出
1
0
0
说明
该样例有 10 条训练数据,3 条测试数据,测试输出分别为 1、0、0 。