模型原型
sklearn.neighbors.KNeighborsRegressor(n_neighbors=5,weights=’uniform’,
algorithm=’auto’,leaf_size=30,p=2, metric=’minkowski’,metric_params=None,n_jobs=1,**kwargs)
参数

  • n_neighbors
  • weights
  • algorithm
  • leaf_size
  • p
  • n_jobs

方法

  • fit(X,y)
  • predict(X)
  • score(X,y)
  • predict_proba(X)
  • kneighbors([X,n_neighbors,return_distance])
  • kneighbors_graph([X,n_neighbors,mode])
import numpy as np
import matplotlib.pyplot as plt
from sklearn import neighbors,datasets,cross_validation
def create_regression_data(n):
    X=5*np.random.rand(n,1)
    y=np.sin(X).ravel()
    y[::5]+=1*(0.5-np.random.rand(int(n/5)))
    return cross_validation.train_test_split(X,y,test_size=0.25,
        random_state=0)

使用KNeighborsRegressor

def test_KNeighborsRegressor(*data):
    X_train,X_test,y_train,y_test=data
    regr=neighbors.KNeighborsRegressor()
    regr.fit(X_train,y_train)
    print('Training Score:%f'%regr.score(X_train,y_train))
    print('Testing Score:%f'%regr.score(X_test,y_test))

X_train,X_test,y_train,y_test=create_regression_data(1000)
test_KNeighborsRegressor(X_train,X_test,y_train,y_test)

k值以及投票策略的影响

def test_KNeighborsRegressor_k_w(*data):
    X_train,X_test,y_train,y_test=data
    Ks=np.linspace(1,y_train.size,num=100,endpoint=False,dtype='int')
    weights=['uniform','distance']
    #绘图
    fig=plt.figure()
    ax=fig.add_subplot(1,1,1)
    for weight in weights:
        training_scores=[]
        testing_scores=[]
        for K in Ks:
            regr=neighbors.KNeighborsRegressor(weights=weight,
                n_neighbors=K)
            regr.fit(X_train,y_train.astype('int'))
            testing_scores.append(regr.score(X_test,y_test.astype('int')))
            training_scores.append(regr.score(X_train,
                y_train.astype('int')))
        ax.plot(Ks,testing_scores,label='testing score:weight=%s'%weight)
        ax.plot(Ks,training_scores,label='training score:weight=%s'%weight)
        ax.legend(loc='best')
        ax.set_xlabel('K')
        ax.set_ylabel('score')
        ax.set_ylim(0,1.05)
        ax.set_title('KNeighborsRegressor')
        plt.show()

test_KNeighborsRegressor_k_w(X_train,X_test,y_train,y_test)

p值的影响

def test_KNeighborsRegressor_k_p(*data):
    X_train,X_test,y_train,y_test=data
    Ks=np.linspace(1,y_train.size,endpoint=False,dtype='int')
    Ps=[1,2,10]
    fig=plt.figure()
    ax=fig.add_subplot(1,1,1)
    for P in Ps:
        training_scores=[]
        testing_scores=[]
        for K in Ks:
            clf=neighbors.KNeighborsRegressor(p=P,n_neighbors=K)
            clf.fit(X_train,y_train)
            testing_scores.append(clf.score(X_test,y_test))
            training_scores.append(clf.score(X_train,y_train))
        ax.plot(Ks,testing_scores,label='testing score:p=%d'%P)
        ax.plot(Ks,training_scores,label='training score:p=%d'%P)
    ax.legend(loc='best')
    ax.set_xlabel("K")
    ax.set_ylabel('score')
    ax.set_ylim(0,1.05)
    ax.set_title('KNeighborsRegressor')
    plt.show()

test_KNeighborsRegressor_k_p(X_train,X_test,y_train,y_test)

更多相关文章

  1. Django代理模型返回父模型
  2. Tensorflow:恢复图形和模型,然后在单个图像上运行评估
  3. [caffe(二)]Python加载训练caffe模型并进行测试2
  4. 新人求助:tensorflow官方文档里构建第一个多层卷积网络,训练和评估
  5. 双插槽与单插槽内存模型?
  6. 如何使用来自其他模型的信息来注释查询集,或者在Django Rest Fram
  7. Java 网络 IO 模型
  8. Java并发编程(四)Java内存模型
  9. java内存垃圾回收模型

随机推荐

  1. Android TextView加上阴影效果
  2. Android 启动过程
  3. android 多窗口模式activity的生命周期
  4. Android获取摄像头详细信息
  5. MAC上使用maven打android的包,报错:No And
  6. 【WebRTC】在Android上用NDK编译WebRtc音
  7. Android(安卓)Gradle依赖管理、去除重复
  8. Android 安全攻防(三): SEAndroid Zygote
  9. Android(安卓)json数据解析详解及实例代
  10. TextView属性大全