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

做go kegg的在线网站红安县建设局网站

做go kegg的在线网站,红安县建设局网站,镜像别人网站做排名的好处,温州建网站哪家强KNN算法 1. sklearn机器学习概述2. KNN算法-分类1 样本距离判断2 KNN 算法原理3 KNN缺点4 API5 sklearn 实现KNN示例6 模型保存与加载葡萄酒(load_wine)数据集KNN算法(1)wine.feature_names:(2)wine.target_names(3)KNN算法实现 1. sklearn机器学习概述 获取数据、数据处理、特…

KNN算法

  • 1. sklearn机器学习概述
  • 2. KNN算法-分类
    • 1 样本距离判断
    • 2 KNN 算法原理
    • 3 KNN缺点
    • 4 API
    • 5 sklearn 实现KNN示例
    • 6 模型保存与加载
    • 葡萄酒(load_wine)数据集KNN算法
      • (1)wine.feature_names:
      • (2)wine.target_names
      • (3)KNN算法实现

1. sklearn机器学习概述

获取数据、数据处理、特征工程后,就可以交给预估器进行机器学习,流程和常用API如下。

1.实例化预估器(估计器)对象(estimator), 预估器对象很多,都是estimator的子类(1)用于分类的预估器sklearn.neighbors.KNeighborsClassifier k-近邻sklearn.naive_bayes.MultinomialNB 贝叶斯sklearn.linear_model.LogisticRegressioon 逻辑回归sklearn.tree.DecisionTreeClassifier 决策树sklearn.ensemble.RandomForestClassifier 随机森林(2)用于回归的预估器sklearn.linear_model.LinearRegression线性回归sklearn.linear_model.Ridge岭回归(3)用于无监督学习的预估器sklearn.cluster.KMeans 聚类
2.进行训练,训练结束后生成模型estimator.fit(x_train, y_train)
3.模型评估(1)方式1,直接对比y_predict = estimator.predict(x_test)y_test == y_predict(2)方式2, 计算准确率accuracy = estimator.score(x_test, y_test)
4.使用模型(预测)
y_predict = estimator.predict(x_true)

2. KNN算法-分类

1 样本距离判断

	明可夫斯基距离欧式距离,明可夫斯基距离的特殊情况 (平方和开根号)曼哈顿距离,明可夫斯基距离的特殊情况 (绝对值之和)

两个样本的距离公式可以通过如下公式进行计算,又称为欧式距离。
在这里插入图片描述
(1)欧式距离
在这里插入图片描述
2)曼哈顿距离
在这里插入图片描述
在这里插入图片描述
(3)其他距离公式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 KNN 算法原理

K-近邻算法(K-Nearest Neighbors,简称KNN),根据K个邻居样本的类别来判断当前样本的类别;

如果一个样本在特征空间中的 k个最相似(最邻近)样本中的大多数属于某个类别,则该类本也属于这个类别

比如: 有10000个样本,选出7个到样本A的距离最近的,然后这7个样本中假设:类别1有2个,类别2有3个,类别3有2个.那么就认为A样本属于类别2,因为它的7个邻居中 类别2最多(近朱者赤近墨者黑)
在这里插入图片描述
使用KNN算法预测《唐人街探案》电影属于哪种类型?分别计算每个电影和预测电影的距离然后求解:
在这里插入图片描述

3 KNN缺点

缺点:
-(1) 对于大规模数据集,计算量大,因为需要计算测试样本与所有训练样本的距离。

  • (2)对于高维数据,距离度量可能变得不那么有意义,这就是所谓的“维度灾难”
  • (3)需要选择合适的k值和距离度量,这可能需要一些实验和调整
  • (4)如果k值取太小会导致噪声影响,k值为1是只会由与测试值最近的决定,k值取大了就会导致维度灾难,k值取值为训练特征总数时,就会导致有训练集中数量多的决定预测值

4 API

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, algorithm=‘auto’)
参数:
(1)n_neighbors:
int, default=5, 默认情况下用于kneighbors查询的近邻数,就是K
(2)algorithm:
{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’。找到近邻的方式,注意不是计算距离 的方式,与机器学习算法没有什么关系,开发中请使用默认值’auto’
方法:
(1) fit(x, y)
使用X作为训练数据和y作为目标数据
(2) predict(X) 预测提供的数据,得到预测数据

5 sklearn 实现KNN示例

用KNN算法对鸢尾花进行分类

# 引入KNN算法的库
from sklearn.neighbors import KNeighborsClassifier
# 引入鸢尾花数据集
from sklearn.datasets import load_iris
# 引入划分数据集库
from sklearn.model_selection import train_test_split
# 引入标准化库
from sklearn.preprocessing import StandardScaler# 获取鸢尾花数据集的特征值和目标值
x,y=load_iris(return_X_y=True)#return_X_y:表示只返回特征值和目标值
# 训练集划分
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,shuffle=True,random_state=22)
# 训练集和测试集标准化
scaler=StandardScaler()
x_train=scaler.fit_transform(x_train)#可以获取标准化后的的信息
x_test=scaler.transform(x_test)#使用x_trian的均值和方差
# 建立KNN算法模型
model=KNeighborsClassifier(n_neighbors=5)
# 模型训练
model.fit(x_train,y_train)
#模型评估
score=model.score(x_test,y_test)
print(score)
#模型预测
y_pred=model.predict(x_test)
print(y_pred)
print(y_test)
'''
0.9333333333333333
[0 2 1 2 1 1 1 1 1 0 2 1 2 2 0 2 1 1 1 1 0 2 0 1 2 0 2 2 2 2]
[0 2 1 2 1 1 1 2 1 0 2 1 2 2 0 2 1 1 2 1 0 2 0 1 2 0 2 2 2 2]
'''
#推理模型(生产)
x_new=[[5.1,2.5,4.4,1.3],[5,4.2,1.2,4.2],[2.3,4.5,1.2,3.2],[2.75,2.3,1.2,4.5]]
x_new=scaler.transform(x_new)
y_new=model.predict(x_new)
print(y_new)
# [1 2 0 2]

步骤:

  • (1)加载数据集
  • (2)划分数据集
  • (3)数据集标准化
  • (4)模型训练
  • (5)模型预测与模型评估
  • (6)推理模型(生产)
    注意:
  • (1)一般对模型进行训练时都要现将数据集进行划分
  • (2)进行标准化时训练集fit,transform,fit_transform都可以用,但测试集只能能用transform,原因是fit,fit_transform可以将进行标准化的数据的信息(如均值和方差)计算出来,而我们测试时使用的是训练的信息才能得到真实的值

6 模型保存与加载

import joblib
保存模型
joblib.dump(estimator, “my_ridge.pkl”)
加载模型
estimator = joblib.load(“my_ridge.pkl”)
#使用模型预测
y_test=estimator.predict([[0.4,0.2,0.4,0.7]])
print(y_test)

代码如下:

# 引入KNN算法的库
from sklearn.neighbors import KNeighborsClassifier
# 引入鸢尾花数据集
from sklearn.datasets import load_iris
# 引入划分数据集库
from sklearn.model_selection import train_test_split
# 引入标准化库
from sklearn.preprocessing import StandardScaler
import joblib
def train():# 获取鸢尾花数据集的特征值和目标值x,y=load_iris(return_X_y=True)#return_X_y:表示只返回特征值和目标值# 训练集划分x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,shuffle=True,random_state=22)# 训练集和测试集标准化scaler=StandardScaler()x_train=scaler.fit_transform(x_train)#可以获取标准化后的的信息x_test=scaler.transform(x_test)#使用x_trian的均值和方差# 建立KNN算法模型model=KNeighborsClassifier(n_neighbors=5)# 模型训练model.fit(x_train,y_train)#模型评估score=model.score(x_test,y_test)print(score)#模型预测y_pred=model.predict(x_test)print(y_pred)print(y_test)'''0.9333333333333333[0 2 1 2 1 1 1 1 1 0 2 1 2 2 0 2 1 1 1 1 0 2 0 1 2 0 2 2 2 2][0 2 1 2 1 1 1 2 1 0 2 1 2 2 0 2 1 1 2 1 0 2 0 1 2 0 2 2 2 2]'''# 模型保存joblib.dump(model,"./src/model/knn.pkl")joblib.dump(scaler,"./src/model/knn_scaler.pkl")def detect():#模型加载model=joblib.load("./src/model/knn.pkl")scaler=joblib.load("./src/model/knn_scaler.pkl")#推理模型(生产)x_new=[[5.1,2.5,4.4,1.3],[5,4.2,1.2,4.2],[2.3,4.5,1.2,3.2],[2.75,2.3,1.2,4.5]]x_new=scaler.transform(x_new)y_new=model.predict(x_new)print(y_new)# [1 2 0 2]
if __name__=="__main__":train()detect()

葡萄酒(load_wine)数据集KNN算法

(1)wine.feature_names:

[‘alcohol’, ‘malic_acid’, ‘ash’, ‘alcalinity_of_ash’, ‘magnesium’, ‘total_phenols’, ‘flavanoids’, ‘nonflavanoid_phenols’,‘proanthocyanins’, ‘color_intensity’, ‘hue’, ‘od280/od315_of_diluted_wines’, ‘proline’]

以下是这些葡萄酒相关术语的翻译及简要说明:

alcohol - 酒精(葡萄酒中的酒精含量)

malic_acid - 苹果酸(葡萄酒中的天然有机酸)

ash - 灰分(燃烧后残留的无机物含量)

alcalinity_of_ash - 灰分碱度(灰分的碱性程度)

magnesium - 镁(矿物质含量)

total_phenols - 总酚(影响风味和抗氧化性的化合物)

flavanoids - 黄酮类化合物(多酚类物质,与颜色和健康益处相关)

nonflavanoid_phenols - 非黄酮酚(其他酚类物质)

proanthocyanins - 原花青素(缩合单宁,影响口感)

color_intensity - 颜色强度(葡萄酒色泽的深浅)

hue - 色调(颜色的类型,如红/紫/棕等)

od280/od315_of_diluted_wines - 稀释葡萄酒的OD280/OD315值(紫外吸光度比值,反映酚类物质浓度)

proline - 脯氨酸(氨基酸,与葡萄酒的氮代谢相关)

(2)wine.target_names

[‘class_0’ ‘class_1’ ‘class_2’]
class_0

葡萄品种: Barbera(巴贝拉)

特点: 高酸度、低单宁,通常酿造果香浓郁的红葡萄酒。

class_1

葡萄品种: Barolo(巴罗洛,由 Nebbiolo 内比奥罗葡萄酿造)

特点: 高单宁、高酸度,酿造复杂、陈年潜力强的顶级红葡萄酒。

class_2

葡萄品种: Grignolino(格丽尼奥里诺)

特点: 轻酒体、高酸度,常酿造清新风格的红葡萄酒或桃红葡萄酒。

(3)KNN算法实现

# 引入KNN算法的库
from sklearn.neighbors import KNeighborsClassifier
# 引入葡萄酒数据集
from sklearn.datasets import load_wine
# 引入划分数据集库
from sklearn.model_selection import train_test_split
# 引入标准化库
from sklearn.preprocessing import StandardScaler
import joblib
def train():# wine=load_wine()x,y=load_wine(return_X_y=True)# print(x)print(x.shape)x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,shuffle=True,random_state=22)print(x_train.shape)scaler=StandardScaler()x_train=scaler.fit_transform(x_train)x_test=scaler.transform(x_test)model=KNeighborsClassifier(n_neighbors=5)model.fit(x_train,y_train)y_pred=model.predict(x_test)print(y_pred)score=model.score(x_test,y_test)print(score)'''[1 2 2 2 0 1 0 1 2 1 1 1 0 0 2 0 0 0 2 2 0 1 2 1 1 2 0 1 2 2 1 1 2 1 0 2]
0.9166666666666666'''joblib.dump(model,"./src/model/knn_wine_model.pkl")joblib.dump(scaler,"./src/model/knn_wine_scaler.pkl")
def detect():model=joblib.load("./src/model/knn_wine_model.pkl")scaler=joblib.load("./src/model/knn_wine_scaler.pkl")x_new=[[1.2,4.5,2.3,1.2,2.3,2.6,1.2,0.3,0.2,0.5,1.2,1.4,2.3]]x_new=scaler.transform(x_new)y_new=model.predict(x_new)print(y_new)#[1]if __name__=="__main__":train()detect()

文章转载自:

http://xCU9hE66.wjLnz.cn
http://3uOQ7n7E.wjLnz.cn
http://nw1YW41R.wjLnz.cn
http://Gj6ND8BJ.wjLnz.cn
http://NYgdi0S9.wjLnz.cn
http://74c5FvOo.wjLnz.cn
http://ojZ5LPXP.wjLnz.cn
http://fW3T4fbb.wjLnz.cn
http://2cM84yws.wjLnz.cn
http://FjlNFuSJ.wjLnz.cn
http://iZO06nzr.wjLnz.cn
http://fFw6kLyI.wjLnz.cn
http://dijC2fpb.wjLnz.cn
http://8rxbtwfW.wjLnz.cn
http://AwPTs6LA.wjLnz.cn
http://vA8VpuRq.wjLnz.cn
http://Ph3LU9GC.wjLnz.cn
http://4HHw4SaQ.wjLnz.cn
http://rWbA99Ow.wjLnz.cn
http://Zt2po156.wjLnz.cn
http://jXqMWxr5.wjLnz.cn
http://bBGvgh80.wjLnz.cn
http://ZtTWM42l.wjLnz.cn
http://GEUrfvkC.wjLnz.cn
http://SijtOKZg.wjLnz.cn
http://BTPPHVyn.wjLnz.cn
http://VVBaWvV6.wjLnz.cn
http://8QzlGWT6.wjLnz.cn
http://xCNZnbHQ.wjLnz.cn
http://8PY2MFk9.wjLnz.cn
http://www.dtcms.com/wzjs/696455.html

相关文章:

  • 枣庄做网站做网站要几个部门组成
  • 个人创建网站我要装修网
  • 陕西省信用建设门户网站桐乡网站二次开发
  • 企业宣传网站有哪些泰州网站建设公司哪家专业
  • 残疾人信息无障碍网站建设找人设计网页多少钱
  • 教育门户网站源码最新网页游戏传奇
  • 网站设置密码景安网站备案查询
  • 个人网站搭建详细步骤wordpress 用什么服务器
  • 免费门户网站模板下载如何提升进入网站的速度
  • 宁波专业品牌网站制作外包电脑端网站一般做多宽最好
  • 南京百度网站建设汕头免费建设网站制作
  • 做网站外包是什么意思福建省建设集团有限公司官网
  • 多模室内设计网站wordpress cnzz插件
  • 做视频网站 带宽计算图书馆网络规划与设计
  • 中国建设银行北京天竺支行网站游戏代理加盟平台
  • 定制化网站开发一般多少钱河南做网站高手排名
  • 过时的网站高端网站建设设计公司有哪些
  • 网站制作的内容包含学网站论坛
  • 太原网站建设鸣蝉企业网站备个人
  • 专业网站定制 北京衡水市网站建设
  • 创意设计椅子昆明自动seo
  • 温州微网站制作哪里有行情软件免费下载
  • 建设网站怎么入账电脑平面制图入门教程
  • 手机网站设计宽度wordpress无法发邮件
  • 学做美食视频网站有哪些上海公司做网站
  • 什么网站可以请人做软件下载做服装网站需要什么
  • 做网站用什么服务器wordpress 外贸
  • 医院网站那里填评价做个商城网站怎么做便宜
  • 网站ip地址大全东莞网站案例营销
  • 怎么看网站是否被k过江西省建设厅官方网站