iis7.5网站权限配置,建站网站免费,服务范围 网站建设公司,网站全网推广好还是做58精准好K-Nearest Neighbors#xff08;K-近邻算法#xff0c;简称KNN#xff09;是一种基本的监督学习算法#xff0c;用于解决分类和回归问题。KNN的核心思想是基于距离度量#xff0c;在特征空间中找到最近的K个样本#xff0c;然后使用它们的标签进行决策。以下是KNN的基本概…K-Nearest NeighborsK-近邻算法简称KNN是一种基本的监督学习算法用于解决分类和回归问题。KNN的核心思想是基于距离度量在特征空间中找到最近的K个样本然后使用它们的标签进行决策。以下是KNN的基本概念和工作原理
工作原理
距离度量 KNN使用欧氏距离或其他距离度量方法来计算样本之间的距离。选择K值 选择一个合适的K值表示在决策时考虑的最近邻居的数量。投票决策 对于分类问题根据K个最近邻居中出现最频繁的类别进行决策对于回归问题根据K个最近邻居的平均值进行决策。
KNN的优缺点
优点
简单且易于理解。适用于小型数据集和特征数较少的问题。无需训练阶段模型保存了整个训练集。
缺点
对于大型数据集预测速度较慢。对于高维数据容易受到维数灾难的影响。对噪声和冗余特征敏感。
KNN通常在小型数据集和相对较简单的问题中表现良好但在处理大型高维数据时可能会面临挑战。在实际应用中合适的K值的选择和数据的预处理对KNN的性能影响较大。 需求
预测哪些用户会购买SUV。 代码
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import confusion_matrix, accuracy_score, classification_report# 加载数据
dataset pd.read_csv(Social_Network_Ads.csv)
X dataset.iloc[:, [2, 3]].values
y dataset.iloc[:, 4].values# 划分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.25, random_state0)# 特征标准化
sc StandardScaler()
X_train sc.fit_transform(X_train)
X_test sc.transform(X_test)# 创建并训练KNN模型
k_value 5
classifier KNeighborsClassifier(n_neighborsk_value, metricminkowski, p2)
classifier.fit(X_train, y_train)# 预测
y_pred classifier.predict(X_test)# 将预测值添加到数据集
dataset[Predicted] classifier.predict(sc.transform(X))# 将包含预测值的数据集写入新的 CSV 文件
dataset.to_csv(Social_Network_Ads_KNN_Pred.csv, indexFalse)# 混淆矩阵及模型评估
cm confusion_matrix(y_test, y_pred)
accuracy accuracy_score(y_test, y_pred)
report classification_report(y_test, y_pred)# 展示混淆矩阵及模型评估结果
print(Confusion Matrix:\n, cm)
print(\nAccuracy:, accuracy)
print(Classification Report:\n, report)结果
Accuracy: 0.93 结论
看文件Social_Network_Ads_KNN_Pred.csv的Predicted列预测结果基本满意。