数据挖掘-ionosphere数据集-k近邻算法-分类预测
来源:互联网 发布:淘宝店铺权重查询 编辑:程序博客网 时间:2024/05/16 17:42
#!/usr/bin/env python2# -*- coding: utf-8 -*-#检测系统用户路径import oshome_folder=os.path.expanduser("~")print("user's path {0}".format(home_folder))#拼接数据集位置data_folder=os.path.join(home_folder,"Data","Ionosphere")data_filename=os.path.join(data_folder,"ionosphere.data")print("dataset's path {0}".format(data_filename))#引入数据集import csvimport numpy as npX=np.zeros((351,34),dtype='float') #存351行数据y=np.zeros((351,),dtype='bool') #存对应的351个结果#ionosphere数据集描述: ''' 电离层数据集(Ionosphere Dataset)需要根据给定的电离层中的自由电子的雷达回波预测大气结构。 它是一个二元分类问题。每个类的观察值数量不均等,一共有 351 个观察值,34 个输入变量和1个输出变量。变量名如下:1 17对雷达回波数据。2 类(g 表示好,b 表示坏)。预测最普遍类的基准性能是约 64% 的分类准确率,最佳结果达到约 94% 的分类准确率。'''with open(data_filename,'r') as input_file: reader=csv.reader(input_file) for i,row in enumerate(reader): #获取每一行的数据,最后一列不要,并将数据转为float data=[float(datum) for datum in row[:-1]] #将取出的这一行数据存到X中 X[i]=data #最后将最后一列的数据转为 1或0 y[i]=row[-1]=='g' #以上已经将数据集取出来,测试一下Xy#接下来将数据集切为训练集和测试集from sklearn.cross_validation import train_test_splitx_train,x_test,y_train,y_test=train_test_split(X,y,random_state=14)print("training dataset: {0}".format(x_train.shape[0] ))print("testing dataset: {0}".format( x_test.shape[0]))print(" each sample has {0} features".format( x_train.shape[1]))#引入 k近邻算法from sklearn.neighbors import KNeighborsClassifierestimator=KNeighborsClassifier() #目前都使用默认参数#开始训练estimator.fit(x_train,y_train)#开始预测y_predicted=estimator.predict(x_test)#输出标准结果y_test#输出预测结果y_predicted#评估算法效果accuracy=np.mean(y_test==y_predicted)*100print("the accuracy is {0:.1f}%".format(accuracy)) # 86.4%#为了避免一次性测试的运气问题,我们引入交叉检验from sklearn.cross_validation import cross_val_scorescores=cross_val_score(estimator,X,y,scoring='accuracy')average_accuacy=np.mean(scores)*100print("the average accuracy is {0:.1f}%".format(average_accuacy)) # 82.3%################################################################################接下来,通过调整参数来提高预测的准确性#KNeighborsClassifier分类器最重要的参数是 设定几个近邻 n_neighbors#下面将近邻参数从1到20测试一下avg_scores=[]all_scores=[]parameter_values=list(range(1,21)) for n_neighbors in parameter_values: estimator=KNeighborsClassifier(n_neighbors=n_neighbors) scores=cross_val_score(estimator,X,y,scoring='accuracy') avg_scores.append( np.mean(scores)) all_scores.append( scores) #使用图来分析一下n_neighbors的不同取值与分类正确率的关系from matplotlib import pyplot as pltplt.figure(figsize=(32,20))plt.plot( parameter_values, avg_scores,'-o',linewidth=5,markersize=24)#随着近邻数的增加,准确率在下降.
0 0
- 数据挖掘-ionosphere数据集-k近邻算法-分类预测
- 数据挖掘-K-近邻分类器-Iris数据集分析-使用K-近邻分类器进行分类预测(四)
- 数据挖掘---分类算法之K近邻(KNN)算法
- 数据挖掘:K近邻
- 数据挖掘算法--分类与预测笔记
- 大数据入门——Iris数据集类别预测(K近邻分类器:KNN)
- 数据挖掘5-K近邻
- 数据挖掘十大算法--K近邻算法
- 数据挖掘10大算法(6)--K近邻算法
- 数据挖掘算法(一)--K近邻算法 (KNN)
- 数据挖掘-K-近邻分类器-Iris数据集分析-根据花萼长宽分类-以散点图显示(一)
- 数据挖掘-K-近邻分类器-Iris数据集分析-根据花瓣长宽分类-以散点图显示(二)
- 数据挖掘-K-近邻分类器-Iris数据集分析-PCA降维处理后显示分类情况(三)
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘:K最近邻(KNN)算法的java实现
- 数据挖掘十大经典算法之一:K近邻
- 数据挖掘-oneR算法-Iris数据集分析-使用oneR算法进行分类预测(五)
- 春来了
- 智能密码钥匙查看器UkeyViewer
- shell根据某列进行统计
- jquery笔记:jQuery.fx.off
- HTML5中的地理定位
- 数据挖掘-ionosphere数据集-k近邻算法-分类预测
- Tomcat8.5 / 9 安装ssl证书
- 资源索引
- 事件绑定的两种形式
- Java非访问修饰符
- Using Minimum Description Length to Optimize the 'K' in K-Medoids
- Spring事务处理概述
- 【JSTL】JSP标准标签库(一)——JSTL简介
- 论年度计划的可行性