Python机器学习:多个模型的调用

在做项目的过程中一个个模型地试验太耗费时间,我们可以把多个模型封装到一个方法里,一起调用,统一输出结果,这样对比不同模型的得分就非常便捷啦。

基础的分类算法大全(前8个是十大经典机器学习算法里面的):

英文简称

模型

调用

LR

LogisticRegression()

from sklearn.linear_model import LogisticRegression

NB

MultinomialNB()

from sklearn.naive_bayes import MultinomialNB

DT

DecisionTreeClassifier()

from sklearn.tree import DecisionTreeClassifier

RF

RandomForestClassifier()

from sklearn.ensemble import RandomForestClassifier

SVM

svm.SVC()

Support Vector Machine

from sklearn import svm

KNN

KNeighborsClassifier()

from sklearn.neighbors import KNeighborsClassifier

GBDT

GradientBoostingClassifier()

from sklearn.ensemble import GradientBoostingClassifier

XGBoost

XGBClassifier()

from xgboost import XGBClassifier

AdaBoost

AdaBoostClassifier()

from sklearn.ensemble import AdaBoostClassifier

LGB

lgb.LGBMClassifier()

Light Gradient Boosting Machine Classifier

import lightgbm as lgb

以上模型都可以用在有监督学习的分类任务里。前8个都是十大经典机器模型里面的,后2个也是比较常用的模型。十大经典机器学习算法还有 线性回归和K-means,线性回归用来预测连续型变量,K-means用在无监督学习的聚类任务,这一期主要解决分类问题就不介绍啦。

调包调用模型:

from sklearn.linear_model import LogisticRegression #逻辑回归
from sklearn.naive_bayes import MultinomialNB #朴素贝叶斯
from sklearn.tree import DecisionTreeClassifier #决策树
from sklearn.ensemble import RandomForestClassifier #随机森林
from sklearn import svm #支持向量机
from sklearn.neighbors import KNeighborsClassifier #K近邻算法
from sklearn.ensemble import GradientBoostingClassifier #梯度提升树
from xgboost import XGBClassifier #极度梯度提升树
from sklearn.ensemble import AdaBoostClassifier #AdaBoost
import lightgbm as lgb #LGB

from sklearn.metrics import roc_auc_score #auc

定义方法train_and_score():

def train_and_score(X_train,y_train,X_test,y_test):
    models = [
        LogisticRegression(), #逻辑回归 LR
        DecisionTreeClassifier(), #决策树 DT
        RandomForestClassifier(), #随机森林 RF
        SVC(probability=True), #支持向量机 SVM
        KNeighborsClassifier(), #K近邻算法 KNN
        GradientBoostingClassifier(), # 梯度提升树 GBDT
        XGBClassifier(),#极度梯度提升树 XGBoost
        AdaBoostClassifier(), #集成学习分类器
        lgb.LGBMClassifier() #lightgbm
    ]
    for model in models:
        model.fit(X_train,y_train)
        y_test_proba = model.predict_proba(X_test)[:, 1]
        auc = roc_auc_score(y_test, y_test_proba)
        print("模型:%s,auc得分:%f;"%(model,auc))

代码讲解:

def train_and_score()是方法名,后续调用可以直接使用,里面定义了4个输入参数,分别是训练集的x和y,以及测试集的x和y,是在训练模型和计算得分时要用到的;

models是定义的数组名,存放要用到的模型;

for循环是因为模型有很多个,要把每个模型都遍历一次输出结果;

model in models指数组里面其中一个模型,model.fit()是训练模型的固定语法;

predict_proba()是计算概率值,在用auc作为评分标准的时候使用;而predict()是生成0-1的结果,在计算准确率accuracy、召回率recall、F1值、精确率precision的时候使用;

计算auc是调用包sklearn.metrics 里面的roc_auc_score()方法;

%s和%f是占位符,%s是文本的占位符,%f是浮点数的占位符;

封装好代码后,就可以直接调用方法啦:

train_and_score(X_train,y_train,X_test,y_test)

运行结果:

可见得分0.888是这些模型的最高得分了,下一步还可以继续调参或者优化特征提高分数。 

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 当然,这里是一个简单的使用 scikit-learn 库实现机器学习的代码示例: ``` import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 加载鸢尾花数据集 iris = load_iris() X = iris.data y = iris.target # 将数据集分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) # 使用 K-近邻算法对数据进行建模 knn = KNeighborsClassifier(n_neighbors=1) knn.fit(X_train, y_train) # 评估模型 print("Test set score: {:.2f}".format(knn.score(X_test, y_test))) ``` 在这个例子中,我们使用了 scikit-learn 库的 KNeighborsClassifier 函数实现了 K-近邻算法,并对鸢尾花数据集进行了训练和评估。 ### 回答2: 以下是一个使用Python编写的简单机器学习代码示例: ```python # 导入所需的库 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # 加载鸢尾花数据集 iris = datasets.load_iris() X = iris.data y = iris.target # 将数据集划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化K近邻分类器并进行训练 knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) # 使用训练好的模型进行预测 y_pred = knn.predict(X_test) # 计算准确率 accuracy = accuracy_score(y_test, y_pred) print("准确率:", accuracy) ``` 这段代码使用了sklearn库中的K近邻分类器算法对鸢尾花数据集进行训练和预测。首先,通过`datasets.load_iris()`加载鸢尾花数据集,并将其特征保存在X中,目标值保存在y中。然后,通过调用`train_test_split`函数将数据集划分为训练集和测试集。接下来,初始化了一个K近邻分类器,并使用训练集对其进行训练训练完成后,使用测试集进行预测,并计算预测准确率。最后,将准确率打印来。 ### 回答3: 当谈到机器学习时,Python是最受欢迎的编程语言之一。下面是一个简单的示例代码,展示了如何使用Python进行机器学习: 首先,我们需要安装并导入一些机器学习库,如scikit-learn和numpy。这些库提供了许多机器学习算法和数据处理工具。 ```python # 导入机器学习库 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier # 加载数据集 iris = datasets.load_iris() X = iris.data y = iris.target # 将数据集分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 定义并训练机器学习模型 knn = KNeighborsClassifier() knn.fit(X_train, y_train) # 使用模型进行预测 predictions = knn.predict(X_test) # 打印预测结果 for index, prediction in enumerate(predictions): print(f"样本 {index+1}: 预测结果为 {iris.target_names[prediction]}") ``` 在这个示例代码中,我们使用了一个经典的机器学习数据集——鸢尾花数据集(iris dataset)。我们将数据集分为训练集和测试集,并使用K近邻算法(K-Nearest Neighbors)进行分类。通过训练这个模型并在测试集上进行预测,我们可以获得鸢尾花的种类预测结果。 这只是一个简单的例子,Python提供了更多的机器学习算法和工具,可以根据不同的项目和需求进行使用和定制。希望这个示例代码能够帮助您入门机器学习Python编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值