数据集和特征提取

目录

sklearn数据集

一、scikit-learn数据集API介绍

  • sklearn.datasets
    加载获取流行数据集
    datasets.load_*()
    – 获取小规模数据
  • datasets.fetch_*(data_home=None)
    获取大规模数据集,需要从网络上下载,函数第一个参数是data_home,表示数据集下载的目录,默认是 ~/sickit_learn_data/

二、sklearn大数据集

  • sklearn.datasets.fetch_20newsgroups'data_home=None, subset=“train”)
    – subset:“train”或者“test”,“all”,可选

三、sklearn返回值

  • load和fetch返回的数据集类型datasets.base.Bunch(字典格式)
  • data:特征数据集,是二维数组numpy.ndarray
  • target:标签数组,一维
  • DESCR:数据描述
  • feature_names:特征名
  • target_names:标签名
from sklearn.datasets import load_iris

def datasets_demo():
    '''
    sklear数据集使用
    '''
    iris = load_iris()
    print("花:\n",iris)
    print("特征值名:\n",iris.feature_names)
    print("类型:\n",iris.data.shape[0])
    print("第二:\n",iris.target.shape[0])
    return None

if __name__ == "__main__":
    datasets_demo()

数据集划分api

  • sklearn.model_selection.train_test_split(arrays,*options)
  • x 数据集的特征值
  • y 数据集的标签值
  • test_size (一般float类型)
  • random_state 随机数种子
  • return 训练集特征值,测试集特征值,训练集目标值,测试集目标值
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

def datasets_demo():
    '''
    sklear数据集使用
    '''
    iris = load_iris()
    x, y, train_name, test_name = train_test_split(iris.data, iris.target, test_size=0.2, random_state=22)
    print("训练集的特征值:\n",x.shape)
    print("测试集的特征值:\n",y.shape)
    return None

if __name__ == "__main__":
    datasets_demo()

补充:shape用法

特征值提取

特征提取APIsklearn.feature_extraction

一、字典特征提取

  • sklearn.feature_extraction.DictVectorizer(sparse=Ture)
  • DictVectorizer.fit_transform(x) X:包含字典的迭代器返回值,返回sparse(稀疏)矩阵
  • DictVectorizer.inverse_transform(x) X:array数组或者sparse矩阵,返回值:转换之前的数据格式
  • DictVectorizer.get_feature_names()返回类别名称
from sklearn.feature_extraction import DictVectorizer

def dict_demo():
    '''
    字典特征抽取
    '''
    data = [{'city':'北京','temperature':100}, {'city':'上海','temperature':60}, {'city':'深圳','temperature':30}]
    tranfer = DictVectorizer(sparse=False)
    data_new = tranfer.fit_transform(data)
    print("data_new:\n", data_new)
    print(transfer.get_feature_names())
    return None

if __name__ == "__main__":
    dict_demo()

二、文本特征提取

  • sklearn.feature_extranction.text.CountVectorizer(stop_words=[停用词])
    返回词频矩阵

  • CountVectorizer.fit_transform(x) X

  • CountVectorizer.inverse_transform(x) X

  • CountVectorizer.get_feature_names()

  • 代码和“字典”类似

  • import jieba自动分词(中午)

def cut_word(text):
   '''中文分词函数'''
   return " ".join( list ( jieba.cut (text) ) )

join函数用法

三、Tf-idf文本特征提取(找关键词)

  1. TF-IDF:衡量一个词的重要性
  2. 公式——TF:词频(term frequency),某一个词在该文章的频率。
    IDF:逆向文档频率(inverse document frequency),是一个词普遍重要性的度量。可由总文件数目除以包含该词之文件的数目,再将得到的商除以10为底的对数得到

API

  • sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None…)
  • 返回词的权重矩阵
  • TfidfVectorizer.fit_transform(X): "X"文本或者包含文本字符串的可迭代对象 "返回值"返回sparse矩阵
  • TfidfVectorizer.inverse_transform(X)"X"array数组或者sparse矩阵"返回值"转换之前的数据格式
  • TfidfVectorizer.get_feature_names()
上一篇:机器学习(二)


下一篇:git本地分支与远程分支关联与解除关联