首页 python和人工智能正文

KNN k近邻算法初步使用教程

首先需要安装 : 

pip3 install  scikit-learn

然后引用:

from sklearn.neighbors import KNeighborsClassifier

基本测试:

x = [[1], [2], [0], [0]]
y = [1, 1, 0, 0]

# 实例化训练模型

e = KNeighborsClassifier(n_neighbors=2)

# 调用方法进行训练

e.fit(x, y)

# 预测其他值
ret = e.predict([[3]])
print(ret)

完整案例:

1、引用:

matplotlib.pyplot plt 
pandas pd
sklearn.model_selection train_test_split
sklearn.datasets load_iris, fetch_20newsgroups

2、数据获取

iris = load_iris()

数据说明:

data  特征值数据
featrue_names  特征值名称

target  目标值
target_names    目标值名称
DESCR  描述

3、数据拆分

x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target,random_state=20,test_size=0.2)

4、数据预处理

数据预处理   归一化    稳定性比较差  容易受异常点影响   基本不用
sklearn.preprocessing MinMaxScaler
print(iris.data)
transer = MinMaxScaler(feature_range=(0, 1))
data = transer.fit_transform(iris.data)
print(data)
数据预处理  标准化  变化为 均值1 标准差1 的范围内,异常点影响小,以后就用这个
sklearn.preprocessing StandardScaler

transer2 = StandardScaler()
data2 = transer2.fit_transform(iris.data)
print(data2)
x_train = transer2.fit_transform(x_train)
x_test = transer2.fit_transform(x_test)

5、训练模型

e = KNeighborsClassifier(n_neighbors=5)
e.fit(x_train, y_train)  模型训练

6、模型评估

y_pre = e.predict(x_test)
print("预测值:\n", y_pre)

ret = e.score(x_test, y_test)
print("准确率:\n", ret)


优缺点:

大数据量速度慢,高维度数据拟合不好,稀疏数据束手无策

交叉验证网格搜索模型  参数调优

sklearn.model_selection GridSearchCV
e = KNeighborsClassifier(=)
param_grid = {: [, , , ]}  GridSearchCV(e, param_grid,=)  e.fit(x_train, y_train)
y_pre = e.predict(x_test)
(, y_pre)

ret = e.score(x_test, y_test)
(, ret)

(, e.best_estimater_)
(, e.best_score_)
(, e.cv_results_)


版权声明本文仅代表作者观点,不代表本站立场。本文系作者授权发表,未经许可,不得转载。图文来源网络,侵权删!

搜索