【发布时间】:2020-07-02 00:02:46
【问题描述】:
我想写一个函数来返回一个包含多数类的数字。
我编写了以下函数来计算距离。
距离 metric给定(Euclid、Manthan等)。
xTrainInstances - 是一个包含所有火车实例的数据框
xSeriesTestVector - 是一个 Series 对象,来自测试集
def calc_distances(xSeriesTestVector, xTrainInstances, distanceMetric):
distances = np.zeros(xTrainInstances.shape[0])
for i in range(xTrainInstances.shape[0]):
distances[i] = distanceMetric(xSeriesTestVector, xTrainInstances.iloc[i])
return distances
假设我有以下数据框,幸存的列是我的类别。
Survived
PassengerId
1 0
2 1
3 1
4 1
5 0
我的问题
我想知道如何实现以下功能? 我卡住了,distances 给我返回了一个距离数组,从 predict_one_instance,我想返回正确的类别
- xSeriesTestVector - 是一个 Series 对象,来自待分类的测试集
- xTrainInstances - 一个数据框,包括所有要比较的火车实例
- yTrainCategories - 包含所有火车类别的数据框
- distanceMetric - 距离函数的名称,不是字符串
-
k - 最近邻的数量(我们从 k 票中选择多数)
Pclass SibSp Parch Fare Age pid 1 3 1 0 7.2500 22.0 2 1 1 0 71.2833 38.0 3 3 0 0 7.9250 26.0 4 1 1 0 53.1000 35.0 5 3 0 0 8.0500 35.0 Pclass SibSp Parch Fare Age pid 1 3 1 0 7.2500 22.0 2 1 1 0 71.2833 38.0 3 3 0 0 7.9250 26.0 4 1 1 0 53.1000 35.0 5 3 0 0 8.0500 35.0 def predict_one_instance(xSeriesTestVector, xTrainInstances,yTrainCategories,distanceMetric,k): distances = calc_distances(xSeriesTestVector, xTrainInstances,distanceMetric)
【问题讨论】:
-
到目前为止你尝试过什么?我知道您遇到了困难,但是您的 predict_one_instance 实施的哪一部分不适合您?
-
顺便说一句,变量和函数名称应该遵循
lower_case_with_underscores样式。
标签: python machine-learning knn