一、 读取数据
使用sklearn自带的鸢尾花数据集
from sklearn.datasets import load_iris
data = load_iris()
二、处理数据
对特征进行处理,可添加或去除一定特征,由于是自带的规范数据集,没有进行处理
三、分割训练集和测试集
一般使用75%作为训练集,25%作为测试集
# 进行数据的分割训练集合测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
四、调用算法API
knn = KNeighborsClassifier(n_neighbors=15)#超参数
五、评估
# 得出预测结果
y_predict = knn.predict(x_test)
print("预测的目标签到位置为:", y_predict)
# 得出准确率
print("预测的准确率:", knn.score(x_test, y_test))
具体如下:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
def knncls():
"""
K-近邻鸢尾花
1、读取数据
2、处理数据
3、进行数据的分割训练集合测试集
4、算法处理(超参数)
5、评估
:return:None
"""
# 读取数据
data = load_iris()
# 进行数据的分割训练集合测试集
y = data.target
x = data.data
# 进行数据的分割训练集合测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
# 特征工程(标准化)
std = StandardScaler()
# 对测试集和训练集的特征值进行标准化
x_train = std.fit_transform(x_train)
x_test = std.transform(x_test)
# 进行算法流程 # 超参数
knn = KNeighborsClassifier(n_neighbors=15)
# fit, predict,score
knn.fit(x_train, y_train)
# 得出预测结果
y_predict = knn.predict(x_test)
print("预测的目标签到位置为:", y_predict)
# 得出准确率
print("预测的准确率:", knn.score(x_test, y_test))
return None
if __name__ == '__main__':
knncls()