sklearn之三分类应用

本文介绍了使用sklearn构建三分类模型的过程,包括数据划分、逻辑回归模型训练、模型评估以及实际工作中的数据应用。通过lr_iris.py、lr_out_model.py、lr.py和gen_samples.py等代码示例,展示了模型训练和测试的详细步骤,并得出模型的准确率为81%,MSE为0.18的评估结果。
摘要由CSDN通过智能技术生成

用到的代码目录:

1.入门demo:(先不关心具体数据是什么)

python代码:lr_iris.py

import numpy as np

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

def load_data():
    inputdata = datasets.load_iris()

    x_train, x_test, y_train, y_test = \
        train_test_split(inputdata.data, inputdata.target, test_size = 0.2, random_state=0)
    return x_train, x_test, y_train, y_test

def main():
    x_train, x_test, y_train, y_test = load_data()
    model = LogisticRegression(penalty='l1')
    model.fit(x_train, y_train)

    print "w: ", model.coef_
    print "b: ", model.intercept_
    print "precision: ", model.score(x_test, y_test)
    print "MSE: ", np.mean((model.predict(x_test) - y_test) ** 2)

if __name__ == '__main__':
    main()

1.将数据切分为20%的测试集,80%的训练集

2.调用逻辑回归的方法得到一个模型

3.将训练集数据放入模型进行学习训练

4.训练后得到结果

5.LogisticRegression(penalty='l2')中的l1是做稀疏化,通常是l2

模型:w,b

准确率:precision

执行结果:

第二步,单独得到w和b

代码 lr_out_model.py:

import numpy as np

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

def load_data():
    inputdata = datasets.load_iris()

    x_train, x_test, y_train, y_test = \
        train_test_split(inputdata.data, inputdata.target, test_size = 0.2, random_state=0)
    return x_train, x_test, y_train, y_test

def main():
    x_train, x_test, y_train, y_test = load_data()
    model = LogisticRegression(penalty='l2')
    model.fit(x_train, y_train)

    ff_w = open('model.w', 'w')
    ff_b = open('model.b', 'w')

    for w_list in model.coef_:
        for w in w_list:
            print >> ff_w, "w: ", w

    for b in model.intercept_:
        print >> ff_b, "b: ", b

    # print "w: ", model.coef_
    # print "b: ", model.intercept_
    print "precision: ", model.score(x_test, y_test)
    print "MSE: ", np.mean((model.predict(x_test) - y_test) ** 2)

if __name__ == '__main__':
    main()

w:每四个为一组,共12组

2.用我们自己找的数据得到一个model

验证模型的数据:

第一列:label(做2分类)

第二列:冒号左边:每一个数字代表一个特征

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曾牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值