机器学习之经典数据实战项目(一)

本文详细介绍了三个机器学习的经典实战项目,包括项目描述、数据展示、代码实现及运行效果,适合进行项目训练和提升机器学习技能。
摘要由CSDN通过智能技术生成

项目一描述

(需要数据练习的可以私聊)

# 现有文件名为aviation的航空客运信息数据集,共包括5000个样本,每个样本有55个属性,其中runoff_flag代表是否流失,
# 要求通过这些数据构建客户流失预警模型,而且由于营销资源有限,希望结合客户特征进行有针对性的、高效率的开展客户挽留。 
# 具体任务如下:
# 1.读入aviation数据集,设置MEMBER_NO为索引列。(6分)
# 2.剔除重复值、缺失值。(6分)
# 3.随机抽取500样本,切片特征X和标签Y。(6分)
# 4.使用交叉验证方法(10折)比较逻辑回归、决策树算法性能差异,评估指标用F1分数(6分)
# 5.使用网格搜索对上题中F1分数较高的算法进行超参数调优。(5分)
# 6.使用4、5中确定的最优算法和最优参数建立模型。(5分)
# 7.按照6:4划分数据集。(4分)
# 8.使用训练集数据进行模型训练,对测试集数据进行预测,打印混淆矩阵。(4分)
# 9.打印精确率、召回率、F1分数和AUC值。(3分)
# 10.画出ROC曲线。(3分)

数据展示

在这里插入图片描述

代码如下


# 1.读入aviation数据集,设置MEMBER_NO为索引列。(6分)
import warnings
import pandas as pd
import numpy as np

# 忽略警告
warnings.filterwarnings('ignore')
df = pd.read_excel(r'../datas/aviation.xls',index_col='MEMBER_NO')


# 2.剔除重复值、缺失值。(6分)
df.drop_duplicates(inplace=True)
df.dropna(inplace=True)

# 3.随机抽取500样本,切片特征X和标签Y。(6分)
df_sampel = df.sample(500,random_state=0)
X = df_sampel.iloc[:,:-1]
Y = df_sampel.iloc[:,-1]

# 4.使用交叉验证方法(10折)比较逻辑回归、决策树算法性能差异,评估指标用F1分数(6分)
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
model_lr = LogisticRegression()
model_dt = DecisionTreeClassifier()
score_lr = cross_val_score(model_lr,X,Y,scoring='f1',cv=10)
score_dt = cross_val_score(model_dt,X,Y,scoring='f1',cv=10)
print('逻辑分数',np.mean(score_lr,axis=0))
print('决策分数',np.mean(score_dt,axis=0))

# 5.使用网格搜索对上题中F1分数较高的算法进行超参数调优。(5分)
# 逻辑回归大于决策树,所以下面选择决策树来建模训练
from sklearn.model_selection import GridSearchCV
params = {
   
    'C':[0.1,0.3,0.5,1,3,5,10,30,50,100],
    'max_iter':[10,30,100,300,500,1000,3000,5000]
}
model_be = GridSearchCV(model_lr,param_grid=params,scoring='f1')
model_be.fit(X,Y)
params_be = model_be.best_params_

# 6.使用4、5中确定的最优算法和最优参数建立模型。(5分)
from sklearn.pipeline import Pipeline
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
model_pip = Pipeline([
    # ('ss',StandardScaler()),
    # ('pca',PCA(n_components=3)),
    ('lr', LogisticRegression(C=params_be
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值