DataWhale 组队学习数据挖掘实践 任务三 和 四

本文介绍了使用逻辑回归、支持向量机(SVM)和随机森林进行数据挖掘建模的过程。在逻辑回归中,通过训练和预测,评估了模型在训练和测试集上的准确率。在SVM部分,利用PCA和GridSearchCV进行了特征降维和参数调优,并计算了精度、召回率和F1分数。最后,通过调整随机森林的参数,得到了训练和测试集的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务3 - 建模

用逻辑回归、svm和决策树;随机森林和XGBoost进行模型构建,评分方式任意,如准确率等。(不需要考虑模型调参)

一、 使用逻辑回归

from sklearn.linear_model import SGDClassifier

1  初始化模型

log_reg = SGDClassifier(loss='log',penalty='l2',max_iter = 200)

2  训练

log_reg.fit(X_train, y_train)

3  预测

y_pred_lgr = log_reg.predict_proba(X_test)
print (y_pred_lgr[:5])

4  评估

from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_recall_fscore_support
from sklearn.metrics import classification_report,confusion_matrix

train 和 test 的精确度

acc_lgr_train = accuracy_score(y_train, y_train_lgr)
acc_lgr = accuracy_score(y_test, y_pred_lgr)

print('train acc:%.2f, test acc:%.2f'%(acc_lgr_train, acc_lgr),'\n')

 

 

二、 使用支持向量机 SVM

from sklearn.svm import SVC
from sklearn.decomposition import PCA
from sklearn.pipeline import make_pipeline

1  初始化模型

SVC, PCA, make_pipeline

pca = PCA(n_components = 13, whiten=True)
svc = SVC(kernel='rbf', class_weight='balanced',C=3)
model_svc = make_pipeline(pca, svc)

2  训练

GridSearchCV

# 尝试各个svc的C参数和gamma参数

from sklearn.model_selection import GridSearchCV
param_grid = {'svc__C':[3,4],
              'svc__gamma':[5,10]}
grid = GridSearchCV(model_svc, param_grid)
grid.fit(X_train, y_train)

print(grid.best_params_)

或者 用model_svc.fit(x,y)

3  预测

4  评估

acc_svm_train = accuracy_score(y_train, y_pred_svc_train)
acc_svm = accuracy_score(y_test, y_pred_svc)

print('SVM train acc:{0:.4f}, SVM test acc:{1:.4f}'\
      .format(acc_svm_train, acc_svm))

看看多少个0类结果

len(y_pred_svc[y_pred_svc==0])

准确性

precision, recall, F1, _ = precision_recall_fscore_support(y_test, y_pred_svc, average="binary")
# precision, recall, F1, _ = precision_recall_fscore_support(y_train, y_pred_svc_train, average="binary")


print ("precision: {0:.2f}. recall: {1:.2f}, F1: {2:.2f}"
       .format(precision, recall, F1))

 

 

三、 随机森林

# 初始化随机森林
forest = RandomForestClassifier(
    n_estimators=10, criterion="entropy",
    max_depth=8,
    min_samples_leaf=2)

# 训练
forest.fit(X_train, y_train)

# 预测
y_pred_train = forest.predict(X_train)
y_pred = forest.predict(X_test)

# 评估
# 准确率

acc_dtree_train = accuracy_score(y_train, y_pred_train)
acc_tree = accuracy_score(y_test, y_pred)

print('train acc:%.2f, test acc:%.2f'%(acc_dtree_train, acc_tree),'\n')

 

 

 

 

 

 

 

 

 

--- End ---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值