MLSR package¶
Submodules¶
MLSR.data module¶
-
class
MLSR.data.
DataSet
(filename: Optional[str] = None, encode='gbk')[源代码]¶ 基类:
object
数据处理的工具类
-
static
data_augment
(n: int = 1000, filename: Optional[str] = None)[源代码]¶ 数据增强 一般数据集中没有非经济困难的,但是这样的模型并不够鲁棒, 所以我们需要按照一定规则生成非困难的样本,增强数据 Notes: 收入肯定不是正态分布的,但是想不好用什么,暂时采用对数正态,然后把低保线设在5%分位数
- 参数
n – 生成的数据条数
filename – 生成数据的保存路径
Returns: DataSet对象
-
static
do_accident
(s: pandas.Series)[源代码]¶ 识别突发事件情况 部分处理思路如下: 在cut_type中找寻如下pattern,并总结出每个人发生什么事情: 每一个人可能同时做多件事情,而这多件事情肯定是按顺序排列的,这些事情之间一定不出现另一个人名 无论在哪里出现divorce,一定为父母离异,但是如果出现在“父母”之后,则需要把这个“父母”与divorce绑定 这里jieba无法将“父母”、“父/母”、“父(母)”、“父亲(母亲)”分开,所以需要加一个判断条件,会用在后面无业、患病、去世中 一个人之后可能跟着多个illness,应全部与其绑定。若人是祖父母,则统计其是否患病;父母则看是否有重病,且应将父母辨别开;兄弟姐妹只统计重疾。 有可能出现人 -> illness ->dead。所有人都有可能dead,dead需要与之前最近的一个人或连续的多个人绑定,但只统计父或母去世。
- 参数
s – 待处理的pandas.Series
Returns:处理后得到的哑变量特征,pandas.Dataframe格式
-
static
do_education
(s: pandas.Series) → pandas.DataFrame[源代码]¶ 对每一行用jieba进行分词,对结果进行遍历,搜索关键词并记录其词性,记为cut_type 在cut_type中找寻如下pattern,并总结出大学阶段、高中阶段、义务教育阶段各有多少人: 个数和家庭成员都有可能出现,但个数为家庭成员前一个词,因此先检测个数再紧跟着检测家庭成员 年级和学校都有可能出现,但年级一定出现在学校之后,因此先检测学校再检测年级 个数 -> 学校/年级/学校&年级 -> 非学校或年级:这几个人都属于该学校 (个数 ->)家庭成员 -> 学校/年级/学校&年级 -> 非学校或年级:这几个人都属于该学校 (个数 ->)家庭成员 -> 学校/年级/学校&年级 -> 学校/年级/学校&年级 -> 非学校或年级:首先保证两个学校阶段相同,则这种家庭成员分别属于这个阶段;否则人工处理
- 参数
s – 输入的pandas.Series
Returns:
-
static
do_ethnic_group
(s: pandas.Series) → pandas.Series[源代码]¶ 识别是否为少数民族,缺失值视为汉族
- 参数
s – 待处理的特征,pandas.Series
Returns:返回pandas.Series
-
static
do_household
(s: pandas.Series) → pandas.Series[源代码]¶ 识别家庭人口数量,缺失则视为三口之家
- 参数
s – 待处理的特征,pandas.Series
Returns:返回pandas.Series
-
static
do_income
(data: pandas.DataFrame, fill_to_no_income: bool = True) → pandas.DataFrame[源代码]¶ 家庭主要经济来源
- 参数
data –
fill_to_no_income –
Returns:
-
static
do_loan
(s: pandas.Series)[源代码]¶ 识别是否贷款,缺失值视为无贷款
Notes: 只识别生源地和校园地助学贷款,其他贷款不在认定考虑范围内 :param s: 待处理的特征,pandas.Series
Returns:返回pandas.Series
-
static
do_nation_policy
(data: pandas.DataFrame) → pandas.DataFrame[源代码]¶ 处理“享受国家政策资助情况”一列
- 参数
data – 待处理的pandas.DataFrame,建议传入所有特征
Returns:pandas.DataFrame,分类哑变量
-
static
do_resident_type
(s: pandas.Series) → pandas.Series[源代码]¶ 识别户口类型,缺失值视为城镇户口
- 参数
s – 待处理的特征,pandas.Series
Returns:返回pandas.Series
-
static
do_scholarship
(s: pandas.Series) → pandas.DataFrame[源代码]¶ 识别在校期间获得助学金情况
- 参数
s – 待处理的特征,pandas.Series
Returns:返回三个特征的pandas.DataFrame,助学金个数(离散),助学金总金额(连续), 获得的国家助学金类型(分类变量,0为未获得,1为国家二等助学金,2为国家一等助学金)
-
generate_feature
()[源代码]¶ 按顺序将原始特征转为可使用的特征,并将特征重命名为f1,f2,f3…. Returns:处理好的DataSet对象,特征名映射在features_name属性中
-
shuffle_and_pick
= DeprecationWarning(<function DataSet.shuffle_and_pick>)¶
-
special_init
= DeprecationWarning(<function DataSet.special_init>)¶
-
static
MLSR.plot module¶
-
MLSR.plot.
plot_confusion_matrix
(cm, classes, filename, title='Confusion matrix', cmap=matplotlib.pyplot.cm.Blues)[源代码]¶ 绘制混淆矩阵,如果本地有图形界面或
- 参数
cm – 混淆矩阵,numpy.ndarray
classes – 类名
filename – 保存文件路径
title – 标题
cmap – 使用的色系
-
MLSR.plot.
plot_roc
(model, X, y, filename)[源代码]¶ 画roc图,不过sklearn只支持二分类roc,三分类画不了
- 参数
model – 模型
X – 特征
y – 标签
filename – 图片保存路径
-
MLSR.plot.
plot_tsne
(data: MLSR.data.DataSet, filename: str, n_iter: int = 1000)[源代码]¶ tSNE降维绘图
- 参数
data – 数据集
filename – 图片保存路径
n_iter – 迭代次数
Returns:
-
MLSR.plot.
plot_tsne_ssl
(data: MLSR.data.DataSet, filename: str, n_iter: int = 1000)[源代码]¶ 半监督数据集的tSNE降维绘图
- 参数
data – 数据集
filename – 图片保存路径
n_iter – 迭代次数
MLSR.primary module¶
-
MLSR.primary.
do_decision_tree
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练决策树
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
do_logistic
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练逻辑回归
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
do_naive_bayes
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练朴素贝叶斯
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
do_random_forest
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练随机森林
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
do_svm
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练支持向量机
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
do_xgb
(dataset: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ 训练Xgboost
- 参数
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
dataset – 输入数据集,将会按照0.7, 0.3比例分为训练集和测试集
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.primary.
grid_search_and_result
(Xtrain: pandas.DataFrame, ytrain: pandas.Series, Xtest: pandas.DataFrame, ytest: pandas.Series, pipe: sklearn.pipeline.Pipeline, grid: dict, log_dir: str, score=None, verbose: int = 2, k: int = 5, fit_params: Optional[dict] = None)[源代码]¶ 交叉验证网格搜索,测试集和训练集得分,混淆矩阵和ROC曲线绘制
- 参数
Xtrain – 训练集特征
ytrain – 训练集标签
Xtest – 测试集特征
ytest – 测试集标签
pipe – 模型管道
grid – 超参数搜索空间
log_dir – 训练结果输出目录,注意一定要先创建该目录
score – 评分指标,默认使用f1和acc,最后用f1 refit
verbose – 日志级别,0为静默
k – 交叉验证折数
fit_params – 训练时参数
Returns: 训练好的GridSearchCV模型
MLSR.ssl module¶
-
MLSR.ssl.
do_tsvm
(data: MLSR.data.DataSet, log_dir: str = '../log', grid: Optional[dict] = None)[源代码]¶ Transductive Support Vector Machine
- 参数
data – 输入数据DataSet对象
grid – 超参数搜索空间的网格,不填则使用默认搜索空间
log_dir – 输出结果文件的目录
Returns:返回训练好的GridSearchCV模型
-
MLSR.ssl.
grid_search_and_result_ssl
(Xtrain: numpy.ndarray, ytrain: numpy.ndarray, Xtest: numpy.ndarray, ytest: numpy.ndarray, pipe: sklearn.pipeline.Pipeline, grid: dict, log_dir: str, score=None, verbose: int = 2, k: int = 5)[源代码]¶ 交叉验证网格搜索,测试集和训练集得分,混淆矩阵和ROC曲线绘制
- 参数
Xtrain – 训练集特征
ytrain – 训练集标签
Xtest – 测试集特征
ytest – 测试集标签
pipe – 模型管道
grid – 超参数搜索空间
log_dir – 训练结果输出目录,注意一定要先创建该目录
score – 评分指标,默认使用f1和acc,最后用f1 refit
verbose – 日志级别,0为静默
k – 交叉验证折数
Returns: 训练好的GridSearchCV模型