sklearn knn与kmeans

10 篇文章 0 订阅
2 篇文章 0 订阅

《机器学习技法》最后一次作业,共有三个编程实验,倒数两个是knn和kmeans。照例用sklearn做,很快。

knn:分别求k=1和k=5时的Ein和Eout.

from sklearn import neighbors
import numpy as np

train_data = np.loadtxt('hw4_knn_train.dat')
train_x = train_data[:, :-1]
train_y = train_data[:,-1]

test_data = np.loadtxt('hw4_knn_test.dat')
test_x = test_data[:, :-1]
test_y = test_data[:,-1]

clf = neighbors.KNeighborsClassifier(n_neighbors=5)
clf.fit(train_x, train_y)

err_in = 1 - clf.score(train_x, train_y)
err_out = 1 - clf.score(test_x, test_y)
print err_in, err_out

kmeans:


分别求k=2和k=10时的Ein

from __future__ import division
from sklearn.cluster import KMeans
import numpy as np

data = np.loadtxt('hw4_kmeans_train.dat')
N = data.shape[0]

repeat = 500
e_in = 0

for i in range(repeat):
    clf = KMeans(n_clusters=10, init='random', max_iter=300)
    clf.fit(data)
    e_in = e_in + clf.inertia_/N
    
print e_in/repeat




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值