Python数据挖掘入门与实践(二)——用scikit-learn估计器分类
来源:互联网 发布:青岛java招聘 编辑:程序博客网 时间:2024/05/19 07:42
几个概念:
估计器(Estimator):用于分类、聚类和回归分析;转换器(Transformer):用于数据预处理和数据转换;流水线(Pipeline):组合数据挖掘流程,便于再次使用。
1、scikit-learn估计器:
估计器用于分类任务,它主要包括以下两个函数:
fit():训练算法,设置内部参数。该函数接收训练集及其类别两个参数。
predict():参数为测试集。预测测试集类别,并返回一个包含测试集各条数据类别的数组。
大多数scikit-learn估计器接收和输出的数据格式均为numpy数组或类似格式。scikit-learn提供了大量估计器,其中有支持向量机(SVM)、随机森林、神经网络等。
a、近邻算法
为了对新个体进行分类,它查找训练集,找到与新个体最相似的那些个体,看看这些个体大多属于哪个类别,就把新个体分到哪个类别。近邻算法几乎可以对任何数据集进行分类,但是要计算数据集中每两个个体之间的距离,计算量很大;在特征取离散的数据集上表现很差。遇到这种情况,应该考虑使用其他算法。
b、距离度量
距离是数据挖掘的核心概念之一。我们往往需要知道两个个体之间的距离是多少。更进一步说,我们还得能够解决一对个体相对另一个个体是否更相近等问题。这类问题的解决方法,将直接影响分类结果。
欧氏距离确实很直观,但是如果某些特征比其他特征取值大很多,精确度就会比较差。此外,如果很多特征值为0,也就是所谓的稀疏矩阵,结果也不准确。这时可以用其他距离度量方法,常用的有曼哈顿距离和余弦距离。曼哈顿距离为两个特征在标准坐标系中绝对轴距之和。余弦距离更适合解决异常值和数据稀疏问题,余弦距离指的是特征向量夹角的余弦值。
近邻算法机器学习实例:
测试数据集来自:http://archive.ics.uci.edu/ml/datasets/Ionosphere
import numpy as np
import csv
from os.path import os
data_filename=os.path.join("..\data","ionosphere.data.csv")
X=np.zeros((351,34),dtype='float')
y=np.zeros((351,),dtype='bool')
with open(data_filename,'r') as input_file:
reader=csv.reader(input_file)
for i,row in enumerate(reader):
data=[float(datum) for datum in row[:-1]]
X[i]=data
y[i]=row[-1]=='g'
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=14)
from sklearn.neighbors import KNeighborsClassifier
estimator=KNeighborsClassifier()
estimator.fit(X_train,y_train)
y_predicted=estimator.predict(X_test)
accuracy=np.mean(y_test==y_predicted)*100
print("The accuray is{0:.1f}%".format(accuracy))
- Python数据挖掘入门与实践(二)——用scikit-learn估计器分类
- python数据挖掘与入门实践(2.1)用sciket-learn估计器分类
- python数据挖掘与入门实践(2.2)用sciket-learn估计器分类
- Python数据挖掘入门与实践(二)——scikit-learn数据的预处理转换器以及流水线
- 【scikit-learn】Python分类实例
- python scikit learn 文本分类
- Python数据挖掘入门与实践(一)——亲和性分析
- Python数据挖掘入门与实践(四)——亲和性分析
- 【scikit-learn】学习Python来分类现实世界的数据
- 【python】《Python数据挖掘入门与实践》实验环境搭建
- 《python数据挖掘入门与实践》笔记1
- 《python数据挖掘入门与实践》笔记2
- 《python数据挖掘入门与实践》“电影推荐” 笔记3
- python数据分析与挖掘实践—拉格朗日插值法
- Python scikit-learn分类 近邻算法KNN
- Scikit-Learn 实战 iris数据集分类
- 机器学习实践指南(二)—— 作为 baseline 的 SVM(scikit-learn)
- 【Scikit-Learn 中文文档】二十九:优化估计器的超参数
- Android仿最新微信自定义相机(长按拍摄,轻点拍照)
- dlnuacm-book完成计划(gitbook的使用)
- C++之编码问题(Unicode,ASCII,本地默认)
- Codeforces 230C Shifts【思维】
- 《Deep Self-Taught Learning for Weakly Supervised Object Localization》
- Python数据挖掘入门与实践(二)——用scikit-learn估计器分类
- 程序设计中的堆和栈
- Android移动开发-使用摄像头和麦克风录制视频的实现
- Zookeeper的功能以及工作原理
- apache服务器开启Gzip压缩服务
- Scratch2.0编程--第十一节 运算符
- Java基础 -- 线程
- 2017/9/30 学习笔记
- python基础(一)--join和os.path.join函数的用法以及字符串格式化