import pandas as pd from pandas import Series,DataFrame import numpy as np df=pd.read_table('D:adult.txt',sep=',') df.head() # 特征数据 data = df.iloc[:,:-1].copy() data.head() # 标签数据 target = df[["salary"]].copy() target.head() # 查看总共有多少个职业 ws = data.workclass.unique() ws # 定义转化函数 def convert_ws(item): # np.argwhere函数会返回,相应职业对应的索引 return np.argwhere(ws==item)[0,0] # 将职业转化为职业列表中索引值 data.workclass = data.workclass.map(convert_ws) # 查看职业转化后的数据 data.head() # 需要进行量化的属性 cols = ['education',"marital_status","occupation","relationship","race","sex","native_country"] # 使用遍历的方式对各列属性进行量化 def convert_item(item): return np.argwhere(uni == item)[0,0] for col in cols: uni = data[col].unique() data[col] = data[col].map(convert_item) # 查看对所有列进行量化后的数据 data.head() from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split # 创建模型 knn = KNeighborsClassifier(n_neighbors=8) # 划分训练集与测试集 x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.01) # 对模型进行训练 knn.fit(x_train,y_train) # 使用测试集查看模型的准确度 knn.score(x_test,y_test) # 把所有的数据归一化 # 创建归一化函数 def func(x): return (x-min(x))/(max(x)-min(x)) # 对特征数据进行归一化处理 data[data.columns] = data[data.columns].transform(func) data.head() # 划分训练集与测试集 x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.01) # 创建模型 knn = KNeighborsClassifier(n_neighbors=8) # 训练模型 knn.fit(x_train,y_train) # 使用测试集查看模型的准确度 knn.score(x_test,y_test)
时间: 2024-04-25 13:27:42 浏览: 153
python数据分析与可视化 import pandas as pd import numpy as np import m
这段代码的功能是使用 KNN 算法对成人数据集进行分类。代码中使用 pandas 库读取数据集文件,并将数据分为特征数据和标签数据。然后,对一些属性进行量化处理,使它们能够被算法处理。接着,使用 sklearn 库中的 KNeighborsClassifier 类创建模型,将数据集分为训练集和测试集进行训练和测试。最后,对特征数据进行归一化处理,再次对模型进行训练和测试,并输出模型的准确度。
需要注意的是,代码中的转化函数和归一化函数需要根据实际数据集进行修改。另外,test_size 参数的值为 0.01,表示将数据集中的 1% 作为测试集,你可以根据实际情况进行调整。
阅读全文