sklearn学习之K近邻算法
来源:互联网 发布:有哪些网络调查网站 编辑:程序博客网 时间:2024/06/08 03:51
K近邻法有三个要素:k值选择,距离度量,分类决策规则
KNN分类
class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights=’uniform’,
algorithm=’auto’,leaf_size=30,p=2,mertic=’minkowski’,
mertic_params=None,n_jobs=1,**kwargs)
具体参数含义如下:
n_neighbors:一个整数,指定k值
weights:一个字符串或者可调用对象,指定投票权重类型。
如果为’uniform’:本节点的所有邻居节点投票权重相同
如果为’distance’:本节点所有邻居节点的投票权重与距离成反比
[callable]:一个可调用对象,传入距离的数组,返回同样形状的权重数组
algorithm:一个字符串,指定计算最近邻的算法
‘ball_tree’:使用BallTree算法
‘kd_tree’:使用KdTree算法
‘brute’:使用暴力搜索法
‘auto’:自动选择最合适的算法
leaf_size:一个整数,指定BallTree或者KdTree叶节点的规模,它影响树的构建和查询速度
mertic:一个字符串,指定距离的度量。默认为’minkowski’
p:整数值,指定在’Minkowski’度量的指数,为1,则代表曼哈顿距离,为2代表欧式距离
n_jobs:并行性。若为-1,则将派发到所有CPU上
KNN回归
class sklearn.neighbor.KNeighborsRegresssor(n_neighbors=5,weights=’uniform’,
algorithm=’auto’,leaf_size=30,p=2,mertic=’minkowski’,
mertic_params=None,n_jobs=1,**kwargs)
具体参数含义如下:
n_neighbors:一个整数,指定k值
weights:一个字符串或者可调用对象,指定投票权重类型。
如果为’uniform’:本节点的所有邻居节点投票权重相同
如果为’distance’:本节点所有邻居节点的投票权重与距离成反比
[callable]:一个可调用对象,传入距离的数组,返回同样形状的权重数组
algorithm:一个字符串,指定计算最近邻的算法
‘ball_tree’:使用BallTree算法
‘kd_tree’:使用KdTree算法
‘brute’:使用暴力搜索法
‘auto’:自动选择最合适的算法
leaf_size:一个整数,指定BallTree或者KdTree叶节点的规模,它影响树的构建和查询速度
mertic:一个字符串,指定距离的度量。默认为’minkowski’
p:整数值,指定在’Minkowski’度量的指数,为1,则代表曼哈顿距离,为2代表欧式距离
n_jobs:并行性。若为-1,则将派发到所有CPU上
import numpy as npimport matplotlib.pyplot as pltfrom sklearn import neighbors,datasets,cross_validationdef load_data(): digits=datasets.load_digits() X_train=digits.data y_train=digits.target return cross_validation.train_test_split(X_train,y_train,test_size=0.25, random_state=0,stratify=y_train)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)def test_KNeighorsClassifier(*data): X_train,X_test,y_train,y_test=data clf=neighbors.KNeighborsClassifier() clf.fit(X_train,y_train) print("training score:%f"%clf.score(X_train,y_train)) print("testing score:%f"%clf.score(X_test,y_test))def test_KNeighorsClassifier_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: clf=neighbors.KNeighborsClassifier(weights=weight,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: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("KNeighborsClassifier") plt.show()def test_KNeighborsClassifier_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.KNeighborsClassifier(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("KNeighborsClassifier") plt.show()if __name__=='__main__': X_train,X_test,y_train,y_test=load_data() test_KNeighborsClassifier_k_p(X_train,X_test,y_train,y_test) #test_KNeighorsClassifier(X_train,X_test,y_train,y_test) #test_KNeighorsClassifier_K_w(X_train,X_test,y_train,y_test)
- sklearn学习之K近邻算法
- 机器学习笔记之K近邻算法
- 机器学习之K-近邻算法
- 机器学习实战之K-近邻算法
- python机器学习之K近邻算法
- 《机器学习实战》之K-近邻算法
- python学习3之K近邻算法
- 机器学习之k-近邻算法
- python机器学习之 K-近邻算法
- 机器学习之k近邻算法
- 机器学习实战之k-近邻算法
- 机器学习之K-近邻算法
- 机器学习之K近邻算法
- 机器学习笔记之K-近邻算法
- 机器学习实战之K近邻算法
- opencv 学习之 K近邻算法解析
- 深度学习之k-近邻算法案例
- 机器学习之K-近邻算法
- jQuery源码阅读(九)---ready函数理解
- Fzu 2256 迷宫【基础树形Dp】
- SEVERE: Error loading WebappClassLoader
- window 下出现[14748] 17 Jul 21:15:54.400 # Creating Server TCP listening socket 127.0.0.1:6379: bind: N
- Git的步骤以及命令
- sklearn学习之K近邻算法
- 献给杭电五十周年校庆的礼物 HDU 1290
- CSS中关于定位的那些问题
- Qt笔记·第四篇子类化QDialog
- 工作日报
- Hadoop学习日志1-结构化数据与非结构化数据
- Curl get/post传值
- hibernate之概述,入门案例(配置文件,api)(01)
- 关于hibernate的见解