Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.16K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#ghosts

Ахаха, блэт, этот Егор просто Крамник в мире айтишников!! )) А ты сколько коммитов сделал за год, сволочь такая, не призрак ли ты?! Я слежу за тобой!

https://blog.stackademic.com/1-in-10-silicon-valley-engineers-are-ghost-engineer-earning-300k-for-doing-almost-nothing-474b667da09d
🤡1
#featureengineering #pysr #symbolicregression

На самом деле, подход символьной регрессии перекликается с моей идеей использования информационно-теоретических метрик.

Читаю сейчас статью pysr, у них интересный подход с генетиком над признаками, отобранными бустингом.

Очень хочу сравнить их результаты со своими на том же игрушечном примере.

Для естественных наук приложение прямое, для машинного обучения, естественно, приложение может быть в создании новых хороших признаков.

Ps. ДА! pysr отлично справился с моим примером!

import numpy as np, pandas as pd

n =100_000
a = np.random.rand(n)
b = np.random.rand(n)
c = np.random.rand(n)
d = np.random.rand(n)
e = np.random.rand(n)
f = np.random.rand(n)

y=a**2/b+f/5+np.log(c)*np.sin(d)

df = pd.DataFrame(
{
"a": a,
"b": b,
"c": c,
"d": d,
"e": e,

}
)

from pysr import PySRRegressor

model = PySRRegressor(
maxsize=20,
niterations=40, # < Increase me for better results
binary_operators=["+", "*"],
unary_operators=[
"cos",
"exp",
"log",
"sin",
"inv(x) = 1/x",
# ^ Custom operator (julia syntax)
],
extra_sympy_mappings={"inv": lambda x: 1 / x},
# ^ Define operator for SymPy as well
elementwise_loss="loss(prediction, target) = (prediction - target)^2",
# ^ Custom loss function (julia syntax)
)

model.fit(df, y)

model.get_best()


после ~6 минут работы

complexity 14
loss 0.003329
score 0.947915
sympy_format a**2/b + log(c)*sin(d) + 0.09998281
👍2
#featureengineering #pysr #symbolicregression #todo

Библиотека pysr заслуживает пристального внимания. Она настолько хорошо сделана, глубока и функциональна, что просто загляденье.

Полностью готова к внедрению в бой, поддерживает оптимизации, кластера, логгинг в тензорборд, пре-отбор признаков с помощью ML, сохранение прогресса в файл и тёплый старт.

Зацените функциональность и количество опций:

model = PySRRegressor(
populations=8,
# ^ Assuming we have 4 cores, this means 2 populations per core, so one is always running.
population_size=50,
# ^ Slightly larger populations, for greater diversity.
ncycles_per_iteration=500,
# ^ Generations between migrations.
niterations=10000000, # Run forever
early_stop_condition=(
"stop_if(loss, complexity) = loss < 1e-6 && complexity < 10"
# Stop early if we find a good and simple equation
),
timeout_in_seconds=60 * 60 * 24,
# ^ Alternatively, stop after 24 hours have passed.
maxsize=50,
# ^ Allow greater complexity.
maxdepth=10,
# ^ But, avoid deep nesting.
binary_operators=["*", "+", "-", "/"],
unary_operators=["square", "cube", "exp", "cos2(x)=cos(x)^2"],
constraints={
"/": (-1, 9),
"square": 9,
"cube": 9,
"exp": 9,
},
# ^ Limit the complexity within each argument.
# "inv": (-1, 9) states that the numerator has no constraint,
# but the denominator has a max complexity of 9.
# "exp": 9 simply states that `exp` can only have
# an expression of complexity 9 as input.
nested_constraints={
"square": {"square": 1, "cube": 1, "exp": 0},
"cube": {"square": 1, "cube": 1, "exp": 0},
"exp": {"square": 1, "cube": 1, "exp": 0},
},
# ^ Nesting constraints on operators. For example,
# "square(exp(x))" is not allowed, since "square": {"exp": 0}.
complexity_of_operators={"/": 2, "exp": 3},
# ^ Custom complexity of particular operators.
complexity_of_constants=2,
# ^ Punish constants more than variables
select_k_features=4,
# ^ Train on only the 4 most important features
progress=True,
# ^ Can set to false if printing to a file.
weight_randomize=0.1,
# ^ Randomize the tree much more frequently
cluster_manager=None,
# ^ Can be set to, e.g., "slurm", to run a slurm
# cluster. Just launch one noscript from the head node.
precision=64,
# ^ Higher precision calculations.
warm_start=True,
# ^ Start from where left off.
turbo=True,
# ^ Faster evaluation (experimental)
extra_sympy_mappings={"cos2": lambda x: sympy.cos(x)**2},
# extra_torch_mappings={sympy.cos: torch.cos},
# ^ Not needed as cos already defined, but this
# is how you define custom torch operators.
# extra_jax_mappings={sympy.cos: "jnp.cos"},
# ^ For JAX, one passes a string.
)


И на её базе, как понимаю, уже сделаны отличные исследования.
Надо изучать доку.

И хорошо бы её потестить для FE, на каких-то разумных настройках глубины/сложности/времени. И датасетах с в т.ч. большим количеством фичей.
👍2
#energy

"За последние 50 лет придуманные нефтяниками методы бурения и разрыва пластов открыли возможность доступа к теплу недр на большей части планеты, а не только рядом с вулканами. Пока новыми технологиями воспользовались лишь единичные компании, но в них скрыт огромный потенциал для производства электрической энергии в больших масштабах. Сегодня в глобальном масштабе доля геотермальной энергетики по-прежнему составляет менее половины процента. Доля солнечной и ветряной энергии более чем в 25 раз выше, что можно исправить в обозримые сроки.

Для доступа к подземному теплу следует использовать методы бурения, разработанные для добычи сланцевого газа, включая горизонтальное бурение и гидроразрыв пластов. Закачивая в скважины жидкость под большим давлением, нефтяники расширяют существующие в породе трещины и создают новые, за счёт чего происходит приток нефти и других жидкостей к поверхности. В геотермальных системах с улучшенными характеристиками жидкость представляет собой просто горячую воду из естественных подземных резервуаров."

https://3dnews.ru/1118710/nesmotrya-na-risk-zemletryaseniy-geotermalnuyu-energiyu-gdyot-svetloe-budushchee-schitayut-uchyonie
#business #skype

Ну не знаю, купить сервис за 8 лярдов и потом закрыть?

"Сервис одноранговых видеозвонков Skype был создан Никласом Зеннстрёмом (Niklas Zennström), Янусом Фриисом (Janus Friis) и четырьмя другими эстонскими разработчиками. После запуска в 2003 году Skype приобрёл широкую популярность. К осени 2005 года сервис привлек 40 млн активных пользователей и был приобретён eBay за $2,6 млрд. В 2011 году Microsoft приобрела у eBay сервис за $8,5 млрд.

Во время пандемии Skype окончательно уступил позиции Zoom. И когда Microsoft прекратила поддержку программы-клиента Skype for Business в 2021 году, дни Skype были уже сочтены. Microsoft отказалась сообщить последние данные о количестве пользователей Skype и заявила, что сокращений в команде специалистов в связи с переходом на Teams не будет. Она добавила, что у Teams около 320 млн активных пользователей в месяц.

«Skype стал неотъемлемой частью формирования современных коммуникаций и создания бесчисленных значимых моментов, и мы гордимся тем, что стали частью этого пути», — сообщили в Microsoft."

https://3dnews.ru/1119037/microsoft-podtverdila-zakritie-skype-v-mae-ego-zamenit-teams
👍1
Писали ли Вы за последние полгода хоть одно сообщение в skype?
Anonymous Poll
15%
Да
85%
Нет
#religion

Леннокс весьма бодр, и старается разводить меньше демагогии, но всё же неизбежно в неё скатывается. Чего стоит хотя бы попытка приписать достижения науки религии. Понравилось утверждение Докинза о том, что религия и наука вовсе не существуют в разных реальностях, хотя бы потому, что религия делает утверждения о нашей Вселенной.

https://www.youtube.com/watch?v=LQdrzBhtbMg
#trading #backtesting #masters

Пример реализации тестирования перестановкой из книги Мастерса.

Подчёркивается преимущество permutation test перед "простым" walkforward: OOS данные из walkforward очень ценны, и их желательно использовать пореже, чтобы не оверфиттиться на высоком уровне, а инсэмпловых перестановок намешать мы можем бесконечно много без проблем.

https://www.youtube.com/watch?v=NLBXgSmRBgU
👍1