常听一句话说 “你还能玩儿出花来”,我觉得特征工程就是这么个把那些看上去普普通通的 “数据” 玩儿出花的过程。如果用 DIKW 模型(Data Information Knowledge Wisdom)来理解,Data 显然就是原始的一个个数据值,Information 就是对数据进行分析、处理后得到的具有一定意义的东西。
严格的定义如下:特征工程是对原始数据进行一系列工程处理,将其提炼为特征根,作为模型的输入。它旨在去除原数据中的杂质和冗余,使得模型与预测值之间能够以此建立联系。
常听一句话说 “你还能玩儿出花来”,我觉得特征工程就是这么个把那些看上去普普通通的 “数据” 玩儿出花的过程。如果用 DIKW 模型(Data Information Knowledge Wisdom)来理解,Data 显然就是原始的一个个数据值,Information 就是对数据进行分析、处理后得到的具有一定意义的东西。
严格的定义如下:特征工程是对原始数据进行一系列工程处理,将其提炼为特征根,作为模型的输入。它旨在去除原数据中的杂质和冗余,使得模型与预测值之间能够以此建立联系。
探索性数据分析 EDA(Exploratory Data Analysis)是数据分析和挖掘的第一步,主要是对数据集进行了解,包括基本情况、特征情况、特征间关系等等,为进一步的分析和挖掘提供信息。
一个完整的 EDA 过程一般大致包括四步:
机器学习的数据集一般被划分为训练集和测试集,训练集用于训练模型,测试集则用于评估模型。针对不同的机器学习问题(分类、排序、回归、序列预测等),评估指标的选择也有所不同。本文主要介绍机器学习中常用的模型评估指标。
Paper:[1912.08777] PEGASUS: Pre-training with Extracted Gap-sentences for Abstractive Summarization
核心思想:基于 GSG 的 Transformer 在文本摘要上的应用。
Given an array of integers nums
sorted in ascending order, find the starting and ending position of a given target
value.
Your algorithm’s runtime complexity must be in the order of O(log n).
If the target is not found in the array, return [-1, -1]
.
Example 1:
1 | Input: nums = [5,7,7,8,8,10], target = 8 |
Example 2:
1 | Input: nums = [5,7,7,8,8,10], target = 6 |
Constraints:
0 <= nums.length <= 10^5
-10^9 <= nums[i] <= 10^9
nums
is a non decreasing array.-10^9 <= target <= 10^9
Given an integer array nums
sorted in ascending order, and an integer target
.
Suppose that nums
is rotated at some pivot unknown to you beforehand (i.e., [0,1,2,4,5,6,7]
might become [4,5,6,7,0,1,2]
).
You should search for target
in nums
and if you found return its index, otherwise return -1
.
Example 1:
1 | Input: nums = [4,5,6,7,0,1,2], target = 0 |
Example 2:
1 | Input: nums = [4,5,6,7,0,1,2], target = 3 |
Example 3:
1 | Input: nums = [1], target = 0 |
Constraints:
1 <= nums.length <= 5000
-10^4 <= nums[i] <= 10^4
nums
are unique.nums
is guranteed to be rotated at some pivot.-10^4 <= target <= 10^4
Given a linked list, swap every two adjacent nodes and return its head.
You may not modify the values in the list’s nodes, only nodes itself may be changed.
1 | Given 1->2->3->4, you should return the list as 2->1->4->3. |
SVM 是机器学习在神经网络兴起前最经典、有效的算法。它的思想主要是用一个超平面对数据集进行划分,但是能够分开数据集的超平面一般都有无数个,支持向量机的做法是 “间隔最大化”,也就是选择 “支持向量” 到分割平面距离之和最大的,进而将问题转换为一个凸优化问题。
支持向量机根据数据集可分程度的不同分为:
SVM 是一套完整的数据处理算法,核方法的引入使得它具有了对非线性数据的处理能力。具体的方式是将低维数据映射到高维,这样原来不可分的数据自然就可分了。比如假设两类数据点完全是均匀随机分布的,此时如果在平面内无论使用直线还是曲线都无法将它们分开,但假设我们有能力让某一类数据点全部脱离二维进入三维(此处可以想象桌子上散乱着小米和钢珠,你猛地用双手拍桌子,小米会跳起来进入第三维),那它们之间任意的平面都可以轻易将它们隔开。事实上,神经网络使用了类似的方法,感知机的中间隐层做的也是类似的事情。
本部分只介绍线性可分支持向量机和线性支持向量机。
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
1 | [ |