Если делаешь отступ (хотя, разве он должен быть здесь?), то другая ошибка - invalid syntax (хотя, код скопирован из рабочего кода...)
user_score += 1
if user_variant == "0" and cpu_variant == 1 or user_variant == "1" and cpu_variant == 2 or user_variant == "2" and cpu_variant == 0:
elif user_variant == "0" and cpu_variant == 0 or user_variant == "1" and cpu_variant == 1 or user_variant == "2" and cpu_variant == 2:
cpu_score = 0
cpu_score = cpu_score + 1
if user_variant == "0" and cpu_variant == 2 or user_variant == "1" and cpu_variant == 0 or user_variant == "2" and cpu_variant == 1:
elif user_variant == "0" and cpu_variant == 0 or user_variant == "1" and cpu_variant == 1 or user_variant == "2" and cpu_variant == 2:
print(user_name + " " + str(user_score) + " : " + str(cpu_score) + " " + cpu_name)
Python
Почему elif выдаёт ошибку? expected an indented block
После "if условие:" должен быть оператор (или несколько операторов, которые выполнятся, если условие верно), а у тебя сразу elif.
Задача обучить случайный лес с различным числом деревьев от 1 до 50 и для каждого из вариантов оценить качество работы полученного леса на кросс-валидации по 5 блокам. (sklearn.metrics.r2_score). Я написал такой цикл:
from sklearn.ensemble import RandomForestRegressor
from sklearn.cross_validation import KFold
from sklearn.metrics import r2_score
P_scores = []
p = np.linspace(1.0, 50.0, num=50)
p1 = np.array(p)
kf = KFold(4176, n_folds=5, random_state=1, shuffle=True)
P = 0
while P < len(p1):
regressor = RandomForestRegressor(n_estimators=P, random_state=1)
regressor.fit(X, Y)
predictions = clf.predict(X)
r2_score(Y, predictions)
P_scores.append(r2_score)
print(P_scores)
P += 1
Но получается ошибка всегда одна и та же, какой бы я цикл не писал:
IndentationError: expected an indented block
Как её исправить?
(я делал так же forцикл с индексами [P] но выходила всё та же ошибка)
Обновление
Правда, я писал код в блокноте и просто вставил в консоль без отступа. Код сработал, потому что ошибка получилась другая:
ValueError: n_estimators must be greater than zero, got 0.
Но тут просто с 1 начать нужно.
Почему то вместо ожидаемого результата вектора содержащего оценки по итерациям. Я получил:
...
и при команде
min(r2_score)
TypeError: 'function' object is not iterable
E = np.array(r2_score)
min(E)
TypeError: iteration over a 0-d array
python
from sklearn.ensemble import RandomForestRegressor
from sklearn.cross_validation import KFold
from sklearn.metrics import r2_score
P_scores = []
p = np.linspace(1.0, 50.0, num=50)
p1 = np.array(p)
kf = KFold(4176, n_folds=5, random_state=1, shuffle=True)
P = 0
while P < len(p1):
regressor = RandomForestRegressor(n_estimators=P, random_state=1)
regressor.fit(X, Y)
predictions = clf.predict(X)
r2_score(Y, predictions)
P_scores.append(r2_score)
print(P_scores)
P += 1
Но получается ошибка всегда одна и та же, какой бы я цикл не писал:
IndentationError: expected an indented block
Как её исправить?
(я делал так же forцикл с индексами [P] но выходила всё та же ошибка)
Обновление
Правда, я писал код в блокноте и просто вставил в консоль без отступа. Код сработал, потому что ошибка получилась другая:
ValueError: n_estimators must be greater than zero, got 0.
Но тут просто с 1 начать нужно.
Почему то вместо ожидаемого результата вектора содержащего оценки по итерациям. Я получил:
...
и при команде
min(r2_score)
TypeError: 'function' object is not iterable
E = np.array(r2_score)
min(E)
TypeError: iteration over a 0-d array
python
Похожие вопросы
- Не открывает xlrd файлы выдаёт ошибку, что делать?
- Почему elif, а не elsif, не eif? И в каком еще языке не всё как у людей?
- Что обозначает это слово "elif"?
- Кто знает почему выходит ошибка? ПРОГРАММИРОВАНИЕ PYTHON
- Зачем нужен elif в python
- Почему Python 3.9 выдает целое число с 0 в разряде десятых? (вместо 8 выдает 8.0)
- Почему происходит ошибка при запуске 4 варианта?
- Где-то ошибка. Помогите.
- объясните мне как смотреть код и видеть причину ошибки? Это опыт работы, практики, гениальности или чего-то еще?
- Где ошибка в коде? (Python)