sklearn学习笔记_1

本文介绍了使用逻辑回归算法对Kaggle数据集中手写数字0与非0进行分类的方法。首先通过numpy模块读取数据,并展示如何将一维特征向量还原为28x28的图像。接着详细描述了训练和测试过程,最终实现了100%的分类准确率。

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

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值