sklearn中的Logistic回归

上一篇文章,我们简单介绍了Logistic回归算法进行二分类的原理,并通过代码了解了Logistic回归算法的实现。Logistic回归算法理论上只可以处理二分类问题,实际应用中,如果需要处理多分类问题,有两种改进方式。这里推荐一篇博文.


sklearn中本身提供了Logistic回归算法,而且可以处理多分类问题,今天的文章真的很简单。

from sklearn import datasets
import numpy as np
from sklearn.model_selection import train_test_split,cross_val_score
from sklearn.linear_model import LogisticRegression


iris = datasets.load_iris()
iris_x = iris.data
iris_y = iris.target
x_train, x_test, y_train, y_test = train_test_split(iris_x, iris_y, test_size=0.3, random_state=0)
print(y_train)

classifier = LogisticRegression()
classifier.fit(x_train, y_train)
y_predict = classifier.predict(x_test)
error_index = np.nonzero(y_test - y_predict)[0]
print('error index:', error_index)
error_rate = len(error_index) / len(y_test)
print('error rate:', error_rate)

代码很短,前面一部分,我们依然使用了iris数据集,上一篇关于sklearn的文章,我们自己打乱了数据集,然后进行了训练集和测试集的划分,这次我们调用sklearn的train_test_split函数,该函数帮助我们完成了数据集的划分。前面两个参数没什么,一个是特征数据集,一个是标签集,test_size参数代表测试集占数据集的比例,这里是30%,random_state是随机打乱数据的种子数,我们赋值为0,这样能保证数据集打乱的方式一样,大家在运行时会得到和我一致的效果。


接下来,使用LogisticRegression对象进行训练(fit),然后进行预测(predict),最后计算了预测的错误率,运行结果如下:

error index: [16 21 31 35 37]

error rate: 0.1111111111111111


可以看到,使用sklearn更加简单,免去了我们了解算法内部机制的困难。但是,如果我们需要更精细的控制,那么了解算法机制就很有用了,LogisticRegression的构造方法有很多的参数,可以对我们的Logistic回归分类器进行调整,了解详情可以看看官方文档.



猜你喜欢

转载自blog.csdn.net/yjp19871013/article/details/79752652