长春网站建设公司排名前十,wordpress首页广告,php网站模板制作软件,成都网站制作维护文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程 1.K-近邻算法思想 
假如你有一天来到北京… 文章目录 1.K-近邻算法思想2.K-近邻算法(KNN)概念3.电影类型分析4.KNN算法流程总结5.k近邻算法api初步使用机器学习库scikit-learn1 Scikit-learn工具介绍2.安装3.Scikit-learn包含的内容4.K-近邻算法API5.案例5.1 步骤分析5.2 代码过程    1.K-近邻算法思想 
假如你有一天来到北京你有一些朋友也在北京居住你来到北京之后你也不知道你在北京的哪个区假如你来到了北京南站。 分别问朋友在哪个区距离多远。 根据最近朋友所在区比如丰台区来判断自己是不是也在丰台区。 这就是K近邻算法的思想根据最近距离来判断你属于哪个类别。 根据你的“邻居”来推断出你的类别 
2.K-近邻算法(KNN)概念 
K Nearest Neighbor算法又叫KNN算法这个算法是机器学习里面一个比较经典的算法 总体来说KNN算法是相对比较容易理解的算法 
定义 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别则该样本也属于这个类别。 
来源KNN算法最早是由Cover和Hart提出的一种分类算法 
距离公式 两个样本的距离可以通过如下公式计算又叫欧式距离 关于距离公式会在后面进行讨论   
3.电影类型分析 
假设我们现在有几部电影  
其中 号电影不知道类别如何去预测我们可以利用K近邻算法的思想 我们这里时三列数据属于三维数据的求解过程 比如我们求唐人街探案与二次曝光的距离根据欧氏距离计算如下  
分别计算每个电影和被预测电影的距离然后求解  
然后根据最小距离或最小的几个距离的众数得到唐人街探案属于哪种片子 K5表示根据5部最小距离的电影来判断从这8个样本里面拿其中的5个 在距离最小的5部电影里面3部属于喜剧片2部属于爱情片由众数得知唐人街探案属于喜剧片 
4.KNN算法流程总结 
1计算已知类别数据集中的点与当前点之间的距离 
2按距离递增次序排序 
3选取与当前点距离最小的k个点 
4统计前k个点所在的类别出现的频率 
5返回前k个点出现频率最高的类别作为当前点的预测分类 
5.k近邻算法api初步使用 
机器学习流程  
1.获取数据集 2.数据基本处理 3.特征工程 4.机器学习 5.模型评估 
机器学习库scikit-learn 
1 Scikit-learn工具介绍 机器学习有很多库为什么我们要选这个scikit-learn库呢 1.它是Python语言的机器学习工具 2.Scikit-learn包括许多知名的机器学习算法的实现 3.Scikit-learn文档完善容易上手有丰富的API 
2.安装 
pip install scikit-learn  
安装好之后可以通过以下命令查看是否安装成功 import sklearn 
注安装scikit-learn需要Numpy, Scipy等库 
3.Scikit-learn包含的内容 分类、聚类、回归 特征工程 模型选择、调优 
4.K-近邻算法API 
sklearn.neighbors.KNeighborsClassifier(n_neighbors5)  
参数解析
n_neighbors所选用的近邻数默认 5相当于K.weights预测的权函数概率值。weights的参数设置‘uniform’同一的权重即每个邻域中的所有点都是平均加权的。‘distance’ 这种情况下距离越近权重越大反之距离越远其权重越小。[callable]可调用用户定义的函数它接受一个距离数组并返回一个包含权重的相同形状的数组algorithm 用于计算最近邻居的算法,。有{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}‘auto’      根据样本数据自动刷选合适的算法。‘ball_tree’构建“球树”算法模型。‘kd_tree’ ‘’kd树‘’算法。‘brute’     使用蛮力搜索即或相当于Knn算法需遍历所有样本数据与目标数据的距离进而按升序排序从而选取最近的K个值采用投票得出结果。leaf_size叶的大小针对算法为球树或KD树而言。这个设置会影响构造和查询的速度以及存储树所需的内存。最优值取决于问题的性质。metric用于树的距离度量。默认度量是Minkowskip2等价于标准的欧几里德度量。有关可用度量的列表可以查阅距离度量类的文档。如果度量是“预先计算的”则假定X是距离矩阵在拟合期间必须是平方。pMinkowski度量参数的参数来自sklearn.emeics.pairwise.pairwise_距离。当p1时这等价于使用曼哈顿距离(L1)欧几里得距离(L2)等价于p2时对于任意的p则使用Minkowski_距离(L_P)。metric_params度量函数的附加关键字参数设置应为dict字典形式。n_jobs要为邻居搜索的并行作业的数量。None指1除非在 joblib.parallel_backend背景。-1意味着使用所有处理器若要了解相关的知识应该具体查找一下。拥有的方法
fit(self, X[, y]) 以X为训练数据y为目标值拟合模型get_params(self[, deep])获取此估计器的参数。kneighbors(self[, X, n_neighbors, …])找到点的K邻域。kneighbors_graph(self[, X, n_neighbors, mode])计算X中点的k-邻域(加权)图predict(self, X)预测提供的数据的类标签predict_proba(self, X)返回测试数据X的概率估计。score(self, X, y[, sample_weight])返回给定测试数据和标签的平均精度。set_params(self, \*\*params)设置此估计器的参数。5.案例 
5.1 步骤分析 
1.获取数据集 2.数据基本处理该案例中省略 3.特征工程该案例中省略 4.机器学习 5.模型评估该案例中省略 
5.2 代码过程 
导入模块 
from sklearn.neighbors import KNeighborsClassifier#构造数据集
#x是原始数据特征。y是类别标签目标x  [[0], [1], [2], [3]]   #x是二维数据dataframe数据结构
y  [0, 0, 1, 1]           #y是series数据结构#机器学习 -- 模型训练
# 实例化API
estimator  KNeighborsClassifier(n_neighbors2)
# 使用fit方法进行训练这行代码执行了模型就训练好了estimator.fit(x, y)res  estimator.predict([[1]])
print(res)res2  estimator.predict([[50]])
print(res2)根据训练好的模型预测未知数据所属类别  由上可知达到预期效果。大家觉得机器学习有了python库的加持是不是不太难呢大家一起加油继续后面的机器学习之路欢迎大家点赞评论。