Я хотел бы написать функцию, которая возвращает число, содержащее категорию большинства.
Я написал следующую функцию для вычисления расстояний.
расстояние метри c дано (Евклид, Мантан и др.).
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
Мой вопрос
Я хотел бы знать, как реализовать следующую функцию? Я застрял, расстояния возвращают мне массив расстояний. Из функции Foret_one_instance я хотел бы вернуть правильную категорию
- xSeriesTestVector - это объект Series, из набора тестов для классификации
- xTrainInstances - кадр данных, включающий все экземпляры поездов для сравнения с
- yTrainCategories - кадр данных, включающий все категории поездов
- distanceMetri c - название функции расстояния, не в виде строки
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)