#Python3入门机器学习之2.最基础的分类算法-k近邻算法
_凡一
这个作者很懒,什么都没留下…
展开
-
Python3入门机器学习之2.9更多有关k近邻算法的思考
Python3入门机器学习2.9 更多有关k近邻算法的思考通过之前的学习,我们知道了k近邻算法是可以解决分类问题的,并且天然可以解决多分类问题。不仅如此,k近邻算法思想简单、效果强大。不仅如此,我们还可以使用k近邻算法解决回归问题。事实上scikit-learn为我们封装了KNeighborsRegressor这个类,就是为我们解决回归问题。k近邻算法也是有缺点的:缺点1:效率低下。比如训练集有m个样本,n个特征,则预测每一个新的数据,需要O(m*n)的时间复杂度。但是也有优化的措施,比如使用树原创 2020-06-21 14:10:52 · 113 阅读 · 0 评论 -
Python3入门机器学习之2.8scikit-learn中的Scaler
Python3入门机器学习2.8 scikit-learn中的Scaler1.对测试数据如何归一化?对于我们的原始数据集我们要将它拆分成训练数据集和测试数据集,如果我们要用归一化后的数据来训练我们的模型的话,显然我们首先要对训练数据集进行归一化处理。比如说我们进行均值标准差归一化这样的方法,我们相应就要求出来我们训练数据集对应的均值mean_train,以及训练数据集对应的标准差std_train。当我们这样归一化之后,我们将这样的训练数据集用于训练模型,最终我们要使用获得的这个模型来预测数据,那么对原创 2020-06-21 13:49:17 · 868 阅读 · 0 评论 -
Python3入门机器学习之2.7数据归一化
Python3入门机器学习2.7 数据归一化数据归一化的作用:将所有的数据映射到同一尺度。1.最值归一化:通常归一化映射方式中最简单的一种方式被称作:最值归一化(normalization)。也就是把所有的数值映射到0–1之间。最值归一化适用于分布有明显边界的情况。它有一个明显的缺点,就是受outlier(极端值)的影响比较大。相应的一个改进的方式是用均值标准差归一化。2.均值标准差归一化:均值标准差归一化(standardlization):把所有的数据归一到均值为0标准差为1的分布中。原创 2020-06-14 20:28:30 · 188 阅读 · 0 评论 -
Python3入门机器学习之2.6网格搜索与k近邻算法中更多超参数
Python3入门机器学习2.6 网格搜索与k近邻算法中更多超参数1.网格搜索过程:为了让我们更加方便地来使用网格搜索的方式寻找最佳的超参数,sklearn为我们封装了一个专门的网格搜索的方式,叫做“Grid Search”。以下是网格搜索的过程:(1).准备数据,依然是手写数字数据集。如下:(2).在使用Grid Search之前我们要定义搜索的参数,如下:param_grid = [ { 'weights': ['uniform'], 'n_n原创 2020-06-14 17:48:51 · 332 阅读 · 0 评论 -
Python3入门机器学习之2.5超参数
Python3入门机器学习2.5 超参数1.什么是超参数?对于kNN算法中的参数k传入什么值最好呢?这就是机器学习中的超参数问题。什么是超参数?简单理解就是在我们运行机器学习算法之前需要指定的参数,kNN算法中的k就是一个最为典型的超参数。2.超参数和模型参数的区别:超参数:在算法运行前需要决定的参数。模型参数:算法过程中学习的参数。kNN算法中没有模型参数,kNN算法中的k是典型的超参数。3.寻找最好的k:数据准备,使用的数据集为sklearn为我们提供的手写数字数据集,如下:通过原创 2020-06-12 21:47:11 · 402 阅读 · 0 评论 -
Python3入门机器学习之2.4分类准确度
Python3入门机器学习2.4 分类准确度在上一节中,我们用这样一行代码来求预测的准确率:sum(y_predict == y_test)/len(y_test)我们可以将它封装成一个函数。(1).封装求分类准确度的函数:将它封装成一个函数,写在metrics(衡量指标)模块下,函数名为“accuracy_score”。具体的函数封装如下:import numpy as npdef accuracy_score(y_true, y_predict): '''计算y_true和y原创 2020-06-11 14:34:29 · 1339 阅读 · 0 评论 -
Python3入门机器学习之2.3训练数据集,测试数据集
Python3入门机器学习2.3 训练数据集,测试数据集(1).判断机器学习算法的性能:思考这样一个问题,如果所有原始数据都当做训练数据,训练出一个模型,然后用这个模型预测新来的数据所属的类型。训练得到的模型的意义在于在真实环境中使用,但是如果得到的模型很差怎么办?真实的环境难以拿到真实的label(标签)怎么办?以上问题都在告诉我们,其实我们用所有的原始数据都去当训练集来直接训练出模型投入到生产的环境中,这样的做法是不恰当的。那么如何改进这个问题?改进这个问题的一个最简单的方法被称之为是训练和测原创 2020-06-11 11:56:40 · 4492 阅读 · 0 评论 -
Python3入门机器学习之2.2scikit-learn中的机器学习算法的封装
Python3入门机器学习2.2 scikit-learn中的机器学习算法的封装可以说kNN算法是一个不需要训练过程的算法。换句话说,输入样例可以直接送给训练数据集,在这个数据集上直接找到离输入样例最近的k个点,然后投票选出来得票数最高的标签就是结果了。k近邻算法是非常特殊的,可以被认为是没有模型的算法。但是为了和其它算法统一,可以认为训练数据集就是模型本身。这样每一个算法都会有fit(拟合)这个过程。如下图所示:1.我们可以使用scikit-learn封装好的机器学习的算法进行预测,过程如下:原创 2020-06-10 14:44:28 · 491 阅读 · 0 评论 -
Python3入门机器学习之2.1k近邻算法基础
Python3入门机器学习2.1 k近邻算法基础什么是k近邻算法?K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。所谓K近邻算法,即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。下面通过一个实例来进一步说明k近邻算法:(1).首先准备实验所需要的数据集。raw_data_X表示样本的特征,raw_d原创 2020-06-03 10:04:13 · 135 阅读 · 0 评论