【AutoGluon_04】从HeidiSql数据库读取数据并用autogluon训练好的模型运行

from autogluon.tabular import TabularDataset, TabularPredictor
import datetime
import pymysql
import pandas as pd
import autogluon as ag

predictorBS = TabularPredictor.load("bugStateModel")
predictor14 = TabularPredictor.load("day14_model")
predictor30 = TabularPredictor.load("day30_model")

上面三个是用autogluon已经训练好的模型。如何训练模型?->点击此处,查看博客

在这里插入图片描述
python连接heidisql数据库:

# 定义查询函数
def SQLQuery(strsql):
    try:
        db = pymysql.connect(host='......',
                             user='.......',
                             password='......',
                             database='.......',
                             charset='utf8',  # mysql字符格式
                             cursorclass=pymysql.cursors.DictCursor)
        cursor = db.cursor()
        cursor.execute(strsql)
        results = cursor.fetchall()
        return results

    except pymysql.Error as err:
        print(err)

    finally:
        cursor.close()
        db.close()


# 定义SQL命令函数(create、insert、delete、update)
def SQLCommand(sql):
    try:
        db = pymysql.connect(host='........',
                             user='........',
                             password='..........',
                             database='.........',
                             charset='utf8',  # mysql字符格式
                             cursorclass=pymysql.cursors.DictCursor)
        cursor = db.cursor()
        cursor.execute(sql);
        # 事务提交
        db.commit()
        return True;

    except pymysql.Error as err:
        print(err)

    finally:
        cursor.close()
        db.close()

查询数据库中的数据,并转换成dataframe的形式:

strsql = """select ID,product,User
            from info 
            where bugState = 'NEW'
        """
results = SQLQuery(strsql)
bug_yc = pd.DataFrame(results)

用训练好的模型进行预测:

test_data = TabularDataset(bug_yc)
D14_pred = predictor14.predict(test_data)
D30_pred = predictor30.predict(test_data)
BS_pred = predictorBS.predict(test_data)
# 进行预测
D30_pred_proba = predictor30.predict_proba(test_data)
D14_pred_proba = predictor14.predict_proba(test_data)
BS_pred_proba = predictorBS.predict_proba(test_data)

将数据合并
在这里插入图片描述

# 构建数据库连接,将merged_df写回数据库
from sqlalchemy import create_engine
engine = create_engine("mysql+pymysql://user:password@host:端口号/database", encoding='utf-8', echo=True)
con = engine.connect()  # 创建连接
merged_df.to_sql(name='info', con=con, if_exists='replace', index=False)

其中上面代码当中的user、password、host、端口号、database(数据库名称) 需要更改为HeidiSQL对应名称。

注意,这里如果直接使用if_exists='replace'的话,会将修改后的python的数据直接替换sql当中的整张表,因此不能直接使用replace。而是先将修改的数据与原始数据进行合并,之后再写回数据库。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温欣2030

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值