指定启动 Jupyter notebook 的版本
python3.6 -m jupyter notebook 时, 查看在 jupyter notebook 内部打印 sys,path, 发现调用的并不是 python3.6, 而是 python2.7, 只能先把 python2.7 里面的 jupyter notebook uninstall.
当评估估计器的超参数时, 为什么要设置一个验证集?
在调参时, 我们一般调整参数直至估计器达到最优, 但是这有可能将测试集中的信息 "泄露" 给估计器, 而且评估指标也不再报告泛化性能. 设置验证集可解决这一问题, 即在训练集上进行训练, 验证集上评估, 当实验似乎成功时, 在测试集上进行最终评估.
交叉验证优缺点
通常, 我们将数据分成 3 组, 这大大减小了可用于学习模型的样本数, 浪费数据. 使用交叉验证可以解决这一问题, 但是计算代价更大.
pipeline
pipeline 的输入为一连串的数据挖掘步骤, 其中最后一步必须是估计器 (Estimator), 可理解成分类器前几步是转换器 (Transformer). 输入的数据集经过转换器的处理后, 输出的结果作为下一步的输入, 使得编写估计器更容易, 在交叉验证下提供此行为:
>>> fromsklearn.pipeline importmake_pipeline >>> clf =make_pipeline(preprocessing.StandardScaler(),PCA(n_components=2),svm.SVC(C=1)) >>> cross_val_score(clf, iris.data, iris.target, cv=cv) |
去重后, 依据原来列表的顺序进行排序
- a =[1,1,4,5,2,2,9,9]m = list(set(a))
- m.sort(key=a.index)
来源: http://www.bubuko.com/infodetail-3085652.html