Python机器学习库:Scikit-learn入门示例

人工智能
后台-插件-广告管理-内容页头部广告(手机)

Scikit-learn(简称sklearn)是一个流行的Python机器学习库,提供了丰富的工具和算法,用于数据挖掘和数据分析。它建立在NumPy、SciPy和matplotlib等科学计算库的基础上,并为用户提供了简洁而强大的API,使得机器学习任务变得更加简单和高效。

Python机器学习库:Scikit-learn入门示例  

Sklearn 内部封装了多种机器学习算法与数据处理算法,提供了包括数据清洗、数据预处理、建模调参、数据验证、数据可视化的全流程功能,是入门机器学习的必备工具。

一、安装Sklearn库

Sklearn 库可以简单地通过 pip 命令或 conda 命令安装即可,但要注意,安装名称是 scikit-learn:

# 使用 conda 安装conda install scikit-learn# 使用 pip 安装pip install scikit-learn

二、安装Pandas库

下面再介绍Pandas库:

Pandas是一个开源的Python数据分析库,提供了高性能、易于使用的数据结构和数据分析工具,使得数据处理和分析变得更加简单和高效。它建立在NumPy库的基础上,并提供了一种称为DataFrame的数据结构,用于处理和操作结构化数据。

Python机器学习库:Scikit-learn入门示例
#使用 conda 安装conda install pandas

可以使用 conda list 命令查看安装好的库列表,如图所示:

Python机器学习库:Scikit-learn入门示例

三、示例代码

这段代码使用了scikit-learn库中的TfidfVectorizer类来进行文本特征提取,同时也引入了numpy和pandas库。

from sklearn.feature_extraction.text import TfidfVectorizerimport numpy as npimport pandas as pd

TfidfVectorizer是scikit-learn库中的一个文本特征提取器,它用于将文本数据转换为数值特征向量。TfidfVectorizer基于TF-IDF(Term Frequency-Inverse Document Frequency)的概念,用于衡量一个词在文档中的重要性。

首先,定义了一个名为toy_corpus的列表,其中包含了三个文本样本。

toy_corpus= ["the fat cat sat on the mat", "the big cat slept", "the dog chased a cat"]

然后,创建了一个TfidfVectorizer对象,并将其赋值给变量vectorizer。TfidfVectorizer是一个用于计算TF-IDF(Term Frequency-Inverse Document Frequency)特征的工具,它可以将文本转换为向量表示。

Python机器学习库:Scikit-learn入门示例

TF-IDF是一种常用的文本特征表示方法,它结合了词频(TF)和逆文档频率(IDF)的概念。TF表示一个词在文档中出现的频率,IDF表示一个词在整个文档集合中的重要性。TF-IDF将这两个概念相乘,得到一个词的TF-IDF值,用于表示该词在文档中的重要程度。

vectorizer=TfidfVectorizer(use_idf=True)

接下来,调用vectorizer的fit_transform方法,将toy_corpus作为参数传入,用于计算文本的TF-IDF特征。fit_transform方法会返回一个稀疏矩阵corpus_tfidf,其中存储了文本样本的TF-IDF特征值。

corpus_tfidf=vectorizer.fit_transform(toy_corpus)

使用len函数获取了vectorizer的vocabulary_属性的键的数量,即词汇表的大小,并将其打印出来。

同时,使用corpus_tfidf的shape属性获取文档-词项矩阵的形状,并将其打印出来。

print(f"The vocabulary size is {len(vectorizer.vocabulary_.keys())} ")print(vectorizer.vocabulary_)print(f"The document-term matrix shape is {corpus_tfidf.shape}")print(corpus_tfidf)

输出结果:

Python机器学习库:Scikit-learn入门示例

最后,通过np.round函数将corpus_tfidf转换为一个DataFrame对象df,并使用vectorizer的get_feature_names_out方法获取特征名,并将其设置为DataFrame的列名。

df=pd.DataFrame(np.round(corpus_tfidf.toarray(),2))df.columns=vectorizer.get_feature_names_out()df

输出结果:

Python机器学习库:Scikit-learn入门示例  

Pandas是一个用于数据分析和处理的Python库,它提供了一个高效的数据结构,称为DataFrame。DataFrame是一个二维的表格型数据结构,类似于电子表格或SQL中的表。它由行和列组成,每列可以包含不同的数据类型(例如整数、浮点数、字符串等)。

#AI人工智能#

后台-插件-广告管理-内容页尾部广告(手机)
标签:

评论留言

我要留言

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。