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文本特征提取(找关键词)
- TF-IDF:衡量一个词的重要性
- 公式——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()
|