sklearn中模型抽取

特征抽取sklearn.feature_extraction 模块提供了从原始数据如文本,图像等众抽取能够被机器学习算法直接处理的特征向量。

1.特征抽取方法之 Loading Features from Dicts

measurements=[
    {‘city‘:‘Dubai‘,‘temperature‘:33.},
    {‘city‘:‘London‘,‘temperature‘:12.},
    {‘city‘:‘San Fransisco‘,‘temperature‘:18.},
]

from sklearn.feature_extraction import DictVectorizer
vec=DictVectorizer()
print(vec.fit_transform(measurements).toarray())
print(vec.get_feature_names())

#[[  1.   0.   0.  33.]
 #[  0.   1.   0.  12.]
 #[  0.   0.   1.  18.]]

#[‘city=Dubai‘, ‘city=London‘, ‘city=San Fransisco‘, ‘temperature‘]

2.特征抽取方法之 Features hashing

3.特征抽取方法之 Text Feature Extraction

词袋模型 the bag of words represenatation

#词袋模型
from sklearn.feature_extraction.text import CountVectorizer
#查看默认的参数
vectorizer=CountVectorizer(min_df=1)
print(vectorizer)

"""
CountVectorizer(analyzer=‘word‘, binary=False, decode_error=‘strict‘,
        dtype=<class ‘numpy.int64‘>, encoding=‘utf-8‘, input=‘content‘,
        lowercase=True, max_df=1.0, max_features=None, min_df=1,
        ngram_range=(1, 1), preprocessor=None, stop_words=None,
        strip_accents=None, token_pattern=‘(?u)\\b\\w\\w+\\b‘,
        tokenizer=None, vocabulary=None)

"""

corpus=["this is the first document.",
        "this is the second second document.",
        "and the third one.",
        "Is this the first document?"]
x=vectorizer.fit_transform(corpus)
print(x)

"""
(0, 1)    1
  (0, 2)    1
  (0, 6)    1
  (0, 3)    1
  (0, 8)    1
  (1, 5)    2
  (1, 1)    1
  (1, 6)    1
  (1, 3)    1
  (1, 8)    1
  (2, 4)    1
  (2, 7)    1
  (2, 0)    1
  (2, 6)    1
  (3, 1)    1
  (3, 2)    1
  (3, 6)    1
  (3, 3)    1
  (3, 8)    1
"""

默认是可以识别的字符串至少为2个字符

analyze=vectorizer.build_analyzer()
print(analyze("this is a document to anzlyze.")==    (["this","is","document","to","anzlyze"]))

#True

在fit阶段被analyser发现的每一个词语都会被分配一个独特的整形索引,该索引对应于特征向量矩阵中的一列

print(vectorizer.get_feature_names()==(
    ["and","document","first","is","one","second","the","third","this"]
))
#True
print(x.toarray())
"""
[[0 1 1 1 0 0 1 0 1]
 [0 1 0 1 0 2 1 0 1]
 [1 0 0 0 1 0 1 1 0]
 [0 1 1 1 0 0 1 0 1]]
"""

获取属性

print(vectorizer.vocabulary_.get(‘document‘))
#1

对于一些没有出现过的字或者字符,则会显示为0

vectorizer.transform(["somthing completely new."]).toarray()
"""
[[0 1 1 1 0 0 1 0 1]
 [0 1 0 1 0 2 1 0 1]
 [1 0 0 0 1 0 1 1 0]
 [0 1 1 1 0 0 1 0 1]]
"""

在上边的语料库中,第一个和最后一个单词是一模一样的,只是顺序不一样,他们会被编码成相同的特征向量,所以词袋表示法会丢失了单词顺序的前后相关性信息,为了保持某些局部的顺序性,可以抽取2个词和一个词

bigram_vectorizer=CountVectorizer(ngram_range=(1,2),token_pattern=r"\b\w+\b",min_df=1)
analyze=bigram_vectorizer.build_analyzer()
print(analyze("Bi-grams are cool!")==([‘Bi‘,‘grams‘,‘are‘,‘cool‘,‘Bi grams‘,
                                 ‘grams are‘,‘are cool‘]))

#True
x_2=bigram_vectorizer.fit_transform(corpus).toarray()
print(x_2)

"""
[[0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0]
 [0 0 1 0 0 1 1 0 0 2 1 1 1 0 1 0 0 0 1 1 0]
 [1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0]
 [0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1]]
"""

原文地址:https://www.cnblogs.com/cmybky/p/11772638.html

时间: 2024-10-13 05:31:35

sklearn中模型抽取的相关文章

sklearn 中模型保存的两种方法

一. sklearn中提供了高效的模型持久化模块joblib,将模型保存至硬盘. from sklearn.externals import joblib #lr是一个LogisticRegression模型 joblib.dump(lr, 'lr.model') lr = joblib.load('lr.model') 二.pickle >>> from sklearn import svm >>> from sklearn import datasets >&

sklearn中模型评估和预测

一.模型验证方法如下: 通过交叉验证得分:model_sleection.cross_val_score(estimator,X) 对每个输入数据点产生交叉验证估计:model_selection.cross_val_predict(estimator,X) 计算并绘制模型的学习率曲线:model_selection.learning_curve(estimator,X,y) 计算并绘制模型的验证曲线:model_selection.validation(estimator,...) 通过排序评

sklearn中的模型评估-构建评估函数

1.介绍 有三种不同的方法来评估一个模型的预测质量: estimator的score方法:sklearn中的estimator都具有一个score方法,它提供了一个缺省的评估法则来解决问题. Scoring参数:使用cross-validation的模型评估工具,依赖于内部的scoring策略.见下. Metric函数:metrics模块实现了一些函数,用来评估预测误差.见下. 2. scoring参数 模型选择和评估工具,例如: grid_search.GridSearchCV 和 cross

sklearn中拟合结果的评价指标

在sklearn中包含四种评价尺度,分别为mean_squared_error.mean_absolute_error.explained_variance_score 和 r2_score. 1.均方差(mean-squared-error) 2.平均绝对值误差(mean_absolute_error) 3.可释方差得分(explained_variance_score) explained variation measures the proportion to which a mathem

sklearn中LinearRegression使用及源码解读

sklearn中的LinearRegression 函数原型:class sklearn.linear_model.LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1) fit_intercept:模型是否存在截距 normalize:模型是否对数据进行标准化(在回归之前,对X减去平均值再除以二范数),如果fit_intercept被设置为False时,该参数将忽略. 该函数有属性:coef_可供查看模

多项式回归原理及在sklearn中的使用+pipeline

相对于线性回归模型只能解决线性问题,多项式回归能够解决非线性回归问题. 拿最简单的线性模型来说,其数学表达式可以表示为:y=ax+b,它表示的是一条直线,而多项式回归则可以表示成:y=ax2+bx+c,它表示的是二次曲线,实际上,多项式回归可以看成特殊的线性模型,即把x2看成一个特征,把x看成另一个特征,这样就可以表示成y=az+bx+c,其中z=x2,这样多项式回归实际上就变成线性回归了. 下面介绍如何在sklearn中使用多项式回归 首先导入相应的库以及创造数据 1 import numpy

sklearn中SVM调参说明

写在前面 之前只停留在理论上,没有实际沉下心去调参,实际去做了后,发现调参是个大工程(玄学).于是这篇来总结一下sklearn中svm的参数说明以及调参经验.方便以后查询和回忆. 常用核函数 1.linear核函数: K(xi,xj)=xTixjK(xi,xj)=xiTxj 2.polynomial核函数: K(xi,xj)=(γxTixj+r)d,d>1K(xi,xj)=(γxiTxj+r)d,d>1 3.RBF核函数(高斯核函数): K(xi,xj)=exp(−γ||xi−xj||2),γ

sklearn 中的交叉验证

sklearn中的交叉验证(Cross-Validation) sklearn是利用python进行机器学习中一个非常全面和好用的第三方库,用过的都说好.今天主要记录一下sklearn中关于交叉验证的各种用法,主要是对sklearn官方文档 Cross-validation: evaluating estimator performance进行讲解,英文水平好的建议读官方文档,里面的知识点很详细. 1. cross_val_score对数据集进行指定次数的交叉验证并为每次验证效果评测其中,sco

sklearn中调用集成学习算法

1.集成学习是指对于同一个基础数据集使用不同的机器学习算法进行训练,最后结合不同的算法给出的意见进行决策,这个方法兼顾了许多算法的"意见",比较全面,因此在机器学习领域也使用地非常广泛.生活中其实也普遍存在集成学习的方法,比如买东西找不同的人进行推荐,病情诊断进行多专家会诊等,考虑各方面的意见进行最终的综合的决策,这样得到的结果可能会更加的全面和准确.另外,sklearn中也提供了集成学习的接口voting classifier. sklearn中具体调用集成学习方法的具体代码如下: