题目

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import pandas as pd
import numpy as np
train_full=pd.read_csv('../zip.train',sep=' ',engine='c',header=None).values[:,0:-1]
test_full=pd.read_csv('../zip.test',sep=' ',engine='c',header=None).values
   
train = np.vstack((train_full[train_full[:,0]==2],train_full[train_full[:,0]==3]))
test = np.vstack((test_full[test_full[:,0]==2],test_full[test_full[:,0]==3]))
   
train_x=train[:,1:]
train_y=train[:,0]
test_x=test[:,1:]
test_y=test[:,0]
   
dc = []
from sklearn.linear_model import LinearRegression
lrcf = LinearRegression()
lrcf.fit(train_x, train_y)
dc.append(('linear regression',lrcf))
   
from sklearn.neighbors import KNeighborsClassifier
for i in [1,3,5,7,15]:
    knn = KNeighborsClassifier(n_neighbors=i)
    knn.fit(train_x,train_y)
    dc.append(('%d-nearest neighbor' %(i),knn))
   
def acc(clf,x,y):
    res = clf.predict(x)
    if type(clf)==LinearRegression:
        res[res>2.5]=3
        res[res<2.5]=2
    n = y.shape[0]
    r = res[(res==y)].shape[0]
    return r*1.0/n
   
for i in dc:
    accr = acc(i[1],test_x,test_y)
    print '%s:  %.5f' %(i[0],accr)

结果

linear regression:  0.95879

1-nearest neighbor:  0.97527

3-nearest neighbor:  0.96978

5-nearest neighbor:  0.96978

7-nearest neighbor:  0.96703

15-nearest neighbor:  0.96154

2.x ESL第二章习题 2.8的更多相关文章

  1. 2.x ESL第二章习题2.4

    题目 准备 $x_i\sim N(0,1)$,有$\sum_i^n x_i^2 \sim \chi^2(n)$其中$n$称为自由度,卡方分布的均值即其自由度 $x_i\sim N(\mu_i,\sig ...

  2. 2.x ESL第二章习题2.5

    题目 描述 $y_i=x_i^T\beta+\epsilon_i$$\epsilon_i\sim N(0,\sigma^2)$ 已有训练集$\tau$,其中$X:n\times p,y:n\times ...

  3. 统计学习导论:基于R应用——第二章习题

    目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...

  4. Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

    Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么 ...

  5. 最小正子序列(序列之和最小,同时满足和值要最小)(数据结构与算法分析——C语言描述第二章习题2.12第二问)

    #include "stdio.h" #include "stdlib.h" #define random(x) (rand()%x) void creat_a ...

  6. 中级Perl第二章习题

    2. 4. 1. 习题1 [15 分钟] 写一个程序从命令行取一个文件清单, 然后用grep 把那些文件大小在1000 字节以内的文件找出来.用map 把这个清单里的每个字串前加四个空格并在 字串后面 ...

  7. 算法竞赛入门经典第二版第二章习题-(练习Java和C++语法)

    习题2-1水仙花数(daffodil) 输出1000-999中所有的水仙花数.若三位数ABC满足ABC = A3+B3+C3,则称其为水仙花数. Java: package suanfa; publi ...

  8. 《Python自然语言处理》第二章-习题解答-练习6

    问题描述:在比较词表的讨论中,创建一个对象叫做translate,通过它你可以使用德语和意大利语词汇查找对应的英语词汇.这种方法可能会出现什么问题,你能提出一个办法来避免这个问题吗? 虽然这是一道初级 ...

  9. Python《学习手册:第二章-习题》

    什么是Python解释器? Python解释器是运行Python程序的程序. 什么是源代码? 源代码是为程序所写的语句:它包括文本文件(通常以.py为文件名结尾)的文件. 什么是字节码? 字节码是Py ...

随机推荐

  1. Hdu4742-Pinball Game 3D(cdq分治+树状数组)

    Problem Description RD is a smart boy and excel in pinball game. However, playing common 2D pinball ...

  2. bwlabel函数的c++实现

    实验中需要用到区域联通的算法,就是类似于matlab中bwlabel的函数.网上找了找c++源码未果,bwlabel-python版用python描述了matlab中的实现方法,但是最后对标签的处理部 ...

  3. 【HDU1754】I Hate It(线段树)

    update:单点替换 query:区间最值 #include <iostream> #include <cstring> #include <cstdlib> # ...

  4. Hibernate自定义主键

    Hibernate自定义主键,通过此方法可以解决一此特殊的主键ID,在了解自定义主键时,先了解下Hibernate有自带的10种生成主键方法. 1) assigned主键由外部程序负责生成,无需Hib ...

  5. iOS 3DES加密 和 java 3DES 解密

    首先进入头文件: #import <CommonCrypto/CommonDigest.h> #import <CommonCrypto/CommonCryptor.h> #i ...

  6. C#实现下载功能,可用于软件自动更新

    以前在百度写的文档,转移到此处 软件截图: 代码下载: http://twzy.ys168.com/   在代码下载文件夹中 //代码: using System; using System.Comp ...

  7. 【SVN Working copy is too old (format 10, created by Subversion 1.6)】解决方式

    SVN同步或者提交的时候出现类似错误信息: The working copy needs to be upgraded svn: Working copy 'D:\adt-bundle-windows ...

  8. git commit -am 合并操作

    二,合并的操作 1, 首先按需修改文件 echo >> lz66303.txt 2, 然后按需提交被修改的文件到HEAD缓存区,并把这个修改记录到分支中 git commit -am&qu ...

  9. Winform开发之窗体传值

    Winform的窗体之间的数据传递是开发的必备技术,下面介绍几种典型的传值方法 1.构造函数传值,但这种方法是单向的(推荐) 上代码,先传值 private void button2_Click(ob ...

  10. (转)Should I use char** argv or char* argv[]

      As you are just learning C, i recommend you to really try to understand the differences between ar ...