机器学习的开发基本流程:

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开根号处理

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐