Я предполагаю, что у вас уже есть данные и лабораторные работы, и вы разбили их на обучающие и тестовые данные и метки, и вы получили список прогнозов, используя следующий метод. Затем вам нужно получить вероятности из модели, вызвав clf.predict_proba(data_test)
, как показано ниже.
import numpy as np
from sklearn.metrics import log_loss
from sklearn.linear_model import LogisticRegression
#test_list = [1,0,0,1,0,.....]
#prediction_list = [1,1,0,1,0......]
# Model learning and prediction
clf = LogisticRegression()
prediction_list = clf.predict(data_test)
pred_probabilities = clf.predict_proba(data_test)
# Evaluation of the prediction
print("The binary cross entropy loss is : %f" % log_loss(labels_test, pred_probabilities))
Я все еще новичок в машинном обучении, поэтому возьмите это с крошкой соли.
Я не думаю, что Вам нужен шаблон там вообще в функциональном определении, так как это определяется встроенное с классом
TMyPointTemplate Interpolate(const TMyPointTemplate &OtherPoint)const {
должен сделать.
И когда Вы действительно используете шаблон для определения функции, не встроенной, я думаю, что Вам нужно ключевое слово класса там как это.
template<class T> // <- here
TMyPointTemplate<T> TMyPointTemplate<T>::Interpolate(const TMyPointTemplate<T> &OtherPoint)const {
Ответ Evan решает проблему, но я думал, что могло бы быть полезно объяснить почему.
Как записано, Интерполируйте, членская шаблонная функция с синглом, без имени 'не, вводят шаблонный параметр' (а не шаблонный параметр типа, который является почти наверняка, что Вы предназначили). Для показа этого мы можем дать тому параметру имя:
template<T t> TMyPointTemplate<T> Interpolate
(const TMyPointTemplate<T> &OtherPoint)const
И мы можем теперь видеть, как вызвать ту функцию, мы просто должны обеспечить значение для 't':
Geo::IntegerPoint Point3=Point1.Interpolate <0> (Point2);
При добавлении класса или имени типа перед 'T' здесь, объявит это как шаблонный параметр типа. Однако делая просто, что изменение приведет к ошибке, так как идентификатор 'T' уже используется для шаблонного названия параметра в шаблоне класса включения. Мы должны изменить имя шаблонного параметра для шаблона функции членства:
template <class T>
class TMyPointTemplate
{
public:
//...
template<class S> TMyPointTemplate<T> Interpolate
(const TMyPointTemplate<S> &OtherPoint) const
{
return ...;
}
};