python如何查看内置函数的用法及其源码?

在anaconda的安装目录下,有一块会放着我们安装的所有包,在里面可以找到所有的包

找到scikit learn包,进入

这里面又有了多个子包,每个子包就是一个主要的算法或功能块。我们经常使用的一些算法或功能,比如线性模型、集成算法、神经网络、邻近neighbors算法,都是在这里面实现的。我们可以进入这些代码,看看底层到底是如何实现的。

来理一下sklearn中neighbors算法的实现。

knn算法原理

neighbors中,又分为按照不同的问题(分类、回归),不同的算法(knn、最近形心点、kernel密度)等放在不同的模块

这部分内容参考:sklearn中knn相关包

KNN和限定半径最近邻法使用的算法algorithm:算法一共有三种,第一种是蛮力实现,第二种是KD树实现,第三种是球树实现。这三种方法在K近邻法(KNN)原理小结中都有讲述。

如果用蛮力计算,当样本量较大时,计算量太大,所以就要考虑节省计算量的方法,KD树或者球树都是这样的方法,主要目的就是节省找到预测样本的k个最近邻节点的时间。主要操作就是,1.先建一个kd树(根据训练样本建树),2.然后把待预测样本放到kd树的相应叶子结点,通过比较结点中最短距离与与父节点中最短距离、直到根结点,来找到最近结点,第二轮把刚才找到的结点抛掉后再进行第二轮找到余下样本中最近的结点,这样进行k轮,找到k个最近邻,3.根据k个最近邻训练样本y值给出待预测样本y值。

以上就是neighbors包中所有的内容,具体的代码里面的内容参考下面的文章。

sklearn源码分析系列:neighbors1

sklearn源码分析系列:neighbors2

下面先粘一个集成算法的文章

sklearn源码解析:ensemble模型零碎记录

最新文章

  1. 关于如何提高Web服务端并发效率的异步编程技术
  2. 初识Jsoup之解析HTML
  3. 用c解决的小题目
  4. informatica 学习日记整理
  5. MyBatis知多少(6)表现层与业务逻辑层
  6. 如何从sun公司官网下载java API文档(转载)
  7. leetcode 37 Sudoku Solver java
  8. detain ssh server 设置
  9. JSON字符串和js对象转换
  10. poj 2251 Dungeon Master( bfs )
  11. Python3基础 用 函数递归求解 一个数字的阶乘
  12. 通过WebSocket实现一个简单的聊天室功能
  13. android onSaveInstanceState应用实例
  14. JavaFile、递归、字节流、字符流整理
  15. 进制与ASCII码转换
  16. PISQLDAS 查询语句
  17. JavaScript进阶系列03,通过硬编码、工厂模式、构造函数创建JavaScript对象
  18. 每日英语:China Pipeline Explosions Kill 52
  19. 五、Kafka 用户日志上报实时统计之 应用概述
  20. Java并发编程原理与实战二十五:ThreadLocal线程局部变量的使用和原理

热门文章

  1. LeetCode——139. 单词拆分
  2. 销售de经典语录
  3. Window Mysql5.7免安装版配置
  4. 如何实现MVC ActionResult 返回类型为JavaScriptResult
  5. 17.3.12--urllib2模块
  6. PAT Advanced 1050 String Subtraction (20) [Hash散列]
  7. Asp.Net MVC主项目访问不到分离项目控制器的解决方案
  8. c#学习笔记02——接口
  9. 估计量|估计值|矩估计|最大似然估计|无偏性|无偏化|有效性|置信区间|枢轴量|似然函数|伯努利大数定理|t分布|单侧置信区间|抽样函数|
  10. Fractal Dimension|Relative Complexity|CG含量|重复序列|