加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

数据处理的统计学习(scikit-learn教程)

发布时间:2020-12-26 01:40:33 所属栏目:大数据 来源:网络整理
导读:数据挖掘入门与实战 ?公众号: datadw Scikit-learn 是一个紧密结合Python科学计算库(Numpy、Scipy、matplotlib),集成经典机器学习算法的Python模块。 一、统计学习:scikit-learn中的设置与评估函数对象 (1)数据集 scikit-learn 从二维数组描述的数据中
副标题[/!--empirenews.page--]

数据处理的统计学习(scikit-learn教程)


数据挖掘入门与实战 ?公众号: datadw



Scikit-learn 是一个紧密结合Python科学计算库(Numpy、Scipy、matplotlib),集成经典机器学习算法的Python模块。


一、统计学习:scikit-learn中的设置与评估函数对象

(1)数据集

scikit-learn 从二维数组描述的数据中学习信息。他们可以被理解成多维观测数据的列表。如(n,m),n表示样例轴,y表示特征轴。

使用scikit-learn装载一个简单的样例:iris数据集

>>from sklearn import datasets
>>iris = datasets.load_iris()
>>data = iris.data
>>data.shape (150,4)

它有150个iris观测数据构成,每一个样例被四个特征所描述:他们的萼片、花瓣长度、花瓣宽度,具体的信息可以通过iris》DESCR查看。

当数据初始时不是(n样例,n特征)样式时,需要将其预处理以被scikit-learn使用。

通过数字数据集讲述数据变形
数字数据集由1797个8x8手写数字图片组成

>>>digits = datasets.load_digits()
>>>digits.images.shape (1797,8,8)
>>> import pylab as pl >>>pl.imshow(digits.images[-1],cmap=pl.cm.gray_r) <matplotlib.image.AxesImage object at ...>


在scikit-learn中使用这个数据集,我们需要将其每一个8x8图片转换成长64的特征向量

python
>>>data = digits.images.reshape((digits.images.shape[0],-1))

(2)估计函数对象

拟合数据:scikit-learn实现的主要API是估计函数。估计函数是用以从数据中学习的对象。它可能是分类、回归、聚类算法,或者提取过滤数据特征的转换器。

一个估计函数带有一个fit方法,以dataset作为参数(一般是个二维数组)

>>>estimator.fit(data)

估计函数对象的参数:每一个估测器对象在实例化或者修改其相应的属性,其参数都会被设置。

>>>estimator = Estimator(param1=1,param2=2)
>>>estimator.param11

估测后的参数

>>>estimator.estimated_param_

二、有监督学习:从高维观察数据预测输出变量

有监督学习解决的问题
有监督学习主要是学习将两个数据集联系起来:观察数据x和我们要尝试预测的外置变量y,y通常也被称作目标、标签。多数情况下,y是一个和n个观测样例对应的一维数组。
scikit-learn中实现的所有有监督学习评估对象,都有fit(X,Y)方法来拟合模型,predict(X)方法根据未加标签的观测数据X
返回预测的标签y。

词汇:分类和回归
如果预测任务是将观测数据分类到一个有限的类别集中,换句话说,给观测对象命名,那么这个任务被称作分类任务。另一方面,如果任务的目标是预测测目标是一个连续性变量,那么这个任务成为回归任务。
用scikit-learn解决分类问题时,y是一个整数或字符串组成的向量
注意:查看[]快速了解用scikit-learn解决机器学习问题过程中的基础词汇。

(1)近邻和高维灾难

iris分类
iris分类是根据花瓣、萼片长度、萼片宽度来识别三种不同类型的iris的分类任务:

>> import numpy as np
>> from sklearn import datasets
>> iris = datasets.load_iris()
>> iris_X = iris.data>> iris_y = iris.target
>> np.unique(iris_y) array([0,1,2])

最近邻分类器
近邻也许是最简的分类器:得到一个新的观测数据X-test,从训练集的观测数据中寻找特征最相近的向量。(【】)

训练集和测试集
当尝试任何学习算法的时候,评估一个学习算法 的预测精度是很重要的。所以在做机器学习相关的问题的时候,通常将数据集分成训练集和测试集。

KNN(最近邻)分类示例:

# Split iris data in train and test data
# A random permutation,to split the data randomlynp.random.seed(0) indices = np.random.permutation(len(iris_X)) iris_X_train = iris_X[indices[:-10]] iris_y_train = iris_y[indices[:-10]] iris_X_test ?= iris_X[indices[-10:]] iris_y_test ?= iris_y[indices[-10:]]
# Create and fit a nearest-neighbor classifierfrom sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier() knn.fit(iris_X_train,iris_y_train) knn.predict(iris_X_test) iris_y_test

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读