机器学习的开发基本流程:
1、数据加载
使用pandas函数
# 查看数据类型/缺失情况
df.info()
# 查看数据的分布
df.describe()
# 目标值类别占比,做统计
df['目标名称'].value_counts()
2、数据基本处理
空值,异常值,缺失值的处理
# 一次性计算所有列的缺失情况
df.isnull().sum()
# 删除缺失值
df.dropna()
# 填充缺失值
df.fillna()
3、特征工程
我们做特征工程的最终目标是模型表现要超过基线模型,目的是挑选/构造出区分度好和目标相关性强/ 对目标值的区分能力比较强的特征。
特征编码
# one-hot编码
pd.get_dummies()
# 顺序编码
skearn labelEncoder()
特征筛选
特征降维
# 删除低方差特征
from sklearn.feature_selection import VarianceThreshold
特征缩放
# 归一化
from sklearn.preprocessing import MinMaxScaler
# 标准化
from sklearn.preprocessing import StandardScaler
特征的系数:df.corr()
关于集成学习输出特征重要性feature_importance
4、模型训练
测试集训练集数据划分
from sklearn.model_selection import train_test_split
# test_size 训练集测试集占比,random_state 随机数种子
X_train, X_test, y_train, y_test = train_test_split(features,target,test_size=0.3,random_state=42)
超参数搜索 交叉验证网格搜索
from sklearn.model_selection import GridSearchCV
使用模型:KNN,线性回归,逻辑回归,决策树,朴素叶贝斯等等
创建对象, 使用训练集fit 测试集predict
5、模型评估
sklearn.metrics
样本分布均衡
准确率accuracy_score
混淆矩阵:代码模型如下
from sklearn.metrics import confusion_matrix
精准率 TP/TP+FP
from sklearn.metrics import precision_score
召回率 TP/TP+FN
from sklearn.metrics import recall_score
f1_score 2 精准率 * 召回率/ 精准率 + 召回率
from sklearn.metrics import f1_score
ROC曲线 AUC指标
TRR TP/TP+FN
FRR FP /FP+ TN
AUC指标 取值范围 0.5 ~ 1
回归问题:
MAE 绝对平均误差
from sklearn.metrics import mean_absolute_error
MSE 均方误差
from sklearn.metrics import mean_squared_error
RMSE 均方根误差:对MSE开根号处理