目录
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) ) )
三、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()