K近邻算法大概是最简单使用的一种分类算法,本次主要是应用Python的Scikit-learn库中的KNeigborsClassifier类和Pandas的Dataframe进行快速实现KN近邻算法。
数据使用的是《Python数据挖掘入门与实践》一书中用到的电离层(Ionosphere)数据,本次代码并无创新,只是在相比作者代码,数据导入部分相对简单。
数据导入
import pandas as pd
import numpy as np
# 读取数据,字段名分别用x0-x34代表,且不以第一列为索引
data = pd.read_csv('ionosphere_data.txt',header=None,names=['x'+str(i) for i in range(35)],index_col=False)
# 将最后一列的列名改为‘y’
data = data.rename(columns={'x34':'y'})
data.round(3).head()
数据展示.png
y列数据转化
因变量y包含两个值分别为‘b’和‘g’,即bad和good,将其转化为可用来进行数据分析的数值型变量0和1
y_dict = {
'g':1,
'b'