ML 100Day sixday KNN算法

1、KNN算法:k最近邻(K-NearestNeighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中的k个最相似(即特征空间中的最临近)的样本中大多数属于某一个类别,则该样本也属于这个类别。KNN算法不仅可以用于分类,还可以用于回归,通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值付给该样本,作为预测值

在这里插入图片描述
在这里插入图片描述
最后一步是投票选出出现频率最大的
“”"
NearestNeighbors用到的参数解释
n_neighbors=5,默认值为5,表示查询k个最近邻的数目
algorithm=‘auto’,指定用于计算最近邻的算法,auto表示试图采用最适合的算法计算最近邻
fit(X)表示用X来训练算法
“”"

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#导入数据集
df = pd.read_csv(‘C:\Users\Administrator\Desktop\ml 100day\Social_Network_Ads.csv’)
#划分X和Y
#选区相应的X和Y的serise,并转换成矩阵
X = df.iloc[:,[2,3]].values
Y = df.iloc[:,4].values
#分测试集和
from sklearn.model_selection import train_test_split
#创建对象
X_train,X_test,Y_train,Y_tes = train_test_split(X,Y,test_size=0.25,random_state= 0)
#数据归一化
from sklearn.preprocessing import StandardScaler
#创建标准化对象
sc = StandardScaler()
#数据归一化
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
#使用KNN算法训练模型
from sklearn.neighbors import KNeighborsClassifier
#创建对象KNN
“”"
NearestNeighbors用到的参数解释
n_neighbors=5,默认值为5,表示查询k个最近邻的数目
algorithm=‘auto’,指定用于计算最近邻的算法,auto表示试图采用最适合的算法计算最近邻
fit(X)表示用X来训练算法
“”"
knn = KNeighborsClassifier(n_neighbors=5,metric=‘minkowski’,p=2)
#为什么使用Y_train训练呢?
knnClassifier = knn.fit(X_train,Y_train)
#预测结果
y_pred = knnClassifier.predict(X_test)
#评估预测,我们预测了测试集,现在我们评估模型是否正确的学习和理解,这个混淆举证包含了我们正确和错误的预测
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(Y_tes,y_pred)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章