自己写的算法,如何用网格搜索进行超参数优化?
来源:5-1 简单线性回归
樟子松
2020-08-24
老师:
1.第四章 模仿 from sklearn.neighbors import KNeighborsClassifier 这个类写的kNN算法,我想用sklearn的网格搜索对自己写的算法中的k值进行超参数优化,如何实现?
2.老师,我学习别人的代码,代码中定义了一个函数,如下。每个形参后面都跟着一个“: object” ,最后还有“-> object”。这种用法,我没觉得跟不加object,有啥区别,可能是我知识不够,老师您了解吗?代码如下:
def binarize_Img(Img: object, number: object, proj: object, geotrans: object) -> object:
pass
1回答
-
1
这是一个 sklearn 的使用问题(高级使用问题),简单地说,你需要实现一个 sklearn 定义的 estimator 的对象。因为,GridSearchCV 的第一个参数,要求是一个 estimator。(sklearn 中的所有算法类,都是一个 estimator)。
具体如何实现一个 estimator,sklearn 有一篇官方文档,可以参考这里:https://scikit-learn.org/stable/developers/develop.html
在网上搜索一下,应该也有很多人分享如何创建一个属于自己的 estimator,我简单搜索了一下,比如这个:http://danielhnyk.cz/creating-your-own-estimator-scikit-learn/
2
python 自 3.7 开始支持类型标注。它的这个代码在使用这个特性。对这个特性感兴趣,可以在网上搜索:类型标注。Python 对应的官方文档参考这里:https://docs.python.org/3/library/typing.html
但是,这个函数如果所有的参数都标注成 object,我个人认为意义不大。具体他这样写的用意是什么,你还是需要和代码的原作者讨论。
继续加油!:)
112020-08-26
相似问题
回答 1
回答 1