当前位置: 首页 > news >正文

医院网站HTML5微信社群营销怎么做

医院网站HTML5,微信社群营销怎么做,软件开发好学吗,长宁区网站建设设系列文章目录及链接 目录 前言 一、K近邻通俗理解及定义 二、原理理解及公式 1、距离度量 四、接口实现 1、鸢尾花数据集介绍 2、API 3、流程 3.1、获取数据 3.2、数据预处理 3.3、特征工程 3.4、knn模型训练 3.5、模型评估 3.6、结果预测 4、超参数搜索-网格搜…系列文章目录及链接 目录 前言 一、K近邻通俗理解及定义 二、原理理解及公式 1、距离度量 四、接口实现 1、鸢尾花数据集介绍 2、API 3、流程 3.1、获取数据 3.2、数据预处理 3.3、特征工程 3.4、knn模型训练 3.5、模型评估 3.6、结果预测 4、超参数搜索-网格搜索 5、优缺点 前言 tips标题前有“***”的内容为补充内容是给好奇心重的宝宝看的可自行跳过。文章内容被“文章内容”删除线标记的也可以自行跳过。“”一般需要特别注意或者容易出错的地方。 本系列文章是作者边学习边总结的内容有不对的地方还请多多指正同时本系列文章会不断完善每篇文章不定时会有修改。 文中为方便理解会将接口在用到的时候才导入实际中应在文件开始统一导入。 一、K近邻通俗理解及定义 1、什么叫k近邻What K-近邻算法K Nearest Neighbor又叫KNN算法。指如果一个样本在特征空间中的k个最相似特征空间中最近邻的样本中的大多数属于某一个类别则该样本也属于这个类别。 如图我离小羽最近所以我也属于武侯区 2、k近邻的目的Why 核心思想根据你的“邻居”的类别来推断出你的类别 通过找到找到样本中离我们最近的K个样本类别中样本数最多的类别就是我的类别 3、怎么做How K-近邻算法流程 计算已知类别数据集中的点已知类别点与当前点待分类点之间的距离按距离递增次序排序选取与当前点距离最小的k个点统计前k个点所在的类别出现的频率返回前k个点出现频率最高的类别作为当前点的预测分类 这里就有两个问题K值怎么取怎么取确定离我最近呢怎么确定距离 一般手动调节K值大小         k 值取得过小容易受到异常点的影响         k 值取得过大样本不均衡的影响 距离计算         欧氏距离距离平方值         曼哈顿距离 距离绝对值         切比雪夫距离维度的最大值         明可夫斯基距离 二、原理理解及公式 1、距离度量 距离度量用于计算给定问题空间中两个对象之间的差异即数据集中的特征。然后可以使用该距离来确定特征之间的相似性 距离越小特征越相似 1.1、欧氏距离Euclidean Distance 空间中两点间的直线距离。一般使用方法 欧式距离也称为l2范数公式 1.2、曼哈顿距离Manhattan Distance 也称为城市街区距离因为两个点之间的距离是根据一个点只能以直角移动计算的。这种距离度量通常用于离散和二元属性这样可以获得真实的路径 欧式距离也称为l1范数公式  1.3、切比雪夫距离Chebyshev Distance 切比雪夫距离也称为棋盘距离二个点之间的距离是其各坐标数值差绝对值的最大值。 欧式距离也称为l-无穷范数公式 1.4、闵氏距离Minkowski闵可夫斯基距离 当p 1 时即为曼哈顿距离 当p 2 时即为欧氏距离注只有欧式距离具有平移不变性 当p ∞时即为切比雪夫距离 三、**算法实现 四、接口实现 1、鸢尾花数据集介绍 1.1、API # API from sklearn.datasets import load_iris 1.2、介绍 鸢尾花数据集共收集了三类鸢尾花即Setosa鸢尾花、Versicolour鸢尾花和Virginica鸢尾花每一类鸢尾花收集了50条样本记录共计150条。 数据集包括4个属性分别为花萼的长、花萼的宽、花瓣的长和花瓣的宽。单位是cm。 iris load_iris()print(鸢尾花数据集的键,iris.keys()) # 数据--特征值目标值目标名描述特征名文件名数据模型名print(iris.data.shape)print(鸢尾花数据集特征值名字是,iris.feature_names) # sepal length 花萼长度、sepal width 花萼宽度、petal length 花瓣长度、petal width 花瓣宽度单位是cmprint(鸢尾花数据集目标值名字是,iris.target_names) # Setosa山鸢尾、Versicolour杂色鸢尾、Virginica维吉尼亚鸢尾 其他属性 print(鸢尾花数据集的返回值\n, iris) # 返回值类型是bunch--是一个字典类型# 既可以使用[]输出也可以使用.输出 print(鸢尾花数据集特征值是,iris[data]) # print(数据集特征值是,iris.data) print(鸢尾花数据集目标值是,iris.target)print(鸢尾花数据集的描述是,iris.DESCR) 1.3、查看数据分布两个特征 import numpy as np import pandas as pd import matplotlib.pyplot as plt np.random.seed(1734)#将生成的交互式图嵌入notebook中 %matplotlib notebook #将生成的静态图嵌入notebook中 %matplotlib inlineplt.rcParams[font.sans-serif] SimHei # 设置字体为SimHei # 显示中文 plt.rcParams[axes.unicode_minus]False # 修复负号问题from sklearn.datasets import load_irisiris load_iris()# 取150个样本取中间两列特征花萼宽度和花瓣长度 xiris.data[0:150,1:3] yiris.target[0:150]#分别取前两类样本0和1 samples_0 x[y0, :]#把y0,即Iris-setosa的样本取出来 samples_1 x[y1, :]#把y1即Iris-versicolo的样本取出来 samples_2 x[y2, :]#把y2即Iris-virginica的样本取出来# 可视化 plt.figure() plt.scatter(samples_0[:,0],samples_0[:,1],markero,colorr) plt.scatter(samples_1[:,0],samples_1[:,1],markerx,colory) plt.scatter(samples_2[:,0],samples_2[:,1],marker*,colorb) plt.xlabel(花萼宽度) plt.ylabel(花瓣长度) plt.show()2、API sklearn.neighbors.KNbeighborsClassifer导入 from sklearn.neighbors import KNeighborsClassifier语法 KNbeighborsClassifer(n_neighbors5algorithmauto)n_neighbors: 默认为5就是K近邻中的K值 Algorithm{auto,ball_tree,kd_tree,brute}auto:可以理解为算法自己决定合适的搜索算法ball_tree:克服kd树高维失效而发明的其构造过程是以质心C和半径r分割样本空间每个节点是一个超球体。kd_tree:构造kd树存储数据以便对其进行快速检索的树形数据结构kd树也就是数据结构中的二叉树。以中值切分构造的树每个结点是一个超矩形在维数小于20时效率高。brute:线性扫描当训练集很大时计算非常耗时 3、流程 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_splitfrom sklearn.neighbors import KNeighborsClassifier 3.1、获取数据 # 载入数据 iris load_iris() # print(iris) 3.2、数据预处理 # 划分数据集 x_train,x_test,y_train,y_test train_test_split(iris.data, iris.target, test_size0.2, random_state1473) 3.3、特征工程 进行KNN时一般要进行无量纲化。 3.4、knn模型训练 # 实例化一个预估器 knn KNeighborsClassifier(n_neighbors3)# 模型训练 knn.fit(x_train, y_train) 3.5、模型评估 # 模型评估# 用模型计算测试值得到预测值 y_pred knn.predict(x_test)# 准确率 print(预测的准确率,knn.score(x_test,y_test))# 一样的哦 from sklearn.metrics import accuracy_score print(预测的准确率,accuracy_score(y_test,y_pred)) 一般用准确率就行 # 将预测值与真实值比较 from sklearn.metrics import classification_report print(classification_report(y_test, y_pred)) 用分类报告【详情请看机器学习四 -- 模型评估2-分类报告】 精确率precision、召回率recall、F1 值F1-score和样本数目support 3.6、结果预测 经过模型评估后通过的模型可以代入真实值进行预测。 4、超参数搜索-网格搜索 网格搜索法Grid Search是一种在机器学习中用于确定最佳模型超参数的方法之一。 超参数是指在训练模型之前需要手动设置的参数。 4.1、API sklearn.model_selection.GridSearchCV导入: from sklearn.model_selection import GridSearchCV语法 gsGridSearchCV(estimator,param_grid,…,cv’3’)estimator要优化的模型对象。param_grid指定参数的候选值范围可以是一个字典或列表。cv交叉验证参数默认None使用三折交叉验证。gs.fit()运行网格搜索gs.best_estimator_返回在交叉验证中选择的最佳估计器。 gs.best_params_返回在交叉验证中选择的最佳参数组合。 gs.best_score_返回在交叉验证中选择的最佳评分。 gs.cv_results_返回一个字典具体用法模型不同参数下交叉验证的结果。 gs.scorer_返回用于评分的评估器。 gs.n_splits_返回交叉验证折叠数。4.2、实践 # 构造参数列表 param {n_neighbors: [3, 5, 10, 12, 15]}# 进行网格搜索cv3是3折交叉验证 gs GridSearchCV(knn, param_gridparam, cv3)gs.fit(x_train, y_train) #你给它的x_train它又分为训练集验证集# 预测准确率为了给大家看看 print(在测试集上准确率, gs.score(x_test, y_test))print(在交叉验证当中最好的结果, gs.best_score_)print(选择最好的模型是, gs.best_estimator_)print(最好的参数是 , gs.best_params_)# print(每个超参数每次交叉验证的结果, gs.cv_results_) 有关交叉验证移步【机器学习四 -- 模型评估1】 5、优缺点 5.1、优点 简单易于理解易于实现分类回归都可以用 5.2、缺点 必须指定K值K值选择不当则分类精度不能保证 需要算每个测试点与训练集的距离当训练集较大时计算量相当大时间复杂度高特别是特征数量比较大的时候。需要大量的内存空间复杂度高。 懒惰算法对测试样本分类时的计算量大内存开销大
http://www.pierceye.com/news/965126/

相关文章:

  • 在那个网站做ppt可以赚钱网页代码怎么看
  • 免费做企业网站广州萝岗网站建设
  • 开奖网站怎么做wordpress添加广告
  • 开网站需要投资多少钱网站设计两边为什么要留白
  • 任丘市做网站价格泰州网络科技有限公司
  • wap网站使用微信登陆推广公司有哪些
  • 深圳分销网站设计制作买了winhost网站空间在哪里登陆
  • 培训网站项目ppt怎么做wordpress主题4mudi
  • 上海专业网站建设市场网站开发验收报告
  • 怎么做网站视频教程做广告牌子
  • 合肥做网站公网站设网页设计
  • 罗田做网站凡科网小程序
  • 玻璃钢产品哪个网站做推广好.加强网站安全建设
  • 扬州公司网站建设网络建设与管理包括哪些方面
  • 我的网站域名福州网站的优化
  • 威海市网站建设微信在线登录平台
  • 2014网站设计成都网站设计合理柚v米科技
  • 建设自己网站需要多钱网站规划与设计就业
  • 用flash做的网站欣赏手机网站图片切换jquery
  • 昆明做网站seo网站推广策略什么时候
  • 网站添加 百度商桥wordpress 友情链接 代码
  • 一鸿建设设计网站百家号排名
  • 网站最新一次改版时间什么意思电商平台应该如何推广
  • 网站设计制作程序网站开发列表
  • 企业网站建设需要哪些费用做算法的网站
  • 很大气的网站 营销js特效网站展示
  • 南宁建站程序成都新线加网站建设
  • 用微软雅黑做网站可以吗wordpress游客发帖插件
  • 网站备案怎样提交管局网页电商设计
  • 郑州华恩科技做网站怎么样网络竞价推广托管公司