validEcacheList = nonzero(oS.eCache[:, 0].A)[0]
#构建一个非零列表,返回值是第一个非零E所对应的alpha值,而不是E本身
这是《机器学习实战》标准解释,但有两个疑问
1.“不是E本身”?
这与np.nonzero()用法有关,在二维数组中它返回的是非0值的行号和列号。代码[0]表示行号
2.“所对应的是alpha值”?
这与上一行代码有关中'i'有关
oS.eCache[i] = [1, Ei] ;
nonzero(oS.eCache[:, 0].A)[0]
这表明‘i’==行号==第一个alpha