如何使用 K-nearest neighbour 训练和测试数据?
Posted
技术标签:
【中文标题】如何使用 K-nearest neighbour 训练和测试数据?【英文标题】:How do I train and test data using K-nearest neighbour? 【发布时间】:2021-05-22 18:59:37 【问题描述】:我正在尝试使用 k 近邻进行机器学习算法来训练程序。我有一个训练数据和一个测试数据,这是两个单独的 csv 文档,但是大多数机器学习算法都是训练测试拆分方法,这不是我需要的,因为训练测试拆分是在一个文档上进行训练和测试,但我正在对一个文档进行训练,并在一个文档上进行测试,所以我一直在思考如何使用训练数据和测试数据进行训练和测试。
以下是我从互联网上参考的一组代码。它没有显示错误,但也没有任何结果。谁能告诉我下面的这个python代码是否正确?有谁知道 k 最近邻的机器学习算法的正确代码?
https://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings
#K-最近邻
从 sklearn.neighbors 导入 KNeighborsClassifier
将熊猫导入为 pd
从 sklearn.model_selection 导入 train_test_split
从 sklearn.preprocessing 导入 StandardScaler
从 sklearn.metrics 导入混淆矩阵
从 sklearn.metrics 导入 f1_score
从 sklearn.metrics 导入 accuracy_score
从 sklearn.datasets 导入 load_iris
从 sklearn 导入指标
从 sklearn.model_selection 导入 train_test_split
从 sklearn.preprocessing 导入 StandardScaler
iris = load_iris()
X = iris.data
y = iris.target
iris.data = 'train_data.csv'
iris.target = 'test_data.csv'
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(X, y)
y_pred = knn.predict(X)
打印(metrics.accuracy_score(y, y_pred))
plt.show()
【问题讨论】:
【参考方案1】:在这段代码中有一些不正确的地方。
最后一行:plt是matplotlib.pyplot的缩写,但是你没有导入matplotlib是报错,导入matplotlib的代码如下:
将 matplolib.pyplot 导入为 plt
此外,为了预测测试集上的 Y 值,您必须使用测试集 X 值而不是训练集 X 值;
您还必须在 X_Tr(training set) 和 X_Te(test set) 中拆分 X,同样您必须在两个列表中分隔 Y 值:YTr(training set) 和 YTe(test set)。 我希望我对您有所帮助。
【讨论】:
【参考方案2】:首先使用您应该编辑您的问题,并在编辑时查看写作部分上方的框
选择括号来放置您的代码或在代码的开头和结尾使用 3 个 `,
现在是问题本身
1- 导入两个 csv 文件使用pandas.csv_read("/direction/to/it")
2- 合并他们在一起
要合并它们,您可以使用 pandas 功能,例如 here 中的以下示例:
df1 = pd.DataFrame("col1": [0, 1], "col_left": ["a", "b"])
df2 = pd.DataFrame("col1": [1, 2, 2], "col_right": [2, 2, 2])
pd.merge(df1, df2, on="col1", how="outer", indicator=True)
col1 col_left col_right _merge
0 0 a NaN left_only
1 1 b 2.0 both
2 2 NaN 2.0 right_only
3 2 NaN 2.0 right_only
现在使用df.iloc["what_you_wish"]
并输入train_test_split
但是,另一种方法是只生成随机索引并使用它们而不是 train_test_split
,但请记住,您也应该考虑类,否则您将有不标准的数据分离。
【讨论】:
以上是关于如何使用 K-nearest neighbour 训练和测试数据?的主要内容,如果未能解决你的问题,请参考以下文章
R语言应用实战系列-基于R的人工神经网络ANN算法和KNN算法(k-Nearest Neighbour)
数据标准化后如何使用 K-Nearest Neighbors (KNN) 模型进行预测 (Python)
如何使用 Scipy 的 Kd-tree 函数来加速 K-Nearest Neighbors (KNN) [关闭]