コード例 #1
0
ファイル: member.py プロジェクト: jminsol/Stock_Psychic
    def insert_many():
        service = MemberPro()
        Session = openSession()
        session = Session()
        df = service.hook()
        print(df.head())

        # 저장된 모델로 멤버 이탈 확률 구하기
        mmdp = MemberModelingDataPreprocessing()
        refined_members = mmdp.hook_process(df)
        print(f'REFINED_MEMBERS: \n{refined_members}')
        refined_members = refined_members.drop('exited', axis=1)
        refined_members = [np.array(refined_members, dtype=np.float32)]
        print(f'REFINED_MEMBERS AFTER NUMPY ARRAY: \n{refined_members}')

        path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
                            'models', 'member')
        new_model = tf.keras.models.load_model(os.path.join(
            path, 'member_churn.h5'),
                                               compile=False)

        model_pred = new_model.predict(refined_members)
        print(f'MODEL PREDICTION: {model_pred}')

        df['probability_churn'] = model_pred
        print(f'LAST DATAFRAME: {df}')

        # admin = {'email': '*****@*****.**', 'password': '******', 'name': 'Admin', 'profile': 'noimage.png', 'geography': 'Spain',
        # 'gender': '', 'age': '', 'tenure': 100, 'stock_qty': 0, 'balance': 0, 'as_credit': 0, 'credit_score': 0, 'is_active_member': 1,
        # 'estimated_salary': 0, 'role': 'ROLE_ADMIN', 'probability_churn': -1, 'exited': 0}

        session.bulk_insert_mappings(MemberDto, df.to_dict(orient="records"))
        session.commit()
        session.close()
コード例 #2
0
 def modify_recommend_stock(recommend_stock):
     Session = openSession()
     session = Session()
     trading = session.query(RecommendStockDto)\
     .filter(RecommendStockDto.id==recommend_stock.id)\
     .update({RecommendStockDto.stock_type: recommend_stock['stock_type'], RecommendStockDto.stock_id: recommend_stock['stock_id']})
     session.commit()
     session.close()
コード例 #3
0
ファイル: comment.py プロジェクト: jminsol/Stock_Psychic
 def modify_comment(comment):
     Session = openSession()
     session = Session()
     member = session.query(CommentDto)\
     .filter(CommentDto.email == comment.email)\
     .update({CommentDto.comment: comment['comment']})
     session.commit()
     session.close()
コード例 #4
0
 def modify_board(cls, board):
     Session = openSession()
     session = Session()
     board = session.query(BoardDto)\
     .filter(BoardDto.id==board.id)\
     .update({BoardDto.title: board['title'], BoardDto.content: board['content']})
     session.commit()
     session.close()
コード例 #5
0
 def modify_trading(trading):
     Session = openSession()
     session = Session()
     trading = session.query(TradingDto)\
     .filter(TradingDto.id==trading['id'])\
     .update({TradingDto.stock_qty: trading['stock_qty'], TradingDto.price: trading['price'], TradingDto.trading_date: trading['trading_date']})
     session.commit()
     session.close()
コード例 #6
0
 def insert_many():
     service = BoardPro()
     Session = openSession()
     session = Session()
     df = service.process()
     print(df.head())
     session.bulk_insert_mappings(BoardDto, df.to_dict(orient="records"))
     session.commit()
     session.close()
コード例 #7
0
 def insert_many():
     service = MemberPro()
     Session = openSession()
     session = Session()
     df = service.hook()
     print(df.head())
     session.bulk_insert_mappings(MemberDto, df.to_dict(orient="records"))
     session.commit()
     session.close()
コード例 #8
0
ファイル: member.py プロジェクト: jminsol/Stock_Psychic
    def update(member):
        Session = openSession()
        session = Session()

        mcp = MemberChurnPredService()
        mcp.assign(member)
        prediction = mcp.predict()

        prediction = round(prediction[0, 0], 5)
        print(f'PREDICTION: {prediction}')
        member.probability_churn = float(prediction)

        print(member)

        member = session.query(MemberDto)\
        .filter(MemberDto.email==member.email)\
        .update({MemberDto.password: member.password, MemberDto.name: member.name, MemberDto.profile: member.profile, MemberDto.geography: member.geography,
        MemberDto.gender: member.gender, MemberDto.age: member.age, MemberDto.tenure: member.tenure, MemberDto.stock_qty: member.stock_qty, MemberDto.balance: member.balance,
        MemberDto.has_credit: member.has_credit, MemberDto.credit_score: member.credit_score, MemberDto.is_active_member: member.is_active_member, MemberDto.estimated_salary: member.estimated_salary,
        MemberDto.role: member.role, MemberDto.probability_churn: member.probability_churn, MemberDto.exited: member.exited})
        session.commit()
        session.close()
コード例 #9
0
ファイル: member.py プロジェクト: jminsol/Stock_Psychic
    geography: str = ''
    gender: str = ''
    age: int = 0
    tenure: int = 0
    stock_qty: int = 0
    balance: float = 0.0
    has_credit: int = 0
    credit_score: int = 0
    is_active_member: int = 1
    estimated_salary: float = 0.0
    role: str = 'ROLE_USER'
    probability_churn: float = 0.0
    exited: int = 0


Session = openSession()
session = Session()


class MemberDao(MemberDto):
    def __init__(self):
        ...

    @classmethod
    def count(cls):
        return session.query(func.count(MemberDto.email)).one()

    @classmethod
    def find_all(cls):
        sql = cls.query.filter(cls.exited != 1)
        df = pd.read_sql(sql.statement, sql.session.bind)