目录
一些知识点总结
3.17考试回顾:
(老师的)机器学习模型评估指标汇总
下面好像是黑马机器学习里摘抄的笔记(有点乱,不必看)
人工智能(AI,Artificial Intelligence),是计算机科学的一个研究领域,研究计算机模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科。主要包括计算机实现智能的原理、制造类似人脑智能的计算机,使计算机能实现更高层次的应用,研究领域包括机器人、机器学习、计算机视觉、图像识别、自然语言处理和专家系统等,涉及多个学科。
机器学习(Machine Learning)是人工智能重要分支,机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。 研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。• 机器学习方法利用既有的经验,完成某种既定任务,且在此过程不断改善自身性能。按照机器学习的任务分为两大类方法,有监督的学习(Supervised Learning),无监督的学习(Unsupervised Learning)
机器学习和人工智能的关系:机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。机器学习是人工智能领域的一部分,并且和知识发现与数据挖掘有所交集。
•
神经网络(Deep Learning)也称为人工神经网络(Artificial Neural Network, ANN)目前是机器学习以及人工智能领域最重要的方法之一,神经网络模拟人脑的神经网络来处理问题
•深度学习是机器学习的一种技术,是让计算机从经验中学习,并根据层次化(Hierarchical)的概念体系来理解世界。深度学习基于深度神经网络实现,就是具有很多隐藏层(超过1层)、每个隐藏层具有很多结点的神经网络。深度学习基本思想,从输入的数据中进行预先训练,以发现数据自身的重要特征,根据提取的特征建立初始化的神经网络,再基于分类/回归等标签进行学习,对网络参数进行微调。深度学习的核心是神经网络的训练算法,如反向传播算法。
机器学习、人工智能和深度学习之间的关系:人工智能可以包括许多不同的技术,如规则引擎、专家系统等,而机器学习则是人工智能的一种主流技术,深度学习则是机器学习中的一种比较先进的技术。机器学习是人工智能的一个实现途径,深度学习是机器学习是一个方向发展而来。
有监督学习(supervised learning)(预测),利用经验(历史数据),学习表示事物的模型,关注利用模型预测未来数据。输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。一般包括分类问题(Classification)和回归问题(Regression)
分类--k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
回归--线性回归、岭回归
无监督学习(unsupervised learning),倾向于对事物本身特性的分析,输入数据是由输入特征值所组成。常见问题包括
•数据降维(Dimensionality Reduction),即对描述事物的特征数量进行压缩的方法/提取新特征例:从已有的100个特征中选取部分特征表示音乐信号
•聚类问题(Clustering),将事物划分成不同的类别,但事先不知道类别的数量,根据事物之间的相似性(相似度),将相似的事物归为一簇。聚类 k-means
有分类标签的数据集为什么用聚类分析,而不用有监督学习
答案是:有分类标签的数据集已经有明确的类别标签,可以使用有监督学习算法进行分类任务。而聚类分析通常用于没有事先定义类别的数据集,目的是在数据中寻找内在的模式和结构,并将数据划分为一些相似的群组。然而,在某些情况下,即使已经有了类别标签,聚类分析仍然有其独特的价值。以下是一些可能的原因:
1.数据集类别标签的质量较低:有些数据集中的类别标签可能是错误的、不准确的或者缺失的。在这种情况下,聚类分析可以帮助我们识别出数据集中的潜在结构,验证或调整标签。
2.想要了解数据集的内在结构:即使数据集中已经有了类别标签,聚类分析可以帮助我们更好地理解数据集的内在结构和相似性。聚类算法可以将数据集划分为不同的组,使我们更清楚地了解数据集中的相似性和差异性
3.想要对数据集进行探索性分析:在探索性数据分析(Exploratory Data Analysis,简称EDA)的过程中,我们通常需要对数据集进行可视化和概括性分析,以更好地了解数据的特征和结构。聚类分析可以为我们提供对数据的高级摘要,帮助我们更好地探索数据集的内在结构。
总之,尽管有分类标签的数据集可以使用有监督学习算法进行分类,但在某些情况下,聚类分析仍然可以为我们提供更深入的理解和更广泛的应用。
① 选择数据:将你的数据分成三组:训练数据、验证数据和测试数据
② 模型数据:使用训练数据来构建使用相关特征的模型
③ 验证模型:使用验证数据来验证所构建的模型
④ 测试模型:使用测试数据检查被验证的模型的表现
⑤ 使用模型:使用完全训练好的模型在新数据上做预测
⑥ 调优模型:使用更多数据、不同的特征或调整过的参数来提升算法的性能表现
1)获取数据 2)数据处理 3)特征工程 4)机器学习算法训练 - 模型 5)模型评估 6)应用
常见的任务包括文本分类、信息检索、信息抽取、自动问答、机器翻译、自动摘要等
gpt版:文本处理是自然语言处理领域的一个重要分支,其任务包括但不限于以下几种:
分词:将文本拆分成一个个词语,是文本处理的第一步。
停用词过滤:去除一些常见但无实际意义的单词,如“的”、“是”等。
词性标注:给每个词语标注其词性,如名词、动词、形容词等。
句法分析:分析句子中各个部分之间的依存关系,如主谓宾、定状补等。
情感分析:识别文本中的情感,如正面、负面、中性等。
文本分类:将文本分为不同的类别,如新闻分类、电影评论分类等。
关键词提取:从文本中提取出最能代表文本主题的关键词。
实体识别:识别文本中的具有实体意义的词语,如人名、地名、组织机构等。
文本摘要:从一篇文章中提取出关键信息,生成较短的摘要。
机器翻译:将一种语言的文本转化为另一种语言的文本。
通常包括以下步骤:
文本采集:收集需要处理的文本数据,可以从各种渠道获取,如爬虫、API、数据库等。
文本预处理:对采集到的文本进行预处理,包括分词、停用词过滤、词干提取、词性标注、实体识别等。
特征提取与特征选择:将处理好的文本转换为数值型特征,常用的方法包括词袋模型、TF-IDF、词向量等。通过特征选择可以筛选出对模型有用的特征,提高模型的准确性和效率。
建模分析:使用机器学习、深度学习等方法对文本数据进行建模分析,如分类、聚类、情感分析、实体关系抽取、机器翻译等。
在文本数据处理中,不同的任务需要采用不同的方法和技术,但基本流程大体相同。例如,文本分类可以采用朴素贝叶斯、支持向量机等机器学习算法,而情感分析可以使用情感词典、深度学习等方法。
此外,文本数据处理还需要考虑一些常见的问题,如样本不均衡、过拟合、欠拟合等,需要针对具体问题进行解决。同时,由于自然语言处理的复杂性,需要不断地改进算法、模型和技术,以提高文本处理的效果和准确性。
是指对数字图像进行处理、分析、增强、压缩、恢复等操作的过程。其中,数字图像处理包括以下常见的任务:
1.图像增强:对图像进行亮度调整、对比度增强、直方图均衡化、滤波等操作,以提高图像的质量和清晰度。
2.图像复原:通过去噪、去模糊等操作,尽可能还原原始图像。
3.图像压缩:将图像压缩到更小的存储空间,以节省存储和传输成本。
4.特征提取:从图像中提取有用的信息和特征,如边缘、纹理、颜色等。
5.图像分割:将图像分成若干个区域,每个区域内具有相似的像素值或特征值。
6.目标检测:在图像中检测出目标物体,并标记其位置。
7.图像识别:通过学习和分类,对图像进行分类和识别,如人脸识别、车牌识别等。
8.图像合成:将不同的图像或图像元素进行合成,生成新的图像或图像元素,如图像融合、图像拼接等。
数字图像处理在计算机视觉、医学影像、地理信息系统等领域都有广泛的应用,是非常重要的技术之一。
数据科学是一门新兴跨领域综合性学科,继承了各领域数十年甚至数百年的工作成果,包括统计学、计算机科学、数学、工程学以及其他学科。• 数据科学研究的就是从数据形成知识的过程,即通过使用科学方法和技术来从数据中提取有用的信息和知识、发现问题、理解现象、预测趋势、以便改进关键决策的过程。数据科学的最终产物是数据产品,表现为一种发现、预测、服务、推荐、决策、工具或者系统
数据是对信息数字化的记录,其本身并无意义;
信息是指将数据放置到一定的背景下,对数据进行解释、赋予意义。
可以分为多个阶段,其中包括问题描述、数据准备、数据探索、预测建模和分析应用成果。
需要注意的是,在实践中需要不断地迭代和改进每个阶段,以提高工作效率和预测准确率。同时,每个阶段的具体任务和流程可能会因不同的业务需求和数据特征而有所不同。总之,数据科学的工作流程大都需要从业务问题出发,采集和清洗数据,进行探索和分析,进行特征工程和模型建立,评估和调整模型,最终将模型应用到实际业务场景中,并对模型进行监测和更新,以达到更好的预测和决策支持效果。再进一步说明,数据分析的成功不仅取决于分析方法,更在于对数据对象业务领域的理解。
大数据(Big Data)是一个抽象的概念,通常指无法在有限时间内用常规工具软件进行存储、处理的数据集合。大数据或称大数据技术是先有了大量的已知数据,然后通过计算得出之前未知的知识和规律。主要包括以下几个特征:
volume规模性,数据量大:大数据的数据量通常达到TB、PB、甚至EB级别,这需要使用分布式系统和高效的数据处理技术。
variety多样性,数据种类多:大数据包含的数据种类丰富,包括结构化数据、半结构化数据和非结构化数据等多种类型,这需要使用多种数据处理工具和技术。
velocity高速性,数据流速快:大数据往往以高速率不断产生和流动,如物联网、社交网络等应用场景,需要实时或近实时地对数据进行处理和分析。
value高价值性,数据价值高:大数据中蕴含着海量的信息和价值,可以用于发现新的商业机会、优化业务流程和提高决策精度等方面。
veracity高真实性,数据质量不一:大数据的质量通常是不稳定的,可能存在数据缺失、重复、噪声等问题,需要使用数据清洗和数据预处理技术进行处理。
因此,大数据的处理需要使用分布式计算、数据存储、数据挖掘、机器学习等多种技术和工具,并且需要针对不同的数据特征和应用场景进行灵活的选择和应用。
数据整合(Integration):将来自不同来源、不同类型的数据整合到一起,形成具有整体性和完整性的数据资源,以支持更全面、更精准的数据分析和应用。
数据融通(Interconnection):将数据与其他信息资源进行融通,以实现更广泛、更深入的数据应用和创新,例如将传感器数据与GIS(地理信息系统)数据结合起来,用于环境监测和资源管理。
数据洞察(Insight):通过对大数据的分析和挖掘,发现数据背后的规律和模式,以支持更深入的决策和创新。例如,通过对用户购买行为的分析,发现潜在的销售机会和市场趋势。
数据赋能(Improvement):通过数据分析和挖掘,改善和优化现有的业务和流程,以提高效率和质量。例如,通过分析供应链数据,改进供应链管理和优化库存。
数据复用(Iteration):通过不断迭代和更新数据分析和应用,实现数据应用的可持续发展和创新。例如,通过不断更新数据挖掘模型和算法,提高数据分析和预测的精度和准确性。
这些“5I”社会属性不仅可以帮助企业和组织更好地理解和应用大数据,还可以促进社会的可持续发展和创新,以实现更高水平的经济和社会效益。
包括以下几个方面:
数据采集和处理技术:包括爬虫技术、数据清洗和预处理技术等,用于获取和处理数据。
数据存储和管理技术:包括关系型数据库、NoSQL数据库、分布式存储技术等,用于存储和管理大规模数据。(书上:从底层来看,大数据需要高性能的计算架构和存储系统,用于分布式计算的 MapReduce 计算框架、Spark 计算框架,用于大规模数据协同工作的分布式文件存储 HDFS (Hadoop Distributed File System)。需要对大数据进行有效管理。如适应处理高访问负载的键值数据库、分布式大数据管理的列式存储数据库、适用于非结构化的文档数据库及社交网络和知识管理的图形数据库等,这些被统称为 NoSql 数据库。
数据分析:
3.1统计分析 • 描述统计、假设检验、置信度分析、相关分析、因子分析、方差分析、 回归分析、判别分析、主成分分析等、结构方程分析
• 基于计算机求解
3.2数据挖掘,从数据中发掘有价值的信息和模式。
• 关联规则、回归分析、分类、聚类
• 分类:决策树、朴素贝叶斯、最近邻、支持向量机(SVM)
3.3可视化技术
• 直观反应数据统计特性、关联关系。可视化和报告技术:包括数据可视化技术、报告生成技术等,用于将数据分析结果以图形化、易于理解的方式呈现给用户。
3.4机器学习方法 机器学习、神经网络、深度学习、人工智能技术:包括自然语言处理、计算机视觉、智能推荐等技术,用于将数据科学应用到更广泛的领域和场景中。
需要注意的是,不同的数据科学应用场景和任务可能需要不同的技术和工具,因此数据科学从业者需要具备广泛的技术和方法论知识,并且不断学习和更新自己的技术栈,以应对不断变化的市场和技术需求。
•数据高度碎片化、分散化。
•数据易被复制特性和跨域数据安全保障之间的矛盾。
•数据保管责任要求过高。
•跨域数据融通应用水平亟待提高。
•跨域数据融通交易良性激励机制亟待建立。
• 技术层面,推动了分布式并行技术的创新与大规模应用 • 催生出云平台、深度计算服务器、数据存储处理服务器、内存计算等市场
• 引发数据快速处理分析技术、数据挖掘技术和软件产品的发展
• 社会层面,大数据处理分析成为新一代信息技术融合应 用的结合点,“数据驱动”成为方向
• 信息数字化存储,带来大量安全隐患,网络空间安全, 成为新战场
• 保障安全,国家立法、严格管控
• 全民安全教育
统计是对数据资料的获取、整理、分析、描述及推断方法的总称,在理解现有数据的基础上,统计分析进一步发现规律,是一种从数据中提取有用信息的方法,它涉及数据的收集、整理、描述、分析、解释和推断等过程。统计学作为一门学科,研究如何有效地应用统计方法来描述、分析和解释数据,并从中推断出有用的信息和结论。
数据清洗是对采集的数据进行重新审查和校验,删除重复信息、纠正存在的错误,保证数据一致性
是指对数据进行预处理,去除数据集中的不完整、重复、错误、冗余或无效的数据,以便在后续的数据分析、挖掘、建模等操作中提高数据质量和分析效率。数据清洗通常包括以下步骤:
数据筛选:对数据进行初步筛选,去除不需要的数据。
缺失值处理:对于数据集中缺失的数据,可以选择删除、填充或插值等方式进行处理。
重复值处理:对于数据集中重复的数据,需要进行去重处理,以避免重复计算和影响结果。
异常值处理:对于数据集中异常的数据,需要进行检查和处理,以确保数据的准确性和一致性。
数据格式化:对于数据集中格式不一致的数据,需要进行统一格式化,以便后续操作的处理。
(Data regularization)是指将原始数据集转换为适合分析的数据格式的过程。在这个过程中,需要进行数据清洗、数据转换、数据重构等操作,以使得数据集更加清晰、完整、一致,并符合数据分析的要求。(书上是 数据合并、排序排名)
(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0, 1]区间上(一般地),常见的数据标准化的方法有:min-max标准化、z-score 标准化、logistic标准化、小数定标标准化等。
能够把连续值转化为离散值。通过离散化,微小的波动或者可能的噪声能够被发现。因此特征选择+特征离散化能够有效地提升分类器性能,降低计算时间和存储空间。
比定性和定量更进一步,根据数据参与数学运算的程度,结构化数据的一列可归为4个尺度之一。这4个尺度分别是:
•定类尺度(nominal level)。
•定序尺度(ordinal level)。
•定距尺度(interval level)。
•定比尺度(ratio level)。
这四个尺度代表了数据参与数学运算的程度从低到高,以及对数据进行分析的方式和限制。
定类尺度(nominal level): 这个尺度表示的是数据的分类,但是没有任何大小或者顺序上的含义。它们只是简单地被分为不同的类别。例如,一个人的性别可以被分为男性和女性,但是这两个类别之间没有大小和顺序上的差异。两种数学运算可能适合定类尺度——等式运算和包含运算,定类尺度无法使用均值、中位数,但是可以通过统计的方式计算定类尺度数据的众数,因此定类尺度的测度中心是数据的众数。
定序尺度(ordinal level): 这个尺度在定类尺度的基础上增加了一些顺序的概念。这意味着数据可以支持大小比较运算,从而对数据进行排序,但是不能够进行任何数值上的操作。例如,一个人的教育程度可以被分为小学、初中、高中和大学,这些数据可以被排序,但是不能够进行数学运算。适用的数据运算:•排序(ordering)、比较(comparison),测度中心:中位数(median)而不是平均值(mean/average)
定距尺度(interval level): 这个尺度在定序尺度的基础上增加了一些数值上的含义。这意味着数据可以进行有意义的加减运算,可以用均值和其他更复杂的数学公式描述数据,但是不能够进行乘除运算。例如,温度的摄氏度可以进行加减运算,两个定距尺度的差是有意义的,但是不能够进行乘除运算。适用的数据运算:加法、减法。测度中心:算术平均值(arithmetic mean),即均值(mean)。变差测度(measure of variation):标准差(standard deviation)。
定比尺度(ratio level): 这个尺度在定距尺度的基础上增加了一些乘除运算的含义,这意味着数据可以进行所有的数学运算,是4个尺度中最全面和强大的一种。例如,一个人的身高可以进行所有的数学运算,包括加减乘除。测度中心:几何平均值(geometric mean)。
结束,猜题一个也没中,fine。我以为会考学科定位啥的(比如说数据科学是什么,特点及问题、人工智能深度学习机器学习的关系、数据四个尺度)
考了下面几个问题
可以概括为以下几个方面:
探索性数据分析(EDA):通过数据可视化,可以快速地探索和理解数据的结构、分布、异常值等特征,帮助数据分析师或科学家发现数据中的模式和规律,指导后续的数据分析和建模工作。
传达数据信息:数据可视化可以将数据信息以直观的方式呈现给用户,使用户能够更加清晰地了解数据的含义和结论。通过可视化,可以有效地传达数据分析的结果和见解,使得决策者更容易理解数据的影响和作用。
发现新的问题和机会:数据可视化可以揭示数据中的新问题和机会,为业务领域的进一步探索提供新的思路和方向。通过探索数据的可视化结果,可能会发现新的趋势、市场机会和业务挑战,帮助企业做出更明智的决策。
可视化分析的交互性:可视化分析的交互性使得用户可以更加自由地探索数据和信息,根据自己的需要进行筛选、聚合、细化等操作,从而更加深入地了解数据的特征和意义。同时,交互性还可以提高用户的参与度和满意度,从而更好地支持数据驱动的决策。
综上所述,数据可视化是数据分析的重要工具之一,可以帮助用户更加深入地理解数据,发现新的问题和机会,并支持数据驱动的决策。
散点图(Scatter plots)
• 柱状图(bar charts)、条形图
• 折线图(line graphs)
• 直方图(histogram)
• 密度图(Kernel Density Estimate)
• 饼图(Pie Charts)
• 箱须图(箱形图/盒须图,Box-plot
是一种常见的机器学习问题,主要的目标是将输入数据映射到已知的输出类别中。下面列举一些常见的分类方法:
逻辑回归(Logistic Regression):逻辑回归是一种广泛使用的线性分类模型。它通过将输入特征的线性组合作为输入,经过 sigmoid 函数变换后输出一个介于 0 和 1 之间的概率值,表示该样本属于某个类别的概率大小。
决策树(Decision Tree):决策树是一种基于树结构的分类模型。它将输入数据按照不同的特征分割成多个子集,每个子集对应一个节点。通过递归地对子集进行分割,直到达到某个预定的停止条件为止,最终形成一个分类树。
支持向量机(Support Vector Machine,SVM):SVM 是一种非常强大的分类器,它通过将数据映射到高维空间中,寻找一个最优的分离超平面来实现分类。SVM 可以应用于线性和非线性分类问题。
K 近邻算法(K-Nearest Neighbor,KNN):KNN 是一种简单但非常有效的分类方法。它通过计算测试样本与训练集中所有样本之间的距离,选取距离最近的 K 个样本来预测测试样本的类别。
随机森林(Random Forest):随机森林是一种基于决策树的集成学习算法。它通过随机选择训练集和特征,建立多个决策树,并使用投票或平均等方式对多个决策树的结果进行整合,从而得到一个更加准确和稳健的分类器。
除了上述方法外,还有一些其他的分类方法,例如朴素贝叶斯(Naive Bayes)、神经网络(Neural Network)等。选择何种方法需要考虑问题的特点和数据集的特征。
在自然语言处理中,词袋模型、TF-IDF 和词向量模型是常用的文本特征提取方法。
词袋模型:将文本表示为一个由所有单词组成的向量,其中每个元素表示该单词在文本中的出现次数或权重。这种方法不考虑单词的顺序,只关注单词的出现情况,因此也被称为“单词出现的频率向量空间模型”。词袋模型可以使用 CountVectorizer 或 TfidfVectorizer 实现。
TF-IDF:TF-IDF 是一种用于评估单词在文本中重要程度的方法。它通过计算单词在文本中的出现频率和在文本集中的出现频率之比来计算单词的 TF-IDF 值。TF-IDF 值越大,说明该单词在文本中越重要。TF-IDF 可以使用 TfidfVectorizer 实现。
词向量模型:词向量模型是一种将单词表示为向量的方法,它可以通过计算单词与上下文之间的关系来学习单词的向量表示。这种方法可以在保留单词语义信息的同时,考虑单词之间的关系和相似性,因此适合用于计算相似性和分类等任务。常见的词向量模型包括 Word2Vec 和 GloVe。
总体来说,这三种方法都是从不同的角度来描述文本特征的,可以根据实际情况和需求选择适合的方法来提取文本特征。
另 语音识别的声学模型的建模单元可以是音素、音节、词语等,其单元粒度依次增加。每个词语的长度不等,且粒度大,因此一般不采用词语作为建模单元。(我错了)
另 激活函数的作用(我又错了)
在神经网络中,激活函数是一种非线性函数,用于将神经元的输入转换为输出。激活函数的作用是引入非线性特性,使神经网络能够学习和表示更加复杂的模式和关系。
激活函数通过将输入映射到一个固定的输出范围内来实现非线性转换。通常,激活函数的输出在 [0,1] 或 [-1,1] 范围内。如果没有激活函数,神经网络就只是一个线性模型,无法处理非线性模式。
不同的激活函数有不同的特点和应用场景。例如,Sigmoid 激活函数在神经网络中被广泛使用,因为它可以将输入值映射到 [0,1] 的范围内,具有良好的数学性质和可解释性。但是,Sigmoid 激活函数在梯度消失和梯度爆炸等问题方面表现不佳。ReLU 激活函数在解决梯度消失问题方面表现优秀,但也存在其他问题。
因此,在选择激活函数时,需要考虑其特点和应用场景,并根据实际情况进行选择和调整。
暂时想到这么多就这样吧
在使用机器学习算法过程中,针对不同的问题需要不用的模型评估标准,这里统一汇总。主要以两大类分类与回归分别阐述。
一、分类问题
1**、混淆矩阵**
混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。
真正(True Positive, TP):被模型预测为正的正样本。 假正(False Positive, FP):被模型预测为正的负样本。 假负(False Negative, FN):被模型预测为负的正样本。 真负(True Negative, TN):被模型预测为负的负样本。 真正率(True Positive Rate, TPR):TPR=TP/(TP+FN),即被预测为正的正样本数/正样本实际数。 假正率(False Positive Rate, FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数/负样本实际数。 假负率(False Negative Rate, FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数/正样本实际数。 真负率(True Negative Rate, TNR):TNR=TN/(TN+FP),即被预测为负的负样本数/负样本实际数
2**、准确率(Accuracy)**
准确率是最常用的分类性能指标。 Accuracy = (TP+TN)/(TP+FN+FP+TN)
即正确预测的正反例数/总数
3**、精确率(Precision)**
精确率容易和准确率被混为一谈。其实,精确率只是针对预测正确的正样本而不是所有预测正确的样本。表现为预测出是正的里面有多少真正是正的。可理解为查准率。 Precision = TP/(TP+FP)
即正确预测的正例数 /预测正例总数
4**、召回率(Recall)**
召回率表现出在实际正样本中,分类器能预测出多少。与真正率相等,可理解为查全率。 Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数
5**、F1 score**
F值是精确率和召回率的调和值,更接近于两个数较小的那个,所以精确率和召回率接近时,F值最大。很多推荐系统的评测指标就是用F值的。 2/F1 = 1/Precision + 1/Recall
6**、ROC曲线** 观测者操作特性曲线(**receiver operating characteristic curve)**
逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。如果我们减小这个阀值,更多的样本会被识别为正类,提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了直观表示这一现象,引入ROC。根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve,横坐标为False Positive Rate(FPR假正率),纵坐标为True Positive Rate(TPR真正率)。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方,
ROC曲线中的四个点和一条线:
点(0, 1):即FPR=0, TPR=1,意味着FN=0且FP=0,将所有的样本都正确分类。
点(1, 0):即FPR=1,TPR=0,最差分类器,避开了所有正确答案。
点(0, 0):即FPR=TPR=0,FP=TP=0,分类器把每个实例都预测为负类。
点(1, 1):分类器把每个实例都预测为正类。
总之:ROC曲线越接近左上角,该分类器的性能越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting
7**、AUC**
AUC(Area Under roc Curve)被定义为ROC曲线下的面积(ROC的积分),通常大于0.5小于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。AUC值(面积)越大的分类器,性能越好,
8**、PR曲线**
PR曲线的横坐标是精确率P,纵坐标是召回率R。评价标准和ROC一样,先看平滑不平滑(蓝线明显好些)。一般来说,在同一测试集,上面的比下面的好(绿线比红线好)。当P和R的值接近时,F1值最大,此时画连接(0, 0)和(1, 1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好像AUC对于ROC一样。一个数字比一条线更方便调型。
有时候模型没有单纯的谁比谁好(比如图二的蓝线和青线),所以选择模型还是要结合具体的使用场景。下面是两个场景: 1,地震的预测 对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了,也不要预测100次对了8次漏了两次。 2,嫌疑人定罪 基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。即时有时候放过了一些罪犯(recall低),但也是值得的。 对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。 当正负样本数量差距不大的情况下,ROC和PR的趋势是差不多的,但是在正负样本分布极不均衡的情况下,PRC比ROC更能真实的反映出实际情况,因为此时ROC曲线看起来似乎很好,但是却在PR上效果一般。
二、回归问题
拟合(回归)问题比较简单,所用到的衡量指标也相对直观。假设yi是第i个样本的真实值,ŷ i是对第i个样本的预测值。
1. 平均绝对误差(**MAE)**
平均绝对误差MAE(Mean Absolute Error)又被称为l1范数损失(l1-norm loss):
2. 平均平方误差(**MSE)**
平均平方误差MSE(Mean Squared Error)又被称为l2范数损失(l2-norm loss):
3**、均方根误差(RMSE)**
RMSE虽然广为使用,但是其存在一些缺点,因为它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。
4**、解释变异**
解释变异( Explained variance)是根据误差的方差计算得到的:
5**、决定系数**
决定系数(Coefficient of determination)又被称为R2分数:
三、聚类
1**、兰德指数**
兰德指数(Rand index)需要给定实际类别信息C,假设K是聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数,则兰德指数为:
RI = (TP+TN)/(TP+FP+FN+TN)
其中数据集中可以组成的总元素对数。RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。
对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:
ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。
2. 互信息
互信息(Mutual Information)也是用来衡量两个数据分布的吻合程度。假设U与V是对N个样本标签的分配情况,则两种分布的熵(熵表示的是不确定程度)分别为:
利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI与NMI取值范围为[0,1],AMI取值范围为[−1,1],它们都是值越大意味着聚类结果与真实情况越吻合。
3**、轮廓系数**
轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设a是与它同类别中其他样本的平均距离, b是与它距离最近不同类别中样本的平均距离,
对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。
轮廓系数取值范围是[−1,1],同类别样本越距离相近且不同类别样本距离越远,分数越高。
从“啤酒与尿布”到“数据科学”启示:
•不要只见树木,页不见森林
•注重相关关系研究
•深挖数据背后的含义
•数据分析不要停留于表面
1sklearn数据集
sklearn.datasets load* 获取小规模数据集 fetch* 获取大规模数据集
2 sklearn小数据集 sklearn.datasets.load_iris()
3 sklearn大数据集 sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
4 数据集的返回值 datasets.base.Bunch(继承自字典) dict["key"] = values bunch.key = values
2.1.3 数据集的划分 sklearn.model_selection.train_test_split(arrays, *options) 训练集特征值,测试集特征值,训练集目标值,测试集目标值 x_train, x_test, y_train, y_test
fit_transform(X)
2 特征工程介绍
2.3.1 特征提取sklearn.feature_extraction
2.3.2 字典特征提取 - 类别 -> one-hot编码 sklearn.feature_extraction.DictVectorizer(sparse=True,…)
2.3.3 文本特征提取(单词 作为 特征)
方法1:CountVectorizer统计每个样本特征词出现的个数 stop_words停用的停用词表 关键词:在某一个类别的文章中,出现的次数很多,但是在其他类别的文章当中出现很少
方法2:TfidfVectorizer TF-IDF - 重要程度 TF - 词频(term frequency,tf) IDF - 逆向文档频率
2.4.1 特征预处理
无量纲化 sklearn.preprocessing
2.4.2 归一化 MinMaxScaler 异常值:最大值、最小值
2.4.3 标准化 StandardScaler( ) (x - mean) / std 标准差:集中程度
2.5.1 降维
sklearn.feature_selection
transfer = VarianceThreshold(threshold=1)
pearsonr(data[factor[i]], data[factor[j + 1]])[0])
plt.scatter(data['revenue'], data['total_expense'])
2.6.1 主成分分析(PCA)
sklearn.decomposition.PCA(n_components=None) 小数 表示保留百分之多少的信息(多) 整数 减少到多少特征
分类算法,目标值:类别(1、sklearn转换器和预估器 2、KNN算法 3、模型选择与调优 4、朴素贝叶斯算法 5、决策树 6、随机森林)
3.1 sklearn转换器和估计器 转换器 估计器(estimator)
3.1.1 转换器 - 特征工程的父类
3.1.2 估计器(sklearn机器学习算法的实现)
估计器(estimator)
3.2.1 K-近邻算法
根据“邻居”来推断出你的类别
距离公式 欧氏距离(默认) 曼哈顿距离 绝对值距离 明可夫斯基距离 k 值取得过小,容易受到异常点的影响 k 值取得过大,样本不均衡的影响
所以,标准化 sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm='auto')
estimator = KNeighborsClassifier(n_neighbors=3) estimator.fit(x_train, y_train)
n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数
algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选用于计算最近邻居的算法:‘ball_tree’将会使用 BallTree,‘kd_tree’将使用 KDTree。‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。 (不同实现方式影响效率)
KNN优点:简单,易于理解,易于实现,无需训练 缺点: 1)必须指定K值,K值选择不当则分类精度不能保证 2)懒惰算法,对测试样本分类时的计算量大,内存开销大 使用场景:小数据场景,几千~几万样本,具体场景具体业务去测试
3.3 模型选择与调优
3.3.1 交叉验证(cross validation)
3.3.2 超参数搜索-网格搜索(Grid Search)
sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)
3.4 朴素贝叶斯算法
概率(Probability) 联合概率:包含多个条件,且所有条件同时成立的概率 条件概率:就是事件A在另外一个事件B已经发生条件下的发生概率iid 朴素贝叶斯算法: 朴素(iid) + 贝叶斯(贝叶斯公式) 应用场景:文本分类、单词作为特征
sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
alpha:拉普拉斯平滑系数
朴素贝叶斯算法优点: 对缺失数据不太敏感,算法也比较简单,常用于文本分类。 分类准确度高,速度快 缺点: 由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好
3.5 决策树
1)信息 香农:消除随机不定性的东西
信息和消除不确定性是相联系的,当我们得到的额外信息(球队历史比赛情况等等)越多的话,那么我们猜测的代价越小(猜测的不确定性减小)
2)信息的衡量 - 信息熵 g(D,A) = H(D) - 条件熵H(D|A) 信息增益表示得知特征X的信息而息的不确定性减少的程度使得类Y的信息熵减少的程度
没有免费的午餐
sklearn.tree.DecisionTreeClassifier(criterion=’gini’,max_depth=None,random_state=None)
决策树分类器
criterion:默认是’gini’系数,也可以选择信息增益的熵’entropy’
max_depth:树的深度大小
random_state:随机数种子
决策树总结 优点:可视化 - 可解释能力强 缺点:容易产生过拟合(剪枝/随机森林)
3.6 集成学习方法之随机森林
3.6.1 集成学习方法(通过建立几个模型组合的来解决单一预测问题) 3.6.2 什么是随机森林(训练集和特征都随机,一个包含多个决策树的分类器)
3.6.3 随机森林原理过程 训练集随机 - N个样本中随机有放回的抽样N个 bootstrap 随机有放回抽样 特征随机 - 从M个特征中随机抽取m个特征 M >> m 降维
class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)
3.6.6 总结 能够有效地运行在大数据集上, 处理具有高维特征的输入样本,而且不需要降维
4.1 线性回归
注意:线性关系一定是 线性模型(自变量 /参数一次) 线性模型不一定是线性关系
优化方法 :正规方程(天才一蹴而就)、 梯度下降(普通人不断试错改进)
sklearn.linear_model.LinearRegression(fit_intercept=True)
sklearn.linear_model.SGDRegressor(loss="squared_loss", fit_intercept=True, learning_rate ='invscaling', eta0=0.01)
SGDRegressor类实现了随机梯度下降学习,它支持不同的loss函数和正则化惩罚项来拟合线性回归模型。 loss=”squared_loss”: 普通最小二乘法**,fit_intercept:是否计算偏置(true),
sklearn.metrics.mean_squared_error(y_true, y_pred) 均方误差回归损失
4.2 欠拟合与过拟合
训练集上表现得好,测试集上不好 - 过拟合
欠拟合, 学习到数据的特征过少,所以增加数据的特征数量
过拟合, 原始特征过多,存在一些嘈杂特征, 模型过于复杂是因为模型尝试去兼顾各个测试数据点。所以 正则化
L1,损失函数 + λ惩罚项,LASSO L2 更常用,Ridge - 岭回归
sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)
Ridge方法相当于SGDRegressor(penalty='l2', loss="squared_loss"),只不过SGDRegressor实现了一个普通的随机梯度下降学习,推荐使用Ridge(实现了SAG)
sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
具有l2正则化的线性回归,可以进行交叉验证
coef_:回归系数
4.4 分类算法-逻辑回归与二分类
线型回归的输出就是逻辑回归的输入
激活函数 sigmoid函数 [0, 1] 1/(1 + e^(-x))
sklearn.linear_model.LogisticRegression(solver='liblinear', penalty=‘l2’, C = 1.0)
solver:优化求解方式(默认开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数),penalty:正则化的种类,C:正则化力度
LogisticRegression方法相当于 SGDClassifier(loss="log", penalty=" "),SGDClassifier实现了一个普通的随机梯度下降学习,也支持平均随机梯度下降法(ASGD),可以通过设置average=True。而使用LogisticRegression(实现了SAG)
案例:癌症分类预测-良/恶性乳腺癌肿瘤预测,不关心预测准不准,更关注有没有检测出。其中真的患癌症的,能够被检查出来的概率 - 召回率
4.4.5 分类的评估方法
1 精确率与召回率
1 混淆矩阵 TP = True Possitive FN = False Negative
2 精确率(Precision)与召回率(Recall)
3 F1-score 模型的稳健型
sklearn.metrics.classification_report(y_true, y_pred, labels=[], target_names=None )
2 ROC曲线与AUC指标
from sklearn.metrics import roc_auc_score
sklearn.metrics.roc_auc_score(y_true, y_score)
计算ROC曲线面积,即AUC值
y_true:每个样本的真实类别,必须为0(反例),1(正例)标记
y_score:每个样本预测的概率值
AUC只能用来评价二分类
AUC非常适合评价样本不平衡中的分类器性能
4.5 模型保存和加载
from sklearn.externals import joblib
保存:joblib.dump(rf, 'test.pkl')
加载:estimator = joblib.load('test.pkl')
4.6 无监督学习-K-means算法
没有目标值 - 无监督学习 4.6.2 无监督学习包含算法 聚类 K-means(K均值聚类) 降维 PCA
sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’)
4.6.6 Kmeans性能评估指标-- 轮廓系数
sklearn.metrics.silhouette_score(X, labels)
计算所有样本的平均轮廓系数
X:特征值
labels:被聚类标记的目标值
轮廓系数的值是介于 [-1,1] , 越趋近于1代表内聚度和分离度都相对较优。
应用场景: 没有目标值 分类
1.特征方面
机器学习的特征工程步骤是要靠手动完成的,而且需要大量领域专业知识 深度学习通常由多个层组成,它们通常将更简单的模型组合在一起,将数据从一层传递到另一层来构建更复杂的模型。通过训练大量数据自动得到模型,不需要人工特征提取环节 深度学习算法试图从数据中学习高级功能,这是深度学习的一个非常独特的部分。因此,减少了为每个问题开发新特征提取器的任务。适合用在难提取特征的图像、语音、自然语言处理领域
2.数据量和计算性能要求
机器学习需要的执行时间远少于深度学习,深度学习参数往往很庞大,需要通过大量数据的多次优化来训练参数
深度学习需要大量的训练数据集
训练深度神经网络需要大量的算力
可能要花费数天、甚至数周的时间,才能使用数百万张图像的数据集训练出一个深度网络。所以深度学习通常需要强大的GPU服务器来进行计算
3.算法代表
机器学习:朴素贝叶斯,决策树
深度学习:神经网络
复习参考资料有老师的ppt和代码,宋晖老师的书,周志华老师的西瓜书(配合视频太香了),还有黑马的视频和mooc的一些课程,学长的资料和导图,总之似乎学了很多,但是总感觉还是差了一点。基础不牢地动山摇。。。