首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据处理实战

本文就以消费者投诉问题为例,分别介绍问题定义、数据搜索、分析不平衡类、文本表示、分类器训练、模型选择、模型评估等步骤,为我们详细展示Scikit-Learn在案例中每个步骤中的用法。...例如,新闻报道通常按主题组织; 内容或产品通常按类别加标签; 可以根据用户在线讨论某个产品或品牌的行为信息将其划分为多个群组。...因此,这就是我们今天要做的事情:将消费者金融投诉分为12个预先定义的类别。 数据可以从data.gov[1]下载。...给定一个投诉,我们希望将其分配到12个类别之一。 分类器假定每个新投诉都被分配到一个且仅一个类别。 这是多类文本分类问题。 我迫不及待地想看看我们能做些什么!...从文本中提取特征的一种常见方法是使用词袋模型(bag of words model):对于每个文档,它是一个投诉叙述内容(a complaint narrative),出现的单词(通常是频率)被考虑在内

2.7K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据科学和人工智能技术笔记 八、特征选择

    八、特征选择 作者:Chris Albon 译者:飞龙 协议:CC BY-NC-SA 4.0 用于特征选取的 ANOVA F 值 如果特征是类别的,计算每个特征与目标向量之间的卡方( \chi^{...但是,如果特征是定量的,则计算每个特征与目标向量之间的 ANOVA F 值。 F 值得分检查当我们按照目标向量对数字特征进行分组时,每个组的均值是否显着不同。...chi2 # 加载鸢尾花数据 iris = load_iris() # 创建特征和目标 X = iris.data y = iris.target # 通过将数据转换为整数,转换为类别数据 X...[8, 7, 0], [9, 7, 1]]) # 将特征矩阵转换为 DataFrame df = pd.DataFrame(X) # 查看数据帧...import datasets from sklearn.feature_selection import VarianceThreshold # 加载鸢尾花数据 iris = datasets.load_iris

    79040

    MLK | 特征工程系统化干货笔记+代码了解一下(中)

    而在这之前,我们需要了解我们的数据集,先前两节中我们了解到了可以通过 data.info 和 data.describe() 来查看,同时结合数据等级(定类、定序、定距、定比)来理解变量。 ?...基础操作 本小节中我们使用一个自定义数据集。...数值变量扩展 这一小节我们使用一个新的数据集(人体胸部加速度数据集),我们先导入数据: # 人体胸部加速度数据集,标签activity的数值为1-7 ''' 1-在电脑前工作 2-站立、走路和上下楼梯...2)CountVectorizer 将文本转换为矩阵,每列代表一个词语,每行代表一个文档,所以一般出来的矩阵会是非常稀疏的,在sklearn.feature_extraction.text 中调用 CountVectorizer...3)TF-IDF TF-IDF向量化器由两个部分组成,分别为代表词频的TF部分,以及代表逆文档频率的IDF,这个TF-IDF是一个用于信息检索和聚类的词加权方法,在 sklearn.feature_extraction.text

    64720

    手把手教你入门和实践特征工程 的全方位万字笔记,附代码下载

    基础操作 本小节中我们使用一个自定义数据集。...3)TF-IDF TF-IDF向量化器由两个部分组成,分别为代表词频的TF部分,以及代表逆文档频率的IDF,这个TF-IDF是一个用于信息检索和聚类的词加权方法,在 sklearn.feature_extraction.text...给出的解释是:在对数据进行缩放后,列与列之间的协方差会更加一致,而且每个主成分解释的方差会变得分散,而不是集中在某一个主成分上。...与PCA类似,LDA也是提取出一个新的坐标轴,将原始的高维数据投影到低维空间去,而区别在于LDA不会去专注数据之间的方差大小,而是直接优化低维空间,以获得最佳的类别可分性。...词嵌入 在NLP领域应用极为广泛了,它可以将字符串(单词或短语)投影到n维特征集中,以便理解上下文和措辞的细节,我们可以使用sklearn中的CountVectorizer 和 TfidfVectorizer

    1.6K20

    手把手教你入门和实践特征工程 的全方位万字笔记,附代码下载

    基础操作 本小节中我们使用一个自定义数据集。...3)TF-IDF TF-IDF向量化器由两个部分组成,分别为代表词频的TF部分,以及代表逆文档频率的IDF,这个TF-IDF是一个用于信息检索和聚类的词加权方法,在 sklearn.feature_extraction.text...给出的解释是:在对数据进行缩放后,列与列之间的协方差会更加一致,而且每个主成分解释的方差会变得分散,而不是集中在某一个主成分上。...与PCA类似,LDA也是提取出一个新的坐标轴,将原始的高维数据投影到低维空间去,而区别在于LDA不会去专注数据之间的方差大小,而是直接优化低维空间,以获得最佳的类别可分性。...词嵌入 在NLP领域应用极为广泛了,它可以将字符串(单词或短语)投影到n维特征集中,以便理解上下文和措辞的细节,我们可以使用sklearn中的CountVectorizer 和 TfidfVectorizer

    53510

    【机器学习】 朴素贝叶斯算法:原理、实例应用(文档分类预测)

    方法如下: 将 P(W|C) 更改为  Ni:该W词在C类别所有文档中出现的次数,即云计算在娱乐类文章中出现了多少次。 N: C类别的文档所有词出现的次数和,即娱乐类一共有多少词。...文档分类实战 2.1 数据获取        使用sklearn内部数据集获取新闻分组数据,下载到指定文件夹。...有关系统内部数据集的获取方法可以参考我的前一篇文章机器学习-K近邻算法,或者该网页sklearn数据集,本篇文章就不进行详述。如果找不到数据集的,文末有数据集,有需要的自取。...# 使用sklearn内部数据集,获取新闻分组数据 from sklearn.datasets import fetch_20newsgroups # 指定文件下载位置,把新闻数据下载到里面 filepath...完整代码如下: # 文档分类实战 #(1)数据获取 # 使用sklearn内部数据集,获取新闻分组数据 from sklearn.datasets import fetch_20newsgroups

    80982

    【干货】万字教你入门和实践特征工程

    基础操作 本小节中我们使用一个自定义数据集。...3)TF-IDF TF-IDF向量化器由两个部分组成,分别为代表词频的TF部分,以及代表逆文档频率的IDF,这个TF-IDF是一个用于信息检索和聚类的词加权方法,在 sklearn.feature_extraction.text...给出的解释是:在对数据进行缩放后,列与列之间的协方差会更加一致,而且每个主成分解释的方差会变得分散,而不是集中在某一个主成分上。...与PCA类似,LDA也是提取出一个新的坐标轴,将原始的高维数据投影到低维空间去,而区别在于LDA不会去专注数据之间的方差大小,而是直接优化低维空间,以获得最佳的类别可分性。...词嵌入 在NLP领域应用极为广泛了,它可以将字符串(单词或短语)投影到n维特征集中,以便理解上下文和措辞的细节,我们可以使用sklearn中的CountVectorizer 和 TfidfVectorizer

    1.3K50

    深度 | 从朴素贝叶斯到维特比算法:详解隐马尔科夫模型

    例如在英语中,介词 to(x_i)后面所带的单词常常是动词(y_i)。当然在机器学习中还有其它的任务涉及序列数据,例如在时序建模中,我们需要使用所有前面的观测值 y 在 t+1 步时预测新的 y。...例如,给定一个句子,使用 HMM 根据训练数据学得的潜在结构预测每个单词的词性。...其中,M 代表训练样本的个数,N 代表序列长度,1 代表当特定事件发生时指示函数的值为 1,0 代表特定事件未发生。该公式概览了训练数据库,计算每个事件出现的频率。...序列中每个单词/观察结果只有一个特征,即每个观察结果的值。...每个状态仅依赖于前一个状态,即每个状态 t_i 都独立于前面所有状态 t_1, t_2, …, t_i−2,除了紧挨着的前一个状态 t_i-1。

    956130

    数据处理(三)| 深入数据预处理:提升机器学习模型性能的关键步骤

    =100, random_state=42)clf.fit(X_train, y_train)# 递归特征消除rfe = RFE(clf, n_features_to_select=3) # 选择前3个最重要的特征...):LDA是一种监督学习的降维方法,通常用于分类任务中,它旨在找到一个线性组合,使得不同类别之间的距离最大化,类别内的距离最小化。...(100, 5) # 100个样本,每个样本5个特征y_train = np.random.randint(0, 2, 100) # 随机生成100个类别标签,0或1# 检查类别平衡print("Original...= np.random.rand(100, 5) # 100个样本,每个样本5个特征y_train = np.random.randint(0, 2, 100) # 随机生成100个类别标签,0或1#...:查询、排序、聚合# 查询年龄大于26岁的人 df_filtered = df[df['年龄'] > 26] # 按城市分组计算平均年龄 df_grouped = df.groupby('城市')

    14110

    利用 Scikit Learn的Python数据预处理实战指南

    特征标准化 ▼ 在进入这部分内容前,我建议你先完成练习1。 在之前的章节,我们在贷款预测数据集之上操作,并在其上拟合出一个KNN学习模型。通过缩小数据,我们得到了75%的精度,这看起来十分不错。...现在,我将在此介绍一个新概念,叫作标准化。很多Sklearn中的机器学习算法都需要标准化后的数据,这意味数据应具有零均值和单位方差。...样本的标准分数(也称为z-scores)按如下所示的方法计算: 线性模型中因子如l1,l2正则化和学习器的目标函数中的SVM中的RBF核心假设所有的特征都集中在0周围并且有着相同顺序的偏差。...Sklearn提供了一个非常有效的工具把类别特征层级编码成数值。LabelEncoder用0到n_classes-1之间的值对标签进行编码。 让我们对所有的类别特征进行编码。...一位有效编码把每个带有n个可能值的类别特征转换成n个二进制特征,只有一个是有效的。 大多数机器学习算法不是为每个特征设置单个权重就是计算样本之间的距离。如线性模型算法(例如:逻辑回归)属于第一类。

    2.6K60

    手把手教你入门和实践特征工程 的全方位万字笔记,附代码下载

    基础操作 本小节中我们使用一个自定义数据集。...3)TF-IDF TF-IDF向量化器由两个部分组成,分别为代表词频的TF部分,以及代表逆文档频率的IDF,这个TF-IDF是一个用于信息检索和聚类的词加权方法,在 sklearn.feature_extraction.text...给出的解释是:在对数据进行缩放后,列与列之间的协方差会更加一致,而且每个主成分解释的方差会变得分散,而不是集中在某一个主成分上。...与PCA类似,LDA也是提取出一个新的坐标轴,将原始的高维数据投影到低维空间去,而区别在于LDA不会去专注数据之间的方差大小,而是直接优化低维空间,以获得最佳的类别可分性。...)投影到n维特征集中,以便理解上下文和措辞的细节,我们可以使用sklearn中的CountVectorizer 和 TfidfVectorizer 来将这些字符串进行转为向量,但这只是一些单词特征的集合而已

    95122

    SciPyCon 2018 sklearn 教程(上)

    在function(后面按[shift] + [tab],可以获得函数或对象的帮助。 你还可以通过执行function?获得帮助。...sklearn 中的数据 scikit-learn 中的数据(极少数例外)被假定存储为形状为[n_samples, n_features]的二维数组。...:\n', X[:5, :]) print('First 5 labels:', y[:5]) 由于数据是二维的,我们可以将每个样本绘制为二维坐标系中的一个点,第一个特征是x轴,第二个特征是y轴。...练习 使用前两个主成分可视化鸢尾花数据集,并将此可视化与使用两个原始特征进行比较。...最后,看一下我们的单个样本,我们可以展示词汇表中每个单词出现的频率。 我们用向量表示我们的字符串,其中每个条目是词汇表中给定单词出现在字符串中的频率。

    1.2K10

    数据科学和人工智能技术笔记 十六、朴素贝叶斯

    特别是在朴素贝叶斯中,虽然不同目标类别的预测概率的排名是有效的,但是原始预测概率倾向于接近 0 和 1 的极值。 为了获得有意义的预测概率,我们需要进行所谓的校准。...在本教程中,我们将从头开始创建一个高斯朴素贝叶斯分类器,并使用它来预测以前未见过的数据点的类别。...Pandas 让这很容易: # 按性别分组数据,并计算每个特征的均值 data_means = data.groupby('Gender').mean() # 查看值 data_means Height...Weight Foot_Size Gender female 5.4175 132.50 7.50 male 5.8550 176.25 11.25 # 按性别分组数据,并计算每个特征的方差...下面的代码可能看起来很复杂,但我们所做的,只是从上面两个表中的每个单元格中创建一个变量。

    71720

    python机器学习库sklearn——朴素贝叶斯分类器

    the 20 newsgroups dataset 加载20个新闻组数据集 为了获得更快的执行时间为第一个例子,我们将工作在部分数据集只有4个类别的数据集中: """ categories = ['alt.atheism...[twenty_train.target[0]]) print('-----') print(twenty_train.target[:10]) # 前十个的类别 print('-----') for...files 从文本文件中提取特征 为了在文本文件中使用机器学习算法,首先需要将文本内容转换为数值特征向量 """ """ Bags of words 词袋 最直接的方式就是词袋表示法 1、为训练集的任何文档中的每个单词分配一个固定的整数...ID(例如通过从字典到整型索引建立字典) 2、对于每个文档,计算每个词出现的次数,并存储到X[i,j]中。...为了避免潜在的差异,它可以将文档中的每个单词出现的次数在文档的总字数的比例:这个新的特征叫做词频:tf tf-idf:词频-逆文档频率 """ from sklearn.feature_extraction.text

    2.9K20

    机器学习 | Sklearn中的朴素贝叶斯全解

    各个朴素贝叶斯在不同数据集上的效果 高斯朴素贝叶斯GaussianNB 高斯朴素贝叶斯是假设 服从高斯分布(正态分布)。来估计每个特征下每个类别的条件概率。...求解出参数后,带入一个 的值,就能够得到一个的 概率取值。最后再求连乘便能够获得相应的概率。...使用sklearn中自带的绘制学习曲线的类learning_curve,在这个类中执行交叉验证并从中获得不同样本量下的训练和测试的准确度。...from sklearn.metrics import brier_score_loss # 生成数据集 class_1 = 500 class_2 = 500 #两个类别分别设定500个样本 centers...= [[0.0, 0.0], [2.0, 2.0]] #设定两个类别的中心 clusters_std = [0.5, 0.5] #设定两个类别的方差 X, y = make_blobs(n_samples

    5.5K101

    机器学习中最常见的四种分类模型

    然后汇总类标签的分布,显示该实例是属于类别0还是类别1,并且每个类别中各有500个样本。 接下来,总结数据集中的前10个样本,显示输入值是数字,目标值是代表类成员类型的整数0或1。...例如,模型可以预测照片属于面部识别系统中的数千个或数万个面部之一。 涉及预测单词序列的问题,例如文本翻译模型,也可以视为一种特殊类型的多类别分类。...要预测的单词序列中的每个单词都涉及一个多类分类,其中词汇量定义了可以预测的可能类别的数量,其数量可能是成千上万个单词。...然后汇总类别标签的分布,显示样本属于类别0,类别1或类别2,并且每个类中大约有333个示例。 接下来,展示数据集中的前10个样本,显示输入值是数字,目标值是代表类别成员类型的整数。...接下来,展示数据集中的前10个样本,显示输入值是数字,目标值是代表类标签成员类别的整数。

    3.3K20

    使用scikit-learn解决文本多分类问题(附python演练)

    例如,新闻报道通常按主题进行组织; 内容或产品通常需要按类别打上标签; 根据用户在线上谈论产品或品牌时的文字内容将用户分到不同的群组.........如果来了一条新的投诉,我们希望将其分配到12个类别中的一个。分类器假设每条新投诉都分配给一个且仅一个类别。这是文本多分类问题。是不是很迫不及待想看到我们可以做到什么程度呢!...二、数据探索 在深入研究机器学习模型之前,我们首先应该观察一下部分数据,看看每个类别下的投诉都是什么样儿?...对于某些场景,例如欺诈检测或癌症预测,我们需要仔细配置我们的模型或人为地对数据集做再平衡处理,例如通过对每个类进行欠采样或过采样。 但是在我们今天这个例子里,数量多的类别正好可能是我们最感兴趣的部分。...具体来说,对于我们数据集中的每个单词,我们将计算它的词频和逆文档频率,简称tf-idf。

    1.4K30
    领券