一、数据集介绍及预处理
本次应用到的数据集为企业运营评估数据集 course-10-company.csv
,总共有 250
条数据,每条数据包括 6 个特征值,分别为:
industrial_risk
: 产业风险management_risk
: 管理风险finacial_flexibility
: 资金灵活性credibility
: 信用度competitiveness
: 竞争力operating_risk
: 操作风险
其中,每条特征值包括 3
个等级,分别为:
Positive
: 好Average
: 中Negative
: 坏
3
个等级分别用 P
, A
, N
代替。
通过这些特征对该企业是否会破产进行分类预测,其中:
NB
: 表示不会破产B
: 表示会破产
二、数据集划分
加载好数据集之后,为了实现朴素贝叶斯算法,同样我们需要将数据集分为 训练集和测试集,依照经验:训练集占比为 70%,测试集占 30%。
同样在此我们使用 scikit-learn
模块的 train_test_split
函数完成数据集切分。
from sklearn.model_selection import train_test_split
x_train,x_test, y_train, y_test =train_test_split(train_data,train_target,test_size=0.4, random_state=0)
其中:
x_train
,x_test
,y_train
,y_test
分别表示,切分后的特征的训练集,特征的测试集,标签的训练集,标签的测试集;其中特征和标签的值是一一对应的。train_data
,train_target
分别表示为待划分的特征集和待划分的标签集。test_size
:测试样本所占比例。random_state
:随机数种子,在需要重复实验时,保证在随机数种子一样时能得到一组一样的随机数。
# 导入数据集
# !wget -nc http://labfile.oss.aliyuncs.com/courses/1081/course-10-company.csv
import pandas as pd
enterprise_data = pd.read_csv('course-10-company.csv')
enterprise_data.head()
enterprise_data = enterprise_data.replace(
{
"P": 1, "A": 2, "N": 3, "NB": 0, "B": 1}) # 对元素值进行替换
enterprise_data
"""数据集划分
"""
from sklearn.model_selection import train_test_split
# 得到企业运营评估数据集中 feature 的全部序列: industrial_risk, management_risk 等特征
feature_data = enterprise_data.iloc[:, :-1]
label_data = enterprise_data["label"<