编辑回复: 一个很好的问题。我在train的时候用到了:train_ss_x = ss.fit_transform(train_x)
实际上:fit_transform是fit和transform两个函数都执行一次。所以ss是进行了fit拟合的。只有在fit拟合之后,才能进行transform
在进行test的时候,我们已经在train的时候fit过了,所以直接transform即可。
另外,如果我们没有fit,直接进行transform会报错,因为需要先fit拟合,才可以进行transform。
编辑回复: 看的很认真,我刚查了下官方文档确实是先写y_true,然后是y_pred,也就是:accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
关于score的计算,是判断y_true和y_pred是否相等,也就是 score = y_true == y_pred,然后再根据样本的权重做归一化处理,调用_weighted_sum(score, sample_weight, normalize)
所以我刚用代码测试了下accuracy_score(y_true, y_pred)和accuracy_score(y_pred, y_true)的结果是一样的。Anyway,规范的话应该按照官方文档的顺序来调用参数。多谢反馈
编辑回复: 多项式朴素贝叶斯实际上是符合多项式分布,不会存在负数。而高斯朴素贝叶斯呈现的是高斯分布,也就是正态分布,比如均值为0,方差为1的标准正态分布,可以存在负数。
作者回复: 数据比较零散的话可以使用Min-Max规范化,如果数据符合高斯分布,可以使用Z-Score规范化。
有些分类方法对归一化比较敏感,比如GaussianNB,效果就不一定好。不过大部分情况下,还是需要先对数据做规范化处理
编辑回复: 对 训练集的特征矩阵和分类结果。对应test_x和test_y是测试集的特征矩阵和分类结果。
编辑回复: 对的,K值过大,无法将未知物体分类出来,会降低准确率。
编辑回复: 对的K值大未必好
作者回复: random_state 就是随机数种子,没有必要调整个参数,每次运算结果不同 还是正常的
作者回复: 可以这样,用sklearn来寻找最优的超参数
作者回复: 对的 Good Job 滢离数据总监越来越近了
作者回复: 对的 总结的不错