sklearn学习笔记_
LogisticRegression
1.介绍一下numpy模块下的数据读取,loadtxt方法十分方便。
import numpy as np
train=np.loadtxt('/Volumes/File/train.csv',delimiter=',')
2.下面介绍用逻辑回归算法对手写数字0和非0的分类。具体数据取自kaggle上的练习题。train数据集是一个42000*785的矩阵,每一行代表一个实例,第一列是真实手写数字0-9,则train[0,1:785]为第一个实例的特征值(784个),该矩阵是有28像素*28像素的灰度图像转化成矩阵后展平得到的(numpy模块下的flatten方法)
现将train[0,1:785]还原
#coding:utf-8
'''
Created on 2016年3月15日
@author: Jay
'''
import numpy as np
from scipy import misc
train=np.loadtxt('/Volumes/File/train.csv',delimiter=',')
pic=train[3,1:785].reshape(28,28)
misc.imsave('pic.png', pic)
3.训练及测试代码如下:
#coding:utf-8
'''
Created on 2016年3月13日
@author: Jay
程序目的:
利用逻辑回归算法,对0和非0(标记为1)进行分类。训练数据有40000,测试数据有2000;
准确率100%
'''
import numpy as np
from sklearn.linear_model import LogisticRegression
train=np.loadtxt('/Volumes/File/train.csv',delimiter=',')
train_x=train[0:40000,1:785]
train_y=train[0:40000,0]
train_y=np.array([0 if i==0 else 1 for i in train_y])
test_x=train[40000:42000,1:785]
test_y=train[40000:42000,0]
test_y=np.array([0 if i==0 else 1 for i in test_y])
clf = LogisticRegression()
clf.fit(train_x,train_y)
test_pre=clf.predict(test_x)
result=[0 if test_pre[i]==test_y[i] else 1 for i in range(2000)]
error=sum(result)
print error/2000