一、算法思路
客户的业务系统做的是关于某方面的投诉案件处理,实际工作中客户提出一个需求,要求使用投诉案件里面的被投诉信息(比如投诉的渠道、投诉者,投诉的行业类别等),提前预估这个投诉案件属实的概率。为了解决这个问题,我打算使用贝叶斯算法根据历史案件的信息进行属实率的预测,虽然理论上的贝叶斯有属实的条件概率和非属实的条件概率比较,这里鉴于客户的实际需求并不需要比较两者的大小,所以这里省略了比较的过程,但是原理还是一样的。
二、数据提取
由于业务系统的数据统一放在服务器的Oracle数据库中,所以需要使用python连接Oracle数据库将需要的数据进行提取。这里为了使用了sqlalchemy框架进行Oracle数据库的连接。具体步骤是:
1、先加载框架包
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker
2、使用框架包连接Oracle,注意这里的格式是
engine=create_engine('oracle://dbname:dbpassword@ip:port/SID?charset=utf8', echo=False,pool_recycle=3600)
DBSession = sessionmaker(bind=engine)
SQLsession = DBSession()
其中pool_recycle这个参数是设置连接的时限,不设置会断开连接,而echo值是设置是否显示每次运行的sql的语句。
3、运行sql语句,得到所需的数据视图,存储在变量result中
三、进行算法的训练