调用python的sklearn实现Logistic Reression算法
先说如何实现,其中的导入数据库和类、方法的关系,之前不是很清楚,现在知道了。。。
from numpy import *
from sklearn.datasets import load_iris # import datasets
# load the dataset: iris
iris = load_iris()
samples = iris.data
#print samples
target = iris.target
# import the LogisticRegression
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression() # 使用类,参数全是默认的
classifier.fit(samples, target) # 训练数据来学习,不需要返回值
x = classifier.predict([5, 3, 5, 2.5]) # 测试数据,分类返回标记
print x
#其实导入的是sklearn.linear_model的一个类:LogisticRegression, 它里面有许多方法
#常用的方法是fit(训练分类模型)、predict(预测测试样本的标记)
#不过里面没有返回LR模型中学习到的权重向量w,感觉这是一个缺陷
上面使用的
classifier = LogisticRegression() # 使用类,参数全是默认的
是默认的,所有的参数全都是默认的,其实我们可以自己设置许多。这需要用到官方给定的参数说明,如下:
sklearn.linear_model.LogisticRegression
-
class
sklearn.linear_model.
LogisticRegression
(
penalty='l2',
dual=False,
tol=0.0001,
C=1.0,
fit_intercept=True,
intercept_scaling=1,
class_weight=None,
random_state=None
)
-
Logistic Regression (aka logit, MaxEnt) classifier.
In the multiclass case, the training algorithm uses a one-vs.-all (OvA) scheme, rather than the “true” multinomial LR.
This class implements L1 and L2 regularized logistic regression using the liblinear library. It can handle both dense and sparse input. Use C-ordered arrays or CSR matrices containing 64-bit floats for optimal performance; any other input format will be converted (and copied).