kaggle-识别手写数字

下载数据到本地,加载数据

import numpy as np
import csv
import pandas as pd

def load_data(csv):
    lines = csv.reader(open(csv))
    l = []
    for line in lines:
        l.append(line)
    return l

l = load_data('train.csv')
l = np.array(l[1:], dtype=float)
train = l[1:,1:]
label = l[1:,0]

a = pd.DataFrame(train)
# 二值化,不影响数字显示
a[a > 1] = 1


l = load_data('test.csv')
test = np.array(l[1:], dtype=float)
a = pd.DataFrame(test)
# 二值化,不影响数字显示
a[a > 1] = 1
import seaborn as sns
%matplotlib inline
df = pd.DataFrame(np.hstack((train, label[:,None])),
               columns = range(train.shape[1]) + ["class"])
plt.figure(figsize=(8, 6))
_ = sns.heatmap(df.corr(), annot=False)

使用LogisticRegression分类

from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import accuracy_score

X_train = train
y_train = label
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)

lr = LogisticRegression(C=10000.0, random_state=0)
lr.fit(X_train_std, y_train)

看下训练集误差,误差大约6.7954%,这个还是蛮大的

y_pred = lr.predict(X_train_std)
print('Misclassified samples: %.8f' % ((y_train != y_pred).sum()/float(len(y_train))))

OUT:Misclassified samples: 0.06795400

对测试集预测

X_test = test
X_test_std = sc.transform(X_test)
'''sc.scale_标准差, sc.mean_平均值, sc.var_方差'''
y_pred = lr.predict(X_test_std)
print y_pred

OUT: [ 2.  0.  9. ...,  3.  9.  2.]

提交kaggle,得分排名比较靠后

画一个像素图片数字,第二个图片,上面预测是0

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import csv

test1 = test[1]
test2 = []
for el in test1:
    test2.append([0,0,el])

img = np.array(test2)
print img.shape
img1 = img.reshape((28,28,3))
plt.figure("dog")
plt.imshow(img1)
plt.axis('off')
plt.show()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏书山有路勤为径

Creating a Filter, Edge Detection

Below, you've been given one common type of edge detection filter: a Sobel opera...

10110
来自专栏数据结构与算法

洛谷P4180 [Beijing2010组队]次小生成树Tree

题目描述 小C最近学了很多最小生成树的算法,Prim算法、Kurskal算法、消圈算法等等。正当小C洋洋得意之时,小P又来泼小C冷水了。小P说,让小C求出一个无...

37780
来自专栏数据处理

Bagging与Boosting

12130
来自专栏Spark学习技巧

SparkMllib主题模型案例讲解

一 本文涉及到的算法 1, LDA主题模型 符号定义 文档集合D,m篇,topic集合T,k个主题 D中每个文档d看作一个单词序列< w1,w2,...,wn...

28750
来自专栏机器学习算法原理与实践

用scikit-learn和pandas学习Ridge回归

    本文将用一个例子来讲述怎么用scikit-learn和pandas来学习Ridge回归。

15820
来自专栏AI研习社

Github 项目推荐 | 基于 ID3 算法的 ML 决策树的实现

本库是实现用于决策树学习的 ID3 算法的 Ruby 库,目前能够学习连续和离散的数据集。

12310
来自专栏游遵文的专栏

机器学习优化算法:梯度下降(Gradient Descent)

优化算法 ( Optimization Algorithm ) 是机器学习理论中重要的组成部分,每年 ICML 会议中,总会有很多关于优化算法 Paper 以及...

68210
来自专栏机器之心

资源 | NIPS 2017 Spotlight论文Bayesian GAN的TensorFlow实现

33980
来自专栏Petrichor的专栏

深度学习: 经典 数据集 汇总

官网:www.cs.toronto.edu/~kriz/cifar 介绍:CIFAR-10数据集说明、TensorFlow CNN 测试CIFAR-10数据...

53630
来自专栏互联网大杂烩

逻辑斯蒂回归(Logistic Regression)

定义x=<x1,x2,...xn>来表示n维特征向量,权重为w=<w1,w2,...wn>,同时,截距(Intercept)为b。则这种线性关系为: f(w,...

11020

扫码关注云+社区

领取腾讯云代金券