1. 定义:
如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中大多数都是
属于一个类别,那么我就认为我也是属于这个类别的.
a. 语音识别
2. 欧式距离公式:
a (a1, a2, a3)
b (b1, b2, b3)
__________________________________________
d = √ (a1 - b1)^2 + (a2 - b2)^ 2 + (a3 - b3)^2
3. api接口:
from sklearn.neighbors import KNeighborsClassifier
KNeighborsClassifier: 初始化参数:
n_neighbors=5 : 选取K个最相近的点, 选取奇数
实例方法:
fit(x_train, y_train) : 拟合数据 制作模型
score(x_test, y_test) : 计算模型准确率
predict([]): 通过特征值预测结果
demo:
[[3.5 , 1.5 , 2.5, 3.6]] 预测结果
# 导入鸢尾花数据集
from sklearn.datasets import load_iris
# 导入划分数据集的函数
from sklearn.model_selection import train_test_split
# 导入估计器的类
from sklearn.neighbors import KNeighborsClassifier
def knncls():
"""
KNN 算法预测鸢尾花数据集
:return:
"""
# 1.获取鸢尾花数据集
lr = load_iris()
# 2.确认好特征值与目标值
x = lr.data
y = lr.target
# 3. 划分数据集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)
# 4. 实例化出估计器
knn = KNeighborsClassifier(n_neighbors=3)
# 5. 拟合数据
knn.fit(x_train, y_train)
# 6. 计算模型准确率
score = knn.score(x_test, y_test)
if score > 0.9:
print("模型合格 准确率:", score)
predict_x = [[3.5 , 1.5 , 2.5, 3.6]] #杂色的,斑驳的,色彩变换的;
y_predict = knn.predict(predict_x)
print("预测结果:", lr.target_names[int(y_predict)])
else:
print("模型不合格,准确率: ", score)
return None
knncls()
# 假设我的每年里程数 [[40000, 10.525, 0.753]]
# 任务:书写代码
import pandas as pd
#导入分割数据集的函数
from sklearn.model_selection import train_test_split
# 导入估计器
from sklearn.neighbors import KNeighborsClassifier
# 导入归一化对应的类
from sklearn.preprocessing import MinMaxScaler
def knncls():
"""
使用 K-近邻算法对约会数据进行分类
:return:
"""
# 1.获取数据集
dating = pd.read_csv("./dating.txt")
# 2.确定特征值与目标值
x = dating[["milage", "Liters", "Consumtime"]]
y = dating["target"]
# 2.5 添加特征工程
mm = MinMaxScaler(feature_range=(0,1))
x = mm.fit_transform(x)
# 3.分割数据集
x_train,x_test,y_train, y_test = train_test_split(x, y, test_size=0.3)
# 4.实例化估计器对象
knn = KNeighborsClassifier(n_neighbors=7)
# 5.拟合数据
knn.fit(x_train, y_train)
# 6.计算准确度
score = knn.score(x_test, y_test)
print("score : ", score)
# 7.对数据结果进行预测
y_predict = knn.predict([[20000, 10.525, 0.753]])
# 8. 打印预测结果
print("y_predict : ",y_predict)
return None
knncls()