3.Sklearn
文章平均质量分 75
无
jediael_lu
没有
展开
-
sklearn处理文本和分类属性的方式
文章目录类别转换成数字类别one-hot类别转换成数字我们看一下文本属性。在此数据集中,只有一个:ocean_proximity属性:housing_cat = housing[['ocean_proximity']]sklearn.utils.shuffle(housing_cat).head() ocean_proximity 10763 <1H OCEAN原创 2021-07-16 10:50:48 · 459 阅读 · 0 评论 -
sklearn综合示例9:分类问题的onehot与预测阈值调整
本文介绍了:如何将多个标签做onehot,比如说总共有1000个标签,用户带了其中100个标签,那就是一个1000维的feautre,其中100维=1,其余900维=0。调整分类算法的分类阈值,比如将LR中的默认阈值从0调整到0.9,降低recall提升精度。各种算法的使用方式。1、数据预处理样本格式最终得到的样本格式如下,第一列是label,第二列是一“|”分割的一些特征,可以理解为用户观看了哪部电影,喜欢哪本书,关注了哪个微博id等。label,features1,200180,2原创 2021-07-16 10:50:09 · 3926 阅读 · 0 评论 -
sklearn综合示例8:SVM
1、线性SVMSVM特别适用于中小型复杂数据集的分类。SVM对特征的缩放非常敏感SVM的基本思想可以用一些图来说明。图51所示的数据集来自第4章末尾引用的鸢尾花数据集的一部分。两个类可以轻松地被一条直线(它们是线性可分离的)分开。左图显示了三种可能的线性分类器的决策边界。其中虚线所代表的模型表现非常糟糕,甚至都无法正确实现分类。其余两个模型在这个训练集上表现堪称完美,但是它们的决策边界与实例过于接近,导致在面对新实例时,表现可能不会太好。相比之下,右图中的实线代表SVM分类器的决策边界,这条线不仅分离原创 2021-07-16 10:49:15 · 252 阅读 · 0 评论 -
sklearn综合示例7:集成学习与随机森林
假设你创建了一个包含1000个分类器的集成,每个分类器都只有51%的概率是正确的(几乎不比随机猜测强多少)。如果你以大多数投票的类别作为预测结果,可以期待的准确率高达75%。但是,这基于的前提是所有的分类器都是完全独立的,彼此的错误毫不相关。显然这是不可能的,因为它们都是在相同的数据上训练的,很可能会犯相同的错误,所以也会有很多次大多数投给了错误的类别,导致集成的准确率有所降低。当预测器尽可能互相独立时,集成方法的效果最优。获得多种分类器的方法之一就是使用不同的算法进行训练。这会增加它们犯不同类型错误的机原创 2021-07-16 10:48:19 · 425 阅读 · 0 评论 -
sklearn综合示例5:多分类分类器
二元分类器在两个类中区分,而多类分类器(也称为多项分类器)可以区分两个以上的类。有一些算法(如随机森林分类器或朴素贝叶斯分类器)可以直接处理多个类。也有一些严格的二元分类器(如支持向量机分类器或线性分类器)。但是,有多种策略可以让你用几个二元分类器实现多类分类的目的。我们这里使用的是mnist数据集。OVR要创建一个系统将数字图片分为10类(从0到9),一种方法是训练10个二元分类器,每个数字一个(0检测器、1检测器、2检测器,以此类推)。然后,当你需要对一张图片进行检测分类时,获取每个分类器的决策分原创 2021-07-16 10:46:45 · 9527 阅读 · 0 评论 -
sklearn综合示例1:线性回归-标准解、sklearn、gd、sgd
文章目录基本示例1、标准方程2、sklearn的方式3、梯度下降4、随机梯度下降一个完整的例子1、数据准备1.1 下载数据1.2 载入并查看数据1.3 拆分数据集1.4 数据预处理2、模型训练3、效果评估3.1 MSE3.2 交叉验证4、模型调整4.1 网格搜索4.2 随机搜索基本示例本文我们主要讨论一下自定义实现线性回归以及使用sklearn如何实现线性回归。线性回归的模型比较简单,本文就不再细述:y^=θ⋅X=θ0+θ1x1+θ2x2+...+θnxn\hat{y} = \theta \cdo原创 2021-07-15 11:21:11 · 893 阅读 · 0 评论 -
sklearn综合示例3:逻辑回归
文章目录API模型参数penaltydualtolCfit_interceptclass_weightrandom_statesolvermax_iterverbosewarm_startn_jobs模型对象模型方法mnist数据集iris数据集关于逻辑回归的完整参数,可以参考:https://scikitlearn.com.cn/0.21.3/2/#1111-logisticAPI参考:https://zhuanlan.zhihu.com/p/39780207import numpy as np原创 2021-07-15 11:20:29 · 1330 阅读 · 0 评论 -
sklearn综合示例2:决策树
scikit-learn 是适用于数据处理和机器学习处理非常强大的库。提供数据降维、回归、聚类、分类等功能,是机器学习从业者的必备库之一。示例一案例:鸢尾属植物数据集(iris)分类。鸢尾属植物数据集一共有 4 个特征,target 值有 3 类,每一类都有 50 个样本。四维数据集为了在二维平面内展示方便,只选取其中两个维度。如下所示,绘制出一对特征的数据分布矩阵图,点的颜色表示分类值。矩阵图主对角线,两幅子图分表表示特征 sepallength、petallength 取值的概率分布图。绘原创 2021-07-15 11:20:01 · 222 阅读 · 0 评论 -
sklearn的多项式回归与学习曲线
文章目录多项式回归学习曲线我们先简单看看多项式回归,然后通过学习曲线看一下过拟合的情况。多项式回归我们使用二次方程生成一些数据,然后拟合。X = 6 * np.random.rand(100, 1) - 3y = 0.5 * X**2 + X + 2 + np.random.rand(100,1)显然,线性模型很难拟合上述数据,于是我们使用sklearn的PolynomialFeatures类来转换训练数据,将训练集中每个特征的平方(二次多项式)添加为新特征(在这种情况下,只有一个特征):f原创 2021-07-15 11:19:26 · 864 阅读 · 0 评论 -
sklearn中的metrics
文章目录MSE交叉验证准确率、精度、召回率、F1、AUC准确率混淆矩阵精度、召回率、F1ROC & AUC阈值衡量、ROC曲线阈值选择ROC曲线多分类的metrix问题,请见多分类问题。MSE我们先看一下回归问题常用的均方根误差MSE。from sklearn.metrics import mean_squared_errorhousing_pred = lin_reg.predict(housing_feature)lin_mse = mean_squared_error(housin原创 2021-07-15 11:18:38 · 2643 阅读 · 1 评论 -
sklearn中的正则化
文章目录L1和L2L2正则化、岭回归L1正则化、Lasso回归弹性网络提前停止正则化是处理模拟过拟合最常用的方式之一。本部分我们介绍常见的正则化方法。L1和L2Lasso回归的一个重要特点是它倾向于完全消除掉最不重要特征的权重(也就是将它们设置为零)因为所有高阶多项式的特征权重都等于零。换句话说,Lasso回归会自动执行特征选择并输出一个稀疏模型(即只有很少的特征有非零权重)。你可以通过查下图来了解为什么会这样:轴代表两个模型参数,背景轮廓代表不同的损失函数。在左上图中,轮廓线代表1损失(|θ1|+原创 2021-07-15 11:17:46 · 1841 阅读 · 1 评论 -
sklearn的基本用法:分类与回归
sklearn使用numpy ndarray或者pandas dataframe作为训练数据,调用fit()函数即可完成训练。本部分我们先介绍一下sklearn的基本用法。二分类我们先看一个二分类问题,将mnist分类成数字5和非5两类:from sklearn.datasets import fetch_openmlmnist = fetch_openml('mnist_784', version=1)X,y = mnist['data'], mnist['target']X_train,原创 2021-07-15 11:17:06 · 372 阅读 · 0 评论 -
sklearn预处理转化流水线
文章目录多个预处理步骤同时处理数字和分类属性多个预处理步骤正如你所见,许多数据转换的步骤需要以正确的顺序来执行。而ScikitLearn正好提供了Pipeline类来支持这样的转换。from sklearn.pipeline import Pipelinefrom sklearn.preprocessing import StandardScalernum_pipeline = Pipeline([ ('imputer', SimpleImputer(strategy='median')原创 2021-07-15 11:16:33 · 543 阅读 · 0 评论 -
数值分箱与one-hot
文章目录pandas方式将多个标签onehotsklearn 方式本部分仅介绍数值类特征的one-hot,关于文本的one-hot请参考上一部分。数值one-hot可以使用pandas.cut()和get_dummies()或者sklearn.OnehotEncoder。此外,skearn的preprocessing.KBinsDiscretizer类和Binarizer类也可以用于数值分箱。pandas方式基本思路是先使用cut()对数值进行分箱,分箱后使用get_dummies()得到oneh原创 2021-07-15 11:15:54 · 529 阅读 · 1 评论 -
sklearn与pandas的缺失值处理
housing数据集中的total_bedrooms有部分缺失,对于缺失值,通常我们有以下几种方式处理:放弃有缺失值的样本放弃整个特征将缺失值设置为某个默认值:0、平均值、中位数等。pandas方式通过DataFrame的dropna(), drop()和fillna()函数,可以方便的实现以上3个功能:housing.dropna(subset=['total_bedrooms'])housing.info()housing.drop('total_bedrooms', axis =原创 2021-07-15 11:14:48 · 413 阅读 · 0 评论 -
使用sklearn加载公共数据集、内存数据与CSV文件
本文介绍了如何加载各种数据源,以生成可以用于sklearn使用的数据集。主要包括以下几类数据源:预定义的公共数据源内存中的数据csv文件任意格式的数据文件稀疏数据格式文件sklearn使用的数据集一般为numpy ndarray,或者pandas dataframe。import numpy as npimport pandas as pdimport sklearnimport osimport urllibimport tarfile1、预定义的公共数据源更多数据集请见原创 2021-07-14 16:57:29 · 3907 阅读 · 0 评论 -
numpy和pandas的数据乱序
import numpy as npimport pandas as pdimport sklearnimport urllibimport osimport tarfile数据乱序我们分别介绍numpy.ndarray和pandas.dataframe的乱序。numpy.ndarray拆分前,一般会先对数据进行随机排序。numpy.random中有shuffle()和permutation()2个函数均可用于对数据进行乱序。主要区别在于:shuffle()直接对原数据进行重排,无原创 2021-07-14 17:09:51 · 634 阅读 · 0 评论