来自一线的声音:与一些私募同学访谈后的一些总结

下面是StockRanker的源码(基于lightGBM的排序学习):

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import lightgbm as lgb
from lightgbm import log_evaluation, early_stopping

callbacks = [log_evaluation(period=100), early_stopping(stopping_rounds=50)]


from engine.models.model_base import ModelBase


class LGBRanker(ModelBase):
    def __init__(self, name, load_model, feature_cols=None):
        super(LGBRanker, self).__init__(name, load_model)
        self.feature_cols = feature_cols
        self.label_col = 'label'

    def _prepare_groups(self, df):
        df['day'] = df.index
        group = df.groupby('day')['day'].count()
        # print(group.values)
        return group.values

    def predict(self, data):
        data = data.copy(deep=True)
        if self.feature_cols:
            data = data[self.feature_cols]

        try:
            pred = self.ranker.predict(data)
        except:
            print('error')

            pred = [None for _ in range(len(data))]
            return pred
        return pred

    def train(self, df: pd.DataFrame, split_date: str = None):
        if split_date:
            df_train = df[df.index < split_date]
            df_val = df[df.index >= split_date]

        else:
            df_train = df
            df_val = df

        query_train = self._prepare_groups(df_train.copy(deep=True))
        query_val = self._prepare_groups(df_val.copy(deep=True))

        ranker = lgb.LGBMRanker()


        ranker.fit(df_train[self.feature_cols], df_train[self.label_col], group=query_train,
                   eval_set=[(df_val[self.feature_cols], df_val[self.label_col])], eval_group=[query_val],
                   eval_at=[1, 2, 5],
                   callbacks=callbacks)

        self.ranker = ranker

        print(ranker.n_features_)
        print(ranker.feature_importances_)
        print(ranker.feature_name_)

        score, names = zip(*sorted(zip(ranker.feature_importances_, ranker.feature_name_), reverse=True))
        print(score)
        print(names)


吾日三省吾身

这两天可能写代码“用力过猛”,导致眼睛有点不舒服。

身体的反应,是一个很好的提醒,也让我“停”下来思考。

看电子书改成听书。听了两本书,都是于心理学,人生与死亡的话题。

当死亡拿出来讨论的时候,人生的格局往往会打开。

第一本书《生命的礼物》,这个礼物,它指的就是死亡。这是每个人的必修课。我们需要面对亲朋好友的离去,直至我们自己也要面对这个课题。

向死而生,人生是一个体验的单程。

另一本书《活出清醒的自我》。让你不再焦虑,愤怒,活出平静和喜乐,专注当下。

人生中,通常有两个情绪困扰,一是恐惧,担心不好的事情发生;二是焦虑,担心想要的迟迟不来。

前者的根源是外界的不确定性,内在的安全感的诉求;后者的根源在于欲望,得不到满足的欲望。

先说恐惧,我们要向内求,让心灵中立,以旁观者的态度,“冷冷”地审视,观察,体验发生的一切。——所谓“允许一切发生”的生活态度。

我们所觉知的,所谓“问题”,可能占不到5%,而且这些问题,99%不会发生。而另外95%我们压根没有意识到,里面有1%,可能会发生。——从概率上讲,你恐惧错了方向。

另外,即便发生了,99%你也能从容应对,就是增加了生命的阅历和谈资罢了。即便像蔡磊遇上的这种不治之症,让他的人生直接180度调头,甚至快要终结,他也留下了《相信》的力量,留下的企业家精神的光辉。

面对未来,不是说躺平,完全放任,无为而治。

就是做好当下能做好的所有事情,然后就不必多想了。像英语考试里的阅读理解,不能过度延伸。

——尽人事,听天命,允许一切发生

关于第二种焦虑——欲望。一定程度的欲望是好的,这是人类文明向上的最原始的动力。关于欲望,允许想要的可能不发生,或者不那么达到预期(允许想要的东西可能不发生)。

你要如同能得到一样去努力,如同不能得到那般去生活

做好当下应该做的事情,但行好事,莫问前程。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103786
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注