ai大模型

sklearn

sklearn,Scikit-learn针對Python编程语言的免費軟體机器学習库

标签:ai大模型

sklearn官网,Scikit-learn针對Python编程语言的免費軟體机器学習库

Sklearn是什么

sklearn,全称Scikit-learn(以前称為scikits.learn)是针對Python编程语言的免費軟體机器学習库 。它具有各种分类,回歸和聚类算法,包括支持向量机,随机森林,梯度提升,k均值和DBSCAN,并且旨在与Python數值科学库NumPy和SciPy联合使用。其具体功能如下圖所示:

sklearn官网: https://scikit-learn.org/stable/index.html

sklearn中文指南 社区: https://scikit-learn.org.cn/

sklearn

Sklearn常用功能介绍

2.1 聚类

聚类是一种典型的無监督学習任務,但也是實際应用中較為常見的需求。在不提供样本真實标簽的情况下,基于某些特征對样本进行物以类聚。根据聚类的原理,主要包括:K-MEANS、近鄰传播(AffinityPropagation)、均值偏移(MeanShift)、谱聚类(SpectralCluster)、層次聚类(AgglomerativeClustering)、密度噪声(DBSCAN)、平衡迭代層次聚类(Birch)、高斯混合(GMM)、双向聚类(SpectralBiclustering)。

2.2 降维

降维也属于無监督学習的一种,將已存在的特征进行压缩,降维完毕后的特征不是原本的特征矩阵中的任何一个特征,而是透過某些方式组合起来的新特征。尽可能保留原有信息的情况下降低维度,一般采用PCA處理,且降维后的特征与原特征没有直接联系,使得模型訓练不再具有可解釋性。根据降维的原理,主要包括:普通PCA、增量PCA(IPCA)、使用随机化的SVD的PCA、Kernel PCA、稀疏化PCA 和minibatchsparsePCA、非负矩阵分解、独立成分分析-ICA、Latent Dirichlet Allocation (LDA)。

sklearn

2.3 度量指标

不同的度量指标可以学到不同的最優模型。對于不同类型任務,sklearn提供了多种度量指标,包括:
·分类任務:准确率,所有样本中分类正确样本所占比例;精准率和召回率,一對相互矛盾的指标,适用于分类样本數量不均衡时,此时為了保證既定目标,可只選其中一个指标;调和平均數F1,相当于兼顧了精准率和召回率两项指标;
·回歸任務:常用的包括MSE、MAE,F1-score;
·聚类任務:輪廓系數(無需先验标簽,用组内距离与组外最近距离的比值度量)、调整兰德指數(基于真實分簇标簽和聚类标簽计算)。

2.4 集成学習模型

当基本学習模型性能难以滿足需求时,集成学習便应運而生。集成学習,顧名思義,就是將多个基学習器的結果集成起来汇聚出最終結果。而根据汇聚的过程,集成学習主要包括3种流派:
·bagging,即bootstrap aggregating,透過自助取样(有放回取样)實现并行訓练多个差異化的基学習器,虽然每个学習器效果可能并不突出,但透過最后投票得到的最終結果性能却会穩步提升。当基学習器采取决策树时,bagging思想的集成学習模型就是随机森林。另外,与bagging對应的另一种方式是無放回取样,相应的方法叫pasting,不过应用較少;
·boosting,即提升法。基学習器串行组合,試圖減小组合学習器的偏差,把几个弱学習器组合成一个强力的集成模型。(eg:adaboost,Gradient Tree Boosting)与bagging模型并行独立訓练多个基学習器不同,boosting的思想是基于前面訓练結果逐漸訓练更好的模型,属于串行的模式。根据實现細節不同,又具体分為两种boosting模型,分别是Adaboost和GBDT,二者的核心思想差異在于前者的提升聚焦于之前分错的样本、而后者的提升聚焦于之前漏学的残差。另外一个大熱的XGBoost是對GBDT的一个改进,實质思想是一致的‘’
·stacking,即堆棧法,基本流程与bagging类似而又不同:stacking也是并行独立訓练多个基学習器,而后又將这些訓练的結果作為特征进行再次学習。有些类似于深度学習中的多層神經網路。

sklearn

2.5 样例資料集

sklearn提供了一些經典資料集,資料集主要围繞分类和回歸两类經典任務,透過这些資料集可快速搭建机器学習任務、對比模型性能。
常用資料集简介如下:
·load_breast_cancer:乳腺癌資料集,标簽為0或1的二分类任務;
·load_iris:經典鸢尾花資料集,特征為連續數值變數,标簽為0/1/2的三分类任務;
·load_wine:红酒資料集,各类样本數量轻微不均衡;
·load_digits:小型手寫數字資料集(之所以称為小型,是因為还有大型的手寫數字資料集mnist),包含0-9共10种标簽,各类样本均衡;
·load_boston:波士顿房价資料集,适用于回歸任務值得指出。

2.6 資料预處理

sklearn中的各模型均有規范的資料输入输出格式,一般以np.array和pd.dataframe為标准格式,所以一些字符串的离散标簽是不能直接用于模型訓练的;同时為了加快模型訓练速度和保證訓练精度,往往还需對資料进行预處理,常用的資料预處理功能:
·MinMaxScaler:最大最小歸一化;
·StandardScaler:标准化歸一化,主要适用于可能存在极大或极小的異常值,此时用MinMaxScaler时,可能因單个異常点而將其他數值變换的过于集中,而用标准正態分布去量綱则可有效避免这一問题;
·Binarizer:二值化處理,适用于將連續變數离散化;
·OneHotEncoder:独熱编碼,一种經典的编碼方式,适用于离散标簽间不存在明确的大小相對關系时;
·Ordinary:數值编碼,适用于某些标簽编碼為數值后不影响模型理解和訓练时。

2.7 特征選择

机器学習中有句經典的台词是:資料和特征决定学習上限,模型和算法只是逼近这个上限,可見特征工程在机器学習中的重要性。几种常見的特征選择方式:from_model、VarianceThreshold、SelectKBest。

2.8 模型選择

模型選择是机器学習中的重要環節,涉及到的操作包括資料集切分、参數调整和验證等。對应常用函數包括:
·train_test_split:常用操作之一,切分資料集和测試集,可設置切分比例;
·cross_val_score:交叉验證,默认K=5折,相当于把資料集平均切分為5份,并逐一選择其中一份作為测試集、其余作為訓练集进行訓练及評分,最后返回K个評分;
·GridSearchCV:调参常用方法,透過字典类型設置一组候選参數,并制定度量标准,最后返回評分最高的参數。

2.9 基本学習模型

分类和回歸任務是机器学習中的經典場景,同属于有监督学習。經典的学習算法主要包括5种:
·线性模型,回歸任務中對应线性回歸,分类任務则對应即邏輯回歸,或者叫對數几率回歸,實质是透過线性回歸擬合對數几率的方式来實现二分类;
·K近鄰,最简單易懂的机器学習模型,無需訓练(惰性模型),仅仅是透過判斷自己所處位置周邊的样本判斷类比或者擬合結果;
·支持向量机,一个經典的机器学習模型,最初也是源于线性分类,透過最大化间隔實现最可靠的分类邊界。業界相传:支持向量机有三寶、间隔對偶核函數。其中”间隔”由硬间隔升級為软间隔解决了帶異常值的线性不可分場景,”對偶”是在優化过程中求解拉格朗日問题的一个小技巧,而核函數才是支持向量机的核心,透過核實的核函數可以實现由线性可分向线性不可分的升級、同时避免了维度灾难;
·朴素貝叶斯,源于概率論中貝叶斯全概率公式,模型訓练的过程就是擬合各特征分布概率的过程,而预测的过程则是标出具有最大概率的类比,是一个純粹的依据概率完成分类任務的模型。而像邏輯回歸、K近鄰、支持向量机以及决策树,虽然也都可以预测出各类别概率,但并不是純粹意義上的概率;
·决策树,这是一个直觀而又强大的机器学習模型,訓练过程主要包括特征選择-切分-剪枝,典型的3个决策树是ID3、C4.5和CART,其中CART树既可用于分类也可用于回歸。更重要的是,决策树不仅模型自身颇具研究价值,还是眾多集成学習模型的基学習器。

安装指南

有多种安装scikit-learn的方法:

  • 安装最新的官方版本。这是對于大多數用户来說最好的方法。它將提供一个較穩定的版本,并且预编译的軟體包可适用于大多數平台。
  • 安装電腦作業係統或Python發行版提供的scikit-learn版本 。對于電腦作業係統或Python發行版兼容scikit-learn的用户来說,这是一个快速的選择。它提供的可能不是最新的發行版本。
  • 从源代碼构建軟體包。對于想要最新和最强大的功能并且不害怕運行全新代碼的用户而言,这是最好的選择。这也正是希望為该專案做出貢献的用户所需要的。

安装最新版本

作業係統:Windows

包管理器:pip

例如从https://www.python.org上安装Python 3的64位版本。

然后運行:

  1. pip install -U scikit-learn

您可以使用以下语句去检查

  1. python -m pip show scikit-learn # 查看scikit-learn安装的位置及安装的版本
    python -m pip freeze # 查看所有在虚擬環境中已下载的包
    python -"import sklearn; sklearn.show_versions()"

作業係統:Windows

包管理器:conda

安装 conda(不需要管理员權限).

然后運行:

  1. conda install scikit-learn

您可以使用以下语句去检查

  1. conda list scikit-learn # 查看scikit-learn安装的位置及安装的版本
    conda list # 查看所有在虚擬環境中已下载的包
    python -"import sklearn; sklearn.show_versions()"

作業係統:macOS

包管理器:pip

使用 homebrew (brew install python) 或透過从 https://www.python.org手动安装軟體包来安装Python 3

然后運行:

  1. pip install -U scikit-learn

您可以使用以下语句去检查

  1. python -m pip show scikit-learn # 查看scikit-learn安装的位置及安装的版本
    python -m pip freeze # 查看所有在虚擬環境中已下载的包
    python -"import sklearn; sklearn.show_versions()"

作業係統:macOS

包管理器:conda

安装 conda(不需要管理员權限).

然后運行:

  1. conda install scikit-learn

您可以使用以下语句去检查

  1. conda list scikit-learn # 查看scikit-learn安装的位置及安装的版本
    conda list # 查看所有在虚擬環境中已下载的包
    python -"import sklearn; sklearn.show_versions()"

作業係統:Linux

包管理器:pip

使用Linux發行版的軟體包管理器安装python3和python3-pip

然后運行:

  1. pip3 install -U scikit-learn

您可以使用以下语句去检查

  1. python3 -m pip show scikit-learn # 查看scikit-learn安装的位置及安装的版本
    python3 -m pip freeze # 查看所有在虚擬環境中已下载的包
    python3 -"import sklearn; sklearn.show_versions()"

作業係統:Linux

包管理器:conda

安装 conda(不需要管理员權限).

然后運行:

  1. conda install scikit-learn

您可以使用以下语句去检查

  1. conda list scikit-learn # 查看scikit-learn安装的位置及安装的版本
    conda list # 查看所有在虚擬環境中已下载的包
    python -"import sklearn; sklearn.show_versions()"

​ 请注意,為了避免与其他軟體包產生潛在的冲突,强烈建議使用虚擬環境,例如python3 virtualenv (请参阅python3 virtualenv文档)或conda環境。

​ 使用独立的環境去安装scikit-learn的特定版本及其依賴项时,可以完全与任何先前安装的Python軟體包区分開。特别是在Linux下,不建議安装pip軟體包依賴于軟體包管理器(apt,dnf,pacman…)管理的軟體包上。

请注意,無論何时启动新的終端会话,您都应该始終記住在運行任何Python命令之前要先激活您選择的環境。

​ 如果尚未安装NumPy或SciPy,也可以使用conda或pip安装它们。使用pip时,请确保使用二进制wheels,并且不会从源代碼重新编译NumPy和SciPy,这在使用作業係統和硬體的特定配置(例如Raspberry Pi上的Linux)时可能会發生。

​ 如果必须使用pip安装scikit-learn及其依賴项,则可以將其安装為scikit-learn[alldeps]

​ Scikit-learn的繪圖功能(例如,函數以“ plot_”開頭和类以“ Display”結尾)需要Matplotlib(> = 2.1.1)。為了運行这些示例,需要Matplotlib> = 2.1.1。其他有些示例需要scikit-image> = 0.13,有些示例需要Pandas> = 0.18.0,有些示例需要seaborn> = 0.9.0。

警告:

  1. Scikit-learn 0.20是最后一个支持Python 2.7Python 3.4的版本。 Scikit-learn0.21支持Python 3.5-3.7 Scikit-learn0.22支持Python 3.5-3.8Scikit-learn现在需要Python 3.6或更高版本。

注意:

  1. 要在PyPy上安装,需要PyPy3-v5.10 +,Numpy 1.14.0+scipy 1.1.0+

scikit-learn的第三方發行版

​ 一些第三方發行版提供了scikit-learn的版本及其軟體包管理系統。

​ 这些功能使用户的安装和升級變得更加容易,因為集成功能擁有自动安装scikit-learn所需的依賴项(numpy,scipy)的能力。

​ 以下是OS和python發行版提供的scikit-learn版本的不完整列表。

Arch

​ Arch Linux的包是透過官方資料库的 python-scikit-learn提供的。可以透過键入以下命令来安装它:

  1. sudo pacman -S python-scikit-learn

Debian / Ubuntu

​ Debian / Ubuntu軟體包分為三个不同的軟體包,分别称為 python3-sklearn(python模块),python3-sklearn-lib(低配版),python3-sklearn-doc(文档)。Debian Buster(最新的Debian發行版)中仅提供Python 3版本。可以使用命令apt-get安装軟體包:

  1. sudo apt-get install python3-sklearn python3-sklearn-lib python3-sklearn-doc

Fedora

​ Fedora軟體包在python 3版本中被称為python3-scikit-learn,这是Fedora30中唯一可用的版本。可以使用dnf命令安装:

  1. sudo dnf install python3-scikit-learn

NetBSD

​ scikit-learn可透過pkgsrc-wip獲得:

http://pkgsrc.se/math/py-scikit-learn

MacPorts for Mac OSX

​ MacPorts軟體包的名称為py<XY>-scikits-learn,其中XY表示Python版本。可以透過键入以下命令来安装它:

  1. sudo port install py36-scikit-learn

Canopy和Anaconda适用于所有支持的平台

​ 除了用于Windows,Mac OSX和Linux的大量科学python库之外,Canopy和Anaconda还提供了最新版本的scikit-learn。

​ Anaconda免費提供scikit-learn。

Intel conda channel

​ 英特尔擁有專用的conda渠道,该渠道可提供scikit-learn:

  1. conda install -c intel scikit-learn

​ 此版本的scikit-learn包含一些常見估量的替代求解器。这些求解器来自DAAL C ++库,并针對多核Intel CPU进行了優化。

​ 请注意,默认情况下不启用这些求解器,请参阅 daal4py文档以獲取更多详細信息。

​ 可透過在https://github.com/IntelPython/daal4py上報告的自动集成,運行完整的scikit-learn测試,来检查与标准scikit-learn解算器的兼容性。

Windows 版WinPython

​ 该WinPython專案作為额外的插件在scikit-learn發布。

故障排除

Windows上的文件路徑长度限制引起的错誤

​ 如果將Python安装在電腦内部位置(例如AppData用户主目錄下的資料夾結构)中,若达到Windows的默认路徑大小限制时,pip可能無法安装軟體包 ,例如:

  1. C:\Users\username>C:\Users\username\AppData\Local\Microsoft\WindowsApps\python.exe -m pip install scikit-learn
    Collecting scikit-learn
    ...
    Installing collected packages: scikit-learn
    ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\username\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\sklearn\\datasets\\tests\\data\\openml\\292\\api-v1-json-data-list-data_name-australian-limit-2-data_version-1-status-deactivated.json.gz'

在这种情况下,可以使用以下regedit工具在Windows注册表中取消该限制:

  1. 在Windows開始菜單中键入“ regedit”来启动regedit

  2. 選择 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem key

  3. 编輯该LongPathsEnabled键的属性值,將其設置為1。

  4. 重新安装scikit-learn(忽略以前的安装報错):

数据评估

sklearn浏览人数已经达到414,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:sklearn的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找sklearn的站长进行洽谈提供。如该站的IP、PV、跳出率等!

关于sklearn特别声明

本站ai工具百寶箱提供的sklearn都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由ai工具百寶箱实际控制,在2024年12月8日 下午6:06收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,ai工具百寶箱不承担任何责任。

相关导航

暂无评论

暂无评论...