{"id":20469943,"url":"https://github.com/budali/mechine_learn","last_synced_at":"2025-09-08T03:46:25.535Z","repository":{"id":113833997,"uuid":"284899892","full_name":"budaLi/Mechine_learn","owner":"budaLi","description":"参照贪心学院课程大纲学习","archived":false,"fork":false,"pushed_at":"2020-08-07T01:32:24.000Z","size":624,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-05T13:25:50.518Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/budaLi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-08-04T06:47:00.000Z","updated_at":"2021-01-06T01:36:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e564bcde-1f7d-4d51-ab11-b5a64f71c4d0","html_url":"https://github.com/budaLi/Mechine_learn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/budaLi/Mechine_learn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budaLi%2FMechine_learn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budaLi%2FMechine_learn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budaLi%2FMechine_learn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budaLi%2FMechine_learn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/budaLi","download_url":"https://codeload.github.com/budaLi/Mechine_learn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budaLi%2FMechine_learn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274130200,"owners_count":25227270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T14:11:00.413Z","updated_at":"2025-09-08T03:46:25.512Z","avatar_url":"https://github.com/budaLi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"参照贪心学院 机器学习高阶课程大纲 进行学习\n\n资金充足的情况下鼓励大家报名参加专业的培训~\n\n学习时要把参考资料仔细过一下哦，不重要的部分只要了解就好啦\n\n## 一.机器学习基础与凸优化\n#### 1.1 kNN和Weighted kNN\n    参考资料：\n              https://blog.csdn.net/qq_43416572/article/details/100582970\n              https://www.cnblogs.com/bigmonkey/p/7387943.html\n              https://www.cnblogs.com/jyroy/p/9427977.html\n     学习要求：\n                1.简述knn算法的流程\n                    对于一个未知的数据，从已知数据集中求出每个数据与其的\"距离\",取其中最接近的k个,然后通过多数表决的形式，即统计k个数据中种类最多的一个类，\n                    我们认为这个未知数据为该类别。\n                2.训练集和测试集是什么？\n                    训练集可以理解为已知的带有标签的数据，测试集理解为未知数据。\n                3.k值大小有什么影响？什么值最合适？\n                    k值太小不具备抗干扰性 可能最近的几个k值中有噪音\n                    k值太大不具备代表性 相当于较大领域中训练 近似误差较大\n                    一般的k取值不会超过20，上限是n的开方，理论上训练集越大，k值越大。\n                4.有哪些常用的度量距离呢？\n                    欧氏距离，余弦值，相关度，曼哈顿距离(城市街区距离)。\n                5.加权knn? 加的什么权？\n                    反比例函数加权，高斯加权等等。个人感觉不必了解过多。\n                    假如k=3\n                    三个类别分别为A、A、B\n                    一般来讲，A有2个，B有1个，那么判别结果为A\n                    加权情况下，三个邻近的权重分别为A（0.8），A（0.6），B（0.5）\n                    相当于最后有0.8+0.6=1.4（个）A，0.5（个）B，所以最后选A。\n\n                    #通过结合KNN本身的分类算法以及对前k个距离加权，来达到分类的目的 wk-nnc算法是对经典knn算法的改进，\n                    # 这种方法是对k个近邻的样本按照他们距离待分类样本的远近给一个权值w w(i) = (h(k) - h(i)) / (h(k) - h(1))\n                    w(i)是第i个近邻的权值，其中1\u003ci\u003ck,h(i)是待测样本距离第i个近邻的距离\n\n\n####  1.2 Approximated KNN算法\n      个人觉得，只做简单了解就好，不必深究。\n      Ann, Approximate Nearest Neighbor的缩写，就是近似最近邻搜索。\n      参考资料：\n                https://blog.csdn.net/suibianshen2012/article/details/101517801\n                https://zhuanlan.zhihu.com/p/37381294\n                https://www.ryanligod.com/2018/11/27/2018-11-27%20HNSW%20%E4%BB%8B%E7%BB%8D/#more\n      学习要求：\n                1.近似最近邻算法出现的意义是什么？\n                       对于传统的knn算法，我们需要根据输入值去训练集中求出k个最近邻，通过多数表决的方式决定其类别。\n                       在机器学习领域，语义检索，图像识别，推荐系统等方向常涉及到的一个问题是：给定一个向量X=[x1,x2,x3...xn]，\n                       需要从海量的向量库中找到最相似的前K个向量。通常这些向量的维度很高，对于在线服务，用传统的方法查找是非常耗时的，\n                       容易使得时延上成为瓶颈，因此业界通用的方式就是将最相似的查找转换成Ann问题。\n                2.怎么样衡量其好坏?\n                       衡量Ann算法好坏的一个依据是召回率，也就是通过Ann算法返回的k个结果与通过暴力查找的k的结果进行比较，如果完全一致，\n                       则说明Ann算法有效。因为它节省了搜索时间效果却依然有效。\n                3.有哪些ann算法？\n                        目前的Ann算法有基于图的，基于树的，基于哈希等。\n\n####  1.3 KD树,近似KD树\n       简单了解就好~\n       KD树是一种二叉树数据结构，可以用来进行高效的KNN计算。\n       参考资料：\n                https://www.joinquant.com/view/community/detail/dd60bd4e89761b916fe36dc4d14bb272\n                推荐：https://zhuanlan.zhihu.com/p/23966698\n\n#### 1.4 Locality Sensitive Hashing（局部敏感哈希 LSH）\n      相关资料：\n               https://colobu.com/2018/08/16/locality-sensitive-hashing/\n               https://zhuanlan.zhihu.com/p/80638247\n       作用：\n               海量高维数据相似性度量算法\n       核心思想：\n                在原空间中很近（相似）的两个点，在经过LSH哈希函数哈希后的值，大概率是一样的，会放在一个桶中，相反，两个不相似的值，它们的哈希值\n                相等的概率很小（很小？难道还是会出现在一个桶中？）。\n                这样在高维数据集中计算两个数据的相似度，就可以在一个桶中查找，而不用和每个点进行对比。\n\n#### 1.5 线性回归模型\n      相关资料：\n                https://zhuanlan.zhihu.com/p/40141010\n                https://easyai.tech/ai-definition/linear-regression/\n       学习要求：\n                1. 什么是回归分析？\n                    它属于机器学习中监督学习领域中的回归。\n                    目的是为了预测，比如根据一系列已知因素预测明天的天气，股票走势等。\n                    它是一种预测建模技术的方法，研究因变量与自变量的关系，最后可以通过建模根据自变量预测出因变量。\n                 2. 有哪几种回归？\n                    \u003c1 线性回归。线性回归通过使用最佳的拟合直线（又被称为回归线），建立因变量（Y）和一个或多个自变量（X）之间的关系。\n                    \u003c2 逻辑回归(本质是分类)。逻辑回归广泛用于分类问题。逻辑回归不要求因变量和自变量之间是线性关系，它可以处理多类型关系，\n                    因为它对预测输出进行了非线性 log 变换。\n                    \u003c3 多项式回归，逐步回归等\n                 3. 如何选择合适的模型？\n                    当你只知道一两种技巧时，生活通常是简单的。\n                    假如我们只了解线性回归和逻辑回归，我们就会想：如果结果是连续的，使用线性回归；如果结果是二值的，使用逻辑回归！\n                    然而，可供选择的选项越多，选择合适的答案就越困难。类似的情况也发生在回归模型选择中。\n                    在多种类型的回归模型中，基于自变量和因变量的类型、数据维数和数据的其它本质特征，选择最合适的技术是很重要的。\n                    以下是如何选择合适的回归模型的几点建议：\n                    \u003c1.确定各变量的关系和影响。\n                    \u003c2.比较适合于不同模型的拟合程度，我们可以分析它们不同的指标参数。\n                    \u003c3.交叉验证是评价预测模型的最佳方法。\n                    \u003c4. ...\n\n#### 1.6 Bias-Variance Trade-off 偏差方差权衡\n        个人理解为：模型过拟合和欠拟合权衡\n        参考资料：\n                https://liam.page/2017/03/25/bias-variance-tradeoff/\n        学习要求：\n                1.Bias-Variance Trade-off 是什么？背景。\n                    在机器学习领域，人们总是希望自己的模型尽可能的准确的描述数据背后的真实规律。通常所说的\"准确\"，其实就是误差小。\n                    而在该领域中，人们一般会遇到三种误差来源,随机误差、偏差和方差。随机误差是不可避免的，偏差和方差与欠拟合和过拟合紧密联系。\n                    \u003c1 随机误差：随机误差是数据本身带来的，不可避免，一般认为其服从高斯分布。\n                    \u003c2 偏差：指的是通过学习拟合出来的结果的期望值与真实规律之间的差距。偏差高欠拟合。\n                    \u003c3 方差：指的是通过学习拟合出来的结果的自身的不稳定性。方差高过拟合。\n                    理想情况下，一个较好的模型的偏差和方差应较小。\n                2. 欠拟合：当模型处于欠拟合状态时，根本的办法是增加模型复杂度。我们一般有以下一些办法：\n                        增加模型的迭代次数；\n                        更换描述能力更强的模型；\n                        生成更多特征供训练使用；\n                        降低正则化水平。\n                   过拟合：当模型处于过拟合状态时，根本的办法是降低模型复杂度。我们则有以下一些武器：\n                        扩增训练集；\n                        减少训练使用的特征的数量；\n                        提高正则化水平。\n\n        参考资料已经讲的很好，建议深刻理解。\n\n#### 1.7 正则的使用：L1,L2,L-inifity Norm\n        参考资料：\n                https://blog.csdn.net/w5688414/article/details/78046960\n                https://zhuanlan.zhihu.com/p/26884695\n                https://zhuanlan.zhihu.com/p/48426076\n        学习要求：\n                1.l_0范数，l_1范数，l_2范数是什么 ？ 其含义是什么\n                      l_0范数表示向量x中非0元素的个数。\n                      l_1范数表示向量中所有元素绝对值之和。\n                      l_2范数表示向量或矩阵的元素的平方和。\n                1.2 可以了解下L1 LOSS和L2 lOSS\n                    L1 范数损失函数，也被称为最小绝对值偏差(LAD）,最小绝对值误差（LAE）,总的来说，它是把目标值和估计值的绝对差值的总和最小化。\n                    L2 范数损失函数，也被称为最小平方误差（LSE）,总的来说，它是把目标值和估计值的差值的平方和最小化。\n                    对于大多数CNN网络，我们一般是使用L2-loss而不是L1-loss，因为L2-loss的收敛速度要比L1-loss要快得多。\n\n####  1.8 LASSO,Coordinate Descent,ElasticNet\n       说实话，看的不是很懂~  有机会再重新看吧\n       参考资料：\n                https://zhuanlan.zhihu.com/p/46999826\n\n#### 1.9 逻辑回归与最大似然\n\n## 二.SVM与集成模型\n## 三.无监督模型与序列模型\n## 四.深度学习\n## 五.推荐系统与在线学习\n## 六.贝叶斯模型\n## 七.增强学习与其他前沿主题","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudali%2Fmechine_learn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbudali%2Fmechine_learn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudali%2Fmechine_learn/lists"}