Forwarded from Pavel Pikulev
Вы должны четко понимать что рекрутер ≠ заказчик.
1) заказчик из подразделения которое нанимает очень часто имеет сложности с тем, чтобы сформулировать кто конкретно ему нужен. Большие сложности. Он также нифига не понимает, как это соотносится с тем, что есть на рынке.
2) рекрутер (если в компании нет крутого HR BP) нифига не разбирается в том, что делает заказчик и кто в реальности ему нужен.
И вот 1 и 2 собираются и начинают брейнштормить по требованиям к кандидатам 😂😂😂
Результат, как правило, какой-то шаблонный набор требований, который «вроде ок» для рекрутера и который «ну ты же рекрутер, тебе же виднее» для заказчика.
Очень многое lost in translation
Потом случаются две вещи:
1) так как описание написано фигово - на него откликается фиг знает кто
2) если отклики смотрит рекрутер, он применяет к ним какие-то свои критерии, соответствующие его представлениям о прекрасном, но в большинстве случаев не совпадающие с критериями бизнес-владельцев
Если отклики смотрит бизнес-владелец, то он мало смотрит на формальные критерии. Ему важно то, насколько человек соответствует его внутреннему ментальному шаблону идеального кандидата (который он на шаге 1 не сумел донести до рекрутера ))). Он думает, где может пойти на компромисс с реальностью, а где нет.
Выводы здесь простые и их 2:
1) описания вакансии в подавляющем большинстве случаев написаны фигово, и на требования там надо ориентироваться лишь примерно. Высока вероятность, что в реальности людям надо совсем не то, что там написано.
2) всегда старайтесь откликнуться напрямую бизнес-владельцу вакансии, а не рекрутеру. Шансы на успех по многим причинам (не только по этой) гораздо выше.
1) заказчик из подразделения которое нанимает очень часто имеет сложности с тем, чтобы сформулировать кто конкретно ему нужен. Большие сложности. Он также нифига не понимает, как это соотносится с тем, что есть на рынке.
2) рекрутер (если в компании нет крутого HR BP) нифига не разбирается в том, что делает заказчик и кто в реальности ему нужен.
И вот 1 и 2 собираются и начинают брейнштормить по требованиям к кандидатам 😂😂😂
Результат, как правило, какой-то шаблонный набор требований, который «вроде ок» для рекрутера и который «ну ты же рекрутер, тебе же виднее» для заказчика.
Очень многое lost in translation
Потом случаются две вещи:
1) так как описание написано фигово - на него откликается фиг знает кто
2) если отклики смотрит рекрутер, он применяет к ним какие-то свои критерии, соответствующие его представлениям о прекрасном, но в большинстве случаев не совпадающие с критериями бизнес-владельцев
Если отклики смотрит бизнес-владелец, то он мало смотрит на формальные критерии. Ему важно то, насколько человек соответствует его внутреннему ментальному шаблону идеального кандидата (который он на шаге 1 не сумел донести до рекрутера ))). Он думает, где может пойти на компромисс с реальностью, а где нет.
Выводы здесь простые и их 2:
1) описания вакансии в подавляющем большинстве случаев написаны фигово, и на требования там надо ориентироваться лишь примерно. Высока вероятность, что в реальности людям надо совсем не то, что там написано.
2) всегда старайтесь откликнуться напрямую бизнес-владельцу вакансии, а не рекрутеру. Шансы на успех по многим причинам (не только по этой) гораздо выше.
Forwarded from MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
Z Fellows (не связано с агрессором)
Ранее в нас инвестировал Cory Levy, который так же организовывает Z fellows—недельную программу для молодых фаундеров, по которой им дается 10к на свой проект и возможность пообщаться со звездами стартап мира, типо СЕО Netflix, фаундера Figma, или Naval Ravikant. Мне, конечно же, это было интересно, поэтому 10к из его чека были “от” Z fellows, и вот на этой неделе программа наконец состоялась.
Программа не очень интенсивная, ее цель больше вдохновить, поэтому каждый день был всего один общий созвон и один звонок с приглашенным гостем.
Участники: всего было около 12 людей, из которых, я, наверно, был самым старшим. Почти все были еще студентами, не выглядели впечатляюще, но как только начинали говорить становилось понятно почему их выбрали. Почти все из MIT или Cтенфорда, или на крайний случай из Ivy League. У всех проекты на ранних стадиях, но впечатляющий опыт за спиной. Один чувак был с нашей когорты Алаенс, другой стажировался в SpaceX, одна тян кто-то там в ООН, третий еще школьник, но уже сделал конкурента фотоальбому iOS и его прямо со школы зовут в Эпл. В общем компания собралась интересная.
Самый классный совет который дали в начале программы это спрашивать гостей смелые нестандартные вопросы, которые не услышишь на обычном интервью, это сделало встречи намного интереснее и ценнее, но я мало что запомнил, поэтому вот куски по отдельным гостям:
Гости:
- Edward Lando, фаундер Misfits Market (подняли 530М, и приближаются к обороту в 1Bn). Он постоянно хватается за новые идеи, и имеет сотни зарегистрированных доменов, говорит что его стиль это заниматься несколькими вещами параллельно. Из того, что я запомнил, 1) для того чтобы все успевать и не выгорать, ключевое правильно использовать рычаги и нанимать хороший leadership team, не пытаясь делать все самому. 2) Не важно сколько проектов вы зафейлили, когда у вас получится один успешный, все предыдущие никто не вспомнит.
- Kevin Hartz, ангельский инвестор в PayPal, Pinterest, Airbnb, и прочие, продал компанию почти за лярд, после нее со-основал Eventbrite. Сказал, что, если в паре разница в интеллекте больше одного стандартного отклонения, то вероятность развода почти 100%, а к выбору партнера нужно подходить как к выбору кофаундера (в итоге его жена и оказалась его кофаундером в Eventbrite).
- Keith Rabois, часть PayPal mafia, GP в Founders Fund, и основатель OpenStore (юникорн). Он считает, что любая технология, хоть AI, хоть веб3, сама по себе ни ему ни Питеру Тилю не интересны, они не инвестируют в технологии, а в конкретные решения с понятной ценностью. В веб3 он сейчас это ценности не видит. Про главную черту Питера Тиля он сказал, что это возможность экстраполировать данные и видеть общую картину всего с одной точки. Еще то ли он, то ли Кевин, сказал что это уникальное умение видеть потенциал в людях (как он и собрал мафию). А, еще сказал, что все крутые фаундеры в которых они верят и инвестируют должны быть экстраординарными в какой-то одной, пусть не самой очевидной координате, мол, фаундер должен быть в чем то не таким как другие, чтобы мочь изменить то, как работает мир.
- Adam Guild, фаундер Owner.com, который бросил школу, чтобы строить компанию, а сейчас в 23 делает десятки миллионов выручки. Очень заряженный и трудолюбивый чел, про которого уже можно сказать, что он достигнет очень большого. Сказал, что осознанно жертвует всем ради стартапа, не верит в ворк-лайф баланс, никогда не был в отношениях, и воспринимает успех компании как единственный интерес. Нанимает тоже только тех, кто понимает, что стартап это не прогулка в парке. На счет выгорания, сказал, что умение управлять своей психикой это главное умение фаундера, и он вывел свои методики, которые помогают ему оставаться позитивным и замотивированым. На вопрос “почему не нужно делать стартап?” ответил, что в материальном плане доказано, что сколотить состояние и в короткой и в долгой перспективе вероятнее присоединившись к растущему стартапу на ранней стадии, и помимо этого, сам процесс намного больнее и сложнее, чем любые ожидания в начале.
…
Ранее в нас инвестировал Cory Levy, который так же организовывает Z fellows—недельную программу для молодых фаундеров, по которой им дается 10к на свой проект и возможность пообщаться со звездами стартап мира, типо СЕО Netflix, фаундера Figma, или Naval Ravikant. Мне, конечно же, это было интересно, поэтому 10к из его чека были “от” Z fellows, и вот на этой неделе программа наконец состоялась.
Программа не очень интенсивная, ее цель больше вдохновить, поэтому каждый день был всего один общий созвон и один звонок с приглашенным гостем.
Участники: всего было около 12 людей, из которых, я, наверно, был самым старшим. Почти все были еще студентами, не выглядели впечатляюще, но как только начинали говорить становилось понятно почему их выбрали. Почти все из MIT или Cтенфорда, или на крайний случай из Ivy League. У всех проекты на ранних стадиях, но впечатляющий опыт за спиной. Один чувак был с нашей когорты Алаенс, другой стажировался в SpaceX, одна тян кто-то там в ООН, третий еще школьник, но уже сделал конкурента фотоальбому iOS и его прямо со школы зовут в Эпл. В общем компания собралась интересная.
Самый классный совет который дали в начале программы это спрашивать гостей смелые нестандартные вопросы, которые не услышишь на обычном интервью, это сделало встречи намного интереснее и ценнее, но я мало что запомнил, поэтому вот куски по отдельным гостям:
Гости:
- Edward Lando, фаундер Misfits Market (подняли 530М, и приближаются к обороту в 1Bn). Он постоянно хватается за новые идеи, и имеет сотни зарегистрированных доменов, говорит что его стиль это заниматься несколькими вещами параллельно. Из того, что я запомнил, 1) для того чтобы все успевать и не выгорать, ключевое правильно использовать рычаги и нанимать хороший leadership team, не пытаясь делать все самому. 2) Не важно сколько проектов вы зафейлили, когда у вас получится один успешный, все предыдущие никто не вспомнит.
- Kevin Hartz, ангельский инвестор в PayPal, Pinterest, Airbnb, и прочие, продал компанию почти за лярд, после нее со-основал Eventbrite. Сказал, что, если в паре разница в интеллекте больше одного стандартного отклонения, то вероятность развода почти 100%, а к выбору партнера нужно подходить как к выбору кофаундера (в итоге его жена и оказалась его кофаундером в Eventbrite).
- Keith Rabois, часть PayPal mafia, GP в Founders Fund, и основатель OpenStore (юникорн). Он считает, что любая технология, хоть AI, хоть веб3, сама по себе ни ему ни Питеру Тилю не интересны, они не инвестируют в технологии, а в конкретные решения с понятной ценностью. В веб3 он сейчас это ценности не видит. Про главную черту Питера Тиля он сказал, что это возможность экстраполировать данные и видеть общую картину всего с одной точки. Еще то ли он, то ли Кевин, сказал что это уникальное умение видеть потенциал в людях (как он и собрал мафию). А, еще сказал, что все крутые фаундеры в которых они верят и инвестируют должны быть экстраординарными в какой-то одной, пусть не самой очевидной координате, мол, фаундер должен быть в чем то не таким как другие, чтобы мочь изменить то, как работает мир.
- Adam Guild, фаундер Owner.com, который бросил школу, чтобы строить компанию, а сейчас в 23 делает десятки миллионов выручки. Очень заряженный и трудолюбивый чел, про которого уже можно сказать, что он достигнет очень большого. Сказал, что осознанно жертвует всем ради стартапа, не верит в ворк-лайф баланс, никогда не был в отношениях, и воспринимает успех компании как единственный интерес. Нанимает тоже только тех, кто понимает, что стартап это не прогулка в парке. На счет выгорания, сказал, что умение управлять своей психикой это главное умение фаундера, и он вывел свои методики, которые помогают ему оставаться позитивным и замотивированым. На вопрос “почему не нужно делать стартап?” ответил, что в материальном плане доказано, что сколотить состояние и в короткой и в долгой перспективе вероятнее присоединившись к растущему стартапу на ранней стадии, и помимо этого, сам процесс намного больнее и сложнее, чем любые ожидания в начале.
…
Forwarded from Борис опять
Как проходить литкод. Пост на основе опыта мок собеседований с ребятами.
Структура правильного прохождения литкод собеседования примерно такая:
1. Внимательно читаем условие. Обсуждаем с интервьюером, убеждаемся, что правильно поняли задание.
2. Задаем интервьюеру вопросы. Проясняем все ограничения. Может ли на входе быть пустой массив и все такое прочее.
3. Пишем тест кейсы. Буквально
4. Не пишем код пока интервьюер не сказал: "хорошо, давай приступим к коду"! Худшее, что можно сделать, это броситься писать первое пришедшее в голову решение, а потом застрять в середине: "Ой, эм, блин, не сработало."
5. Устно предлагаем решение и обсуждаем его с интервьюером. Обсуждаем сложность по скорости и по памяти в терминах O(n) нотации. Получаем добро писать код. Просим подсказки, если необходимо.
6. Спокойно пишем код. Особенно внимательно обрабатываем базовые кейсы. Частая глупая ошибка это забыть базовый кейс в рекурсивном решении или нечто подобное.
7. Проверяем свой код после написания! Запускаем интерпретатор Python 3.10 у себя в голове и исполняем код для всех написанных ранее тест кейсов. У вас гарантированно найдутся ошибки. Часто забывают поставить какой-нибудь
Важное:
* Лучше брутфорс решение, чем никакого. Если придумали брутфорс решение и знаете, что оно не оптимально, то можно заработать немного очков указав место, где надо оптимизировать: "мы считаем вот эту штуку дважды, можно как-то лучше, но нет времени придумать как, кажется какое-нибудь дерево помогло бы".
* Вы должны узнавать все типичные классы задач (хеш таблицы, сортировка, поиск, деревья, графы, связанные списки, кучи, динамическое программирование, возможно что-то еще забыл) и уметь написать для них брутфорс решение. Минимальная подготовка: заходим на Leetcode, выбираем Easy задачи и решаем одну на каждую тему.
* Главное рассуждать. В небольших компаниях можно пройти собеседование даже решив задачу брутфорсом, если убедительно показать, что вы системно рассуждаете. В больших компаниях не решил == не прошел, а если решил брутфорсом == грейд джуна.
Структура правильного прохождения литкод собеседования примерно такая:
1. Внимательно читаем условие. Обсуждаем с интервьюером, убеждаемся, что правильно поняли задание.
2. Задаем интервьюеру вопросы. Проясняем все ограничения. Может ли на входе быть пустой массив и все такое прочее.
3. Пишем тест кейсы. Буквально
assert func(input) == output на все входы, которые можете придумать. Во-первых, это позволяет понять, какие ситуации надо обрабатывать. Во-вторых, в некоторых компаниях пишет кандидат тесты или нет это критерий оценки.4. Не пишем код пока интервьюер не сказал: "хорошо, давай приступим к коду"! Худшее, что можно сделать, это броситься писать первое пришедшее в голову решение, а потом застрять в середине: "Ой, эм, блин, не сработало."
5. Устно предлагаем решение и обсуждаем его с интервьюером. Обсуждаем сложность по скорости и по памяти в терминах O(n) нотации. Получаем добро писать код. Просим подсказки, если необходимо.
6. Спокойно пишем код. Особенно внимательно обрабатываем базовые кейсы. Частая глупая ошибка это забыть базовый кейс в рекурсивном решении или нечто подобное.
7. Проверяем свой код после написания! Запускаем интерпретатор Python 3.10 у себя в голове и исполняем код для всех написанных ранее тест кейсов. У вас гарантированно найдутся ошибки. Часто забывают поставить какой-нибудь
return, но бывает получается отловить и ошибку в логике. Важное:
* Лучше брутфорс решение, чем никакого. Если придумали брутфорс решение и знаете, что оно не оптимально, то можно заработать немного очков указав место, где надо оптимизировать: "мы считаем вот эту штуку дважды, можно как-то лучше, но нет времени придумать как, кажется какое-нибудь дерево помогло бы".
* Вы должны узнавать все типичные классы задач (хеш таблицы, сортировка, поиск, деревья, графы, связанные списки, кучи, динамическое программирование, возможно что-то еще забыл) и уметь написать для них брутфорс решение. Минимальная подготовка: заходим на Leetcode, выбираем Easy задачи и решаем одну на каждую тему.
* Главное рассуждать. В небольших компаниях можно пройти собеседование даже решив задачу брутфорсом, если убедительно показать, что вы системно рассуждаете. В больших компаниях не решил == не прошел, а если решил брутфорсом == грейд джуна.
Forwarded from Grigoriy
Мне еще при подготовке сильно помогает связка из Grind75 и NeetCode.
На Grind75 можно формировать список главных задач по темам и сложности, выбирая сколько недель до собеса и сколько часов в неделю готов посвящать подготовке. Там же есть учебник.
На NeetCode классные видео с разбором 150+ LeetCode задач, в том числе весь список Blind75. При желании можно глубже разбирать отдельные темы, не ограничиваясь только необходимым минимумом.
На Grind75 можно формировать список главных задач по темам и сложности, выбирая сколько недель до собеса и сколько часов в неделю готов посвящать подготовке. Там же есть учебник.
На NeetCode классные видео с разбором 150+ LeetCode задач, в том числе весь список Blind75. При желании можно глубже разбирать отдельные темы, не ограничиваясь только необходимым минимумом.
Forwarded from ML for Value / Ваня Максимов
Оптимизация цен на товары: прогноз спроса
Фундаментальная задача везде, но вокруг неё так много мифов! Давайте начнём разбираться с базы
Q = Q(P) - спрос в штуках, зависит от цены
P - цена
C - издержки на 1 штуку товара
Базово задача - максимизировать прибыль:
Q(P) * (P - C) --> max
И самое сложное - смоделировать зависимость Q(P)
Экономисты предполагают, что спрос складывается из многих таких выборов между продавцами, товарами и тд. Поэтому
Важна не абсолютная цена (79 руб), а относительная (Р/ P_competitor = +2% к цене конкурента, P / P_analogue = -5% к цене товара-аналога, P/ P_yesterday = +3% к вчерашней цене этого же товара)
Поэтому функция спроса на товары
Q = f(P/ P_competitor, P / P_analogue, ...)
Вообще, теоретически, на этом можно остановиться и применять наш любимый ML для прогноза Q с фичами на относительные цены. Но в реальности все сложнее 😅
Об этом - в следующих постах
Фундаментальная задача везде, но вокруг неё так много мифов! Давайте начнём разбираться с базы
Q = Q(P) - спрос в штуках, зависит от цены
P - цена
C - издержки на 1 штуку товара
Базово задача - максимизировать прибыль:
Q(P) * (P - C) --> max
И самое сложное - смоделировать зависимость Q(P)
Экономисты предполагают, что спрос складывается из многих таких выборов между продавцами, товарами и тд. Поэтому
Важна не абсолютная цена (79 руб), а относительная (Р/ P_competitor = +2% к цене конкурента, P / P_analogue = -5% к цене товара-аналога, P/ P_yesterday = +3% к вчерашней цене этого же товара)
Поэтому функция спроса на товары
Q = f(P/ P_competitor, P / P_analogue, ...)
Вообще, теоретически, на этом можно остановиться и применять наш любимый ML для прогноза Q с фичами на относительные цены. Но в реальности все сложнее 😅
Об этом - в следующих постах
Forwarded from ИЦ "ГЕВИССТА"
Forwarded from ИЦ "ГЕВИССТА"
Таблица гиперпараметров CatBoost.pdf
226.9 KB
Таблица гиперпараметров CatBoost
Как уже писал, сейчас работаю над обновлением модуля по бустингу. Эта таблица из устаревшей версии, тем не менее большинство гиперпараметров актуально, пользуйтесь.
Как уже писал, сейчас работаю над обновлением модуля по бустингу. Эта таблица из устаревшей версии, тем не менее большинство гиперпараметров актуально, пользуйтесь.
Forwarded from ИЦ "ГЕВИССТА"
BoostARoota. Часть 1
Многие знают такой метод отбора признаков, как Boruta. Boruta показывает хорошие результаты в сочетании со случайным лесом, но имеет при этом недостаток – медленные вычисления, особенно на данных больших размеров. Вне зависимости от времени вычислений, Boruta плохо работает на других алгоритмах, таких как бустинг или нейронные сети, хоть и хорошо работает на случайных лесах. Аналогичные проблемы возникают с регуляризацией LASSO, эластичной сетью или гребневой регрессией – они хорошо работают на линейных регрессиях, но плохо на других современных алгоритмах.
В 2016 году Чейз Дэхан представил алгоритм отбора признаков BoostARoota, который похож на Boruta, но использует в качестве базовой модели не случайный лес, а XGBoost. Алгоритм требует гораздо меньших затрат времени на выполнение, в отличие от Boruta, и обладает сопоставимым с Boruta качеством на различных наборах данных. Хотя идея алгоритма идейно близка Boruta, BoostARoota использует немного другой подход для удаления признаков, который выполняется намного быстрее. Перед применением необходимо выполнить дамми-кодирование, поскольку базовая модель работает только с количественными признаками.
Подобно принципу работы Boruta, BoostARoota создает «теневые» признаки, но отличается модифицированным этапом удаления.
1. Удваивает ширину полученного набора, создавая копии всех признаков исходного набора.
2. Случайным образом перемешивает значения новых признаков. Эти дублированные и перемешанные признаки называются «теневыми».
3. Запускает десять раз XGBoost на всем наборе данных. Обучение алгоритма десять раз позволяет сгладить случайный шум, что дает более устойчивые оценки важностей. Количество повторов – это параметр, который можно изменить.
4. Получает значения важностей для каждого признака. Это простой показатель важности, который суммирует, сколько раз конкретный признак использовался в качестве предиктора разбиения в алгоритме XGBoost (тип важности weight).
5. Вычисляет «порог отсечения»: среднее значение важности для всех «теневых» признаков, поделенное на четыре. Деление значения «теневой» важности на четыре (параметр можно изменить) предназначено для регулирования агрессивности удаления переменных. При значении «порога отсечения» меньше 4 признаки удаляются слишком агрессивно.
6. Удаляет признаки, средняя важность которых по результатам десяти итераций меньше «порога отсечения», указанного на шаге 5.
7. Возвращается обратно в пункт (1), т.е. запускает новый раунд и так, пока количество удаленных признаков не станет меньше десяти процентов от их общего количества, или пока не будет выполнено заданное количество раундов.
8. По завершении метод возвращает оставшиеся признаки.
Установить BoostARoota можно с помощью команды
# импортируем класс BoostARoota
Многие знают такой метод отбора признаков, как Boruta. Boruta показывает хорошие результаты в сочетании со случайным лесом, но имеет при этом недостаток – медленные вычисления, особенно на данных больших размеров. Вне зависимости от времени вычислений, Boruta плохо работает на других алгоритмах, таких как бустинг или нейронные сети, хоть и хорошо работает на случайных лесах. Аналогичные проблемы возникают с регуляризацией LASSO, эластичной сетью или гребневой регрессией – они хорошо работают на линейных регрессиях, но плохо на других современных алгоритмах.
В 2016 году Чейз Дэхан представил алгоритм отбора признаков BoostARoota, который похож на Boruta, но использует в качестве базовой модели не случайный лес, а XGBoost. Алгоритм требует гораздо меньших затрат времени на выполнение, в отличие от Boruta, и обладает сопоставимым с Boruta качеством на различных наборах данных. Хотя идея алгоритма идейно близка Boruta, BoostARoota использует немного другой подход для удаления признаков, который выполняется намного быстрее. Перед применением необходимо выполнить дамми-кодирование, поскольку базовая модель работает только с количественными признаками.
Подобно принципу работы Boruta, BoostARoota создает «теневые» признаки, но отличается модифицированным этапом удаления.
1. Удваивает ширину полученного набора, создавая копии всех признаков исходного набора.
2. Случайным образом перемешивает значения новых признаков. Эти дублированные и перемешанные признаки называются «теневыми».
3. Запускает десять раз XGBoost на всем наборе данных. Обучение алгоритма десять раз позволяет сгладить случайный шум, что дает более устойчивые оценки важностей. Количество повторов – это параметр, который можно изменить.
4. Получает значения важностей для каждого признака. Это простой показатель важности, который суммирует, сколько раз конкретный признак использовался в качестве предиктора разбиения в алгоритме XGBoost (тип важности weight).
5. Вычисляет «порог отсечения»: среднее значение важности для всех «теневых» признаков, поделенное на четыре. Деление значения «теневой» важности на четыре (параметр можно изменить) предназначено для регулирования агрессивности удаления переменных. При значении «порога отсечения» меньше 4 признаки удаляются слишком агрессивно.
6. Удаляет признаки, средняя важность которых по результатам десяти итераций меньше «порога отсечения», указанного на шаге 5.
7. Возвращается обратно в пункт (1), т.е. запускает новый раунд и так, пока количество удаленных признаков не станет меньше десяти процентов от их общего количества, или пока не будет выполнено заданное количество раундов.
8. По завершении метод возвращает оставшиеся признаки.
Установить BoostARoota можно с помощью команды
pip install boostaroota. Затем импортируем класс BoostARoota и создаем экземпляр класса BoostARoota.# импортируем класс BoostARoota
from boost_preprocessing import BoostARoota
# создаем экземпляр класса BoostARoota
br = BoostARoota(clf=None,
cutoff=4,
iters=10,
max_rounds=100,
delta=0.1,
silent=False)