逻辑回归为一类分类算法,可以用于预测事件发生的概率,或者某事物属于某一类别的概率。逻辑回归是以logistic函数为基础的,该函数的取值介于0~1之间,与概率值吻合。
1.k-折交叉验证
将数据集分为k份,在k次迭代过程中,每个包会有1次被用于验证,其余用于训练。示例:
kf = KFold(n=10,n_folds=7)
for train,test in kf:
print(train,test)
返回训练样本与测试样本的指针。
2.实例
from sklearn.linear_model import LogisticRegression
from sklearn.cross_validation import KFold
from sklearn import datasets
import numpy as np
def classify(x,y):
clf = LogisticRegression(random_state=12) #创建分类器对象,12类似于随机数的种子
scores = [] #用于存放每次训练的精确度
kf = KFold(len(y),n_folds=10) #创建k-折交叉验证包
for train,test in kf:
clf.fit(x[train],y[train]) #使用训练样本进行训练
scores.append(clf.score(x[test],y[test])); #将本次训练的平均误差保存
print(np.mean(scores)) #所有训练的平均准确性
return clf
rain = np.load('rain.npy')
dates = np.load('doy.npy')
x = np.vstack((dates[:-1],rain[:-1]))
y = np.sign(rain[1:])
clf = LogisticRegression(random_state=12) # 创建分类器对象,12类似于随机数的种子
clf = classify(x.T,y)
print(clf.predict_proba([1,0])) #进行预测