sklearn.datasets
sklearn.datasets.load_iris()
sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
datasets.base.Bunch(继承自字典)
dict["key"] = values
bunch.key = values
测试集 20%~30%
sklearn.model_selection.train_test_split(arrays, *options)
训练集特征值,测试集特征值,训练集目标值,测试集目标值
x_train, x_test, y_train, y_test
代码展示:
from sklearn.datasets import load_iris#小规模:load大规模:bunch
from sklearn.model_selection import train_test_split
def datasets_demo():
'''
sklearn数据集的使用
'''
#1、数据集的获取
iris=load_iris()
print("花数据集:\n",iris)
print("查看数据集的描述:\n",iris["DESCR"])
print("查看特征值的名字:\n",iris.feature_names)
print("查看特征值:\n",iris.data.shape)
#2、数据集的划分
#训练集特征值,测试集特征值,训练集目标值,测试集目标值
#x_train, x_test, y_train, y_test
x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target,test_size=0.2,random_state=22)
print("训练集的特征值:\n",x_train,x_train.shape)
return None
特征抽取:将任意数据集转化成用于机器学习的数字特征
sklearn.feature_extraction
sklearn.feature_extraction.DictVectorizer(sparse=True,…)
vector 数学:向量 物理:矢量
矩阵 matrix 二维数组
向量 vector 一维数组
代码展示:
from sklearn.feature_extraction import DictVectorizer
'''
特征抽取:将原始数据特征值化。
'''
def dict_demo():
'''
字典特征提取
'''
data = [{'city': '北京','temperature':100}, {'city': '上海','temperature':60}, {'city': '深圳','temperature':30}]
#1、实例化一个转换类DictVectorizer
transfer=DictVectorizer(sparse=True)
#2、调用fit_transform,转换数据
data_new=transfer.fit_transform(data)
print("data_new:\n",data_new.toarray(),type(data_new))
print("特征名字:\n",transfer.get_feature_names())
return None
一般情况是让单词作为特征。
特征:特征词
代码展示:
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
def count_demo():
'''
英文文本特征提取
'''
data = ["life is short,i like like python", "life is too long,i dislike python"]
#1、实例化一个转化器类.CountVectorizer统计文本每个样本特征值出现的次数。
transfer=CountVectorizer(stop_words=["is","too"])#停用词stop_words
#2、调用fit_transform
data_new=transfer.fit_transform(data)
print("data_new\n",data_new.toarray())
print("特征的名字:\n",transfer.get_feature_names())
return None
代码展示:
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
def count1_demo():
'''
中文文本特征提取
'''
data = ["一 二三 四五", "上 山打 老虎"]
#1、实例化一个转化器类.CountVectorizer统计文本每个样本特征值出现的次数。
transfer=CountVectorizer()
#2、调用fit_transform
data_new=transfer.fit_transform(data)
print("data_new\n",data_new.toarray())
print("特征的名字:\n",transfer.get_feature_names())
return None
if __name__=="__main__":
count1_demo()
代码:
from sklearn.feature_extraction.text import CountVectorizer,TfidfVectorizer
def cut_word(text):
'''
进行中文分词:"我爱北京天安门" --> "我 爱 北京 天安门"
'''
text=" ".join(list(jieba.cut(text)))
return text
def count_chinese_demo():
'''
中文文本特征提取,自动分词
'''
# 将中文文本进行分词
data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
"我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
"如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]
data_new=[]
for sent in data:
data_new.append(cut_word(sent))
#print(data_new)
#1、实例化一个转化器类.CountVectorizer统计文本每个样本特征值出现的次数。
transfer=CountVectorizer(stop_words=["一种","今天"])
#2、调用fit_transform
data_fianl=transfer.fit_transform(data_new)
print("data_new\n",data_fianl.toarray())
print("特征的名字:\n",transfer.get_feature_names())
return None
if __name__=="__main__":
count_chinese_demo()
代码:
def cut_word(text):
'''
进行中文分词:"我爱北京天安门" --> "我 爱 北京 天安门"
'''
text=" ".join(list(jieba.cut(text)))
return text
def tfidf_demo():
'''
用TF-IDF的内容进行抽取
'''
# 将中文文本进行分词
data = ["一种还是一种今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天。",
"我们看到的从很远星系来的光是在几百万年之前发出的,这样当我们看到宇宙时,我们是在看它的过去。",
"如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的事物相联系。"]
data_new=[]
for sent in data:
data_new.append(cut_word(sent))
#print(data_new)
#1、实例化一个转化器类.
transfer=TfidfVectorizer(stop_words=["一种","今天"])
#2、调用fit_transform
data_fianl=transfer.fit_transform(data_new)
print("data_new\n",data_fianl.toarray())
print("特征的名字:\n",transfer.get_feature_names())
return None
if __name__=="__main__":
tfidf_demo()