好像基本没太找到特斯拉的面经,今天刚面完最后一轮,来分享一下。 因为技术栈问题,俺投的大数据开发和测开,被测开捞了简历。 第一轮是电面,简单了解了情况,然后用英文做自我介绍。 电面通过之后隔了三四天收到了笔试,codility 题很简单。 接着是进入正式面试一共四轮: 第一轮算是Java技术面,基本都是八股文还有一些项目问题,然后十分钟左右英文问答,是behavioral question。 第二
一、继承 1.1 Scala中的继承结构 Scala 中继承关系如下图: Any 是整个继承关系的根节点; AnyRef 包含 Scala Classes 和 Java Classes,等价于 Java 中的 java.lang.Object; AnyVal 是所有值类型的一个标记; Null 是所有引用类型的子类型,唯一实例是 null,可以将 null 赋值给除了值类型外的所有类型的变量; N
致谢 特别感谢 FuShare, TuShare 和 OpenData 项目提供借鉴学习的机会; 感谢生意社网站提供的相关数据; 感谢奇货可查网站提供的相关数据; 感谢智道智科网站提供的相关数据; 感谢中国银行间市场交易商协会网站提供的相关数据; 感谢99期货网站提供的相关数据; 感谢英为财情网站提供的相关数据; 感谢中国外汇交易中心暨全国银行间同业拆借中心网站提供的相关数据; 感谢金十数据网站提
特性(Attribute)是用于在运行时传递程序中各种元素(比如类、方法、结构、枚举、组件等)的行为信息的声明性标签。您可以通过使用特性向程序添加声明性信息。一个声明性标签是通过放置在它所应用的元素前面的方括号([ ])来描述的。 特性(Attribute)用于添加元数据,如编译器指令和注释、描述、方法、类等其他信息。.Net 框架提供了两种类型的特性:预定义特性和自定义特性。 列举特性 列举特性
RFormula通过一个R model formula选择一个特定的列。 目前我们支持R算子的一个受限的子集,包括~,.,:,+,-。这些基本的算子是: ~ 分开target和terms + 连接term,+ 0表示删除截距(intercept) - 删除term,- 1表示删除截距 : 交集 . 除了target之外的所有列 假设a和b是double列,我们用下面简单的例子来证明RFor
QuantileDiscretizer输入连续的特征列,输出分箱的类别特征。分箱数是通过参数numBuckets来指定的。 箱的范围是通过使用近似算法(见approxQuantile )来得到的。 近似的精度可以通过relativeError参数来控制。当这个参数设置为0时,将会计算精确的分位数。箱的上边界和下边界分别是正无穷和负无穷时, 取值将会覆盖所有的实数值。 例子 假设我们有下面的
VectorAssembler是一个转换器,它可以将给定的多列转换为一个向量列。合并原始特征与通过不同的转换器转换而来的特征,从而训练机器学习模型, VectorAssembler是非常有用的。VectorAssembler允许这些类型:所有的数值类型,boolean类型以及vector类型。 例子 假设我们有下面的DataFrame,它的列名分别是id, hour, mobile, us
SQLTransformer实现了一种转换,这个转换通过SQl语句来定义。目前我们仅仅支持的SQL语法是像SELECT ... FROM __THIS__ ...的形式。 这里__THIS__表示输入数据集相关的表。例如,SQLTransformer支持的语句如下: SELECT a, a + b AS a_b FROM __THIS__ SELECT a, SQRT(b) AS b_sqrt
Bucketizer将连续的特征列转换成特征桶(buckets)列。这些桶由用户指定。它拥有一个splits参数。 splits:如果有n+1个splits,那么将有n个桶。桶将由split x和split y共同确定,它的值范围为[x,y),如果是最后 一个桶,范围将是[x,y]。splits应该严格递增。负无穷和正无穷必须明确的提供用来覆盖所有的双精度值,否则,超出splits的值将会被
MaxAbsScaler转换由向量列组成的数据集,将每个特征调整到[-1,1]的范围,它通过每个特征内的最大绝对值来划分。 它不会移动和聚集数据,因此不会破坏任何的稀疏性。 MaxAbsScaler计算数据集上的统计数据,生成MaxAbsScalerModel,然后使用生成的模型分别的转换特征到范围[-1,1]。下面是程序调用的例子。 import org.apache.spark.ml.fe
MinMaxScaler转换由向量行组成的数据集,将每个特征调整到一个特定的范围(通常是[0,1])。它有下面两个参数: min:默认是0。转换的下界,被所有的特征共享。 max:默认是1。转换的上界,被所有特征共享。 MinMaxScaler计算数据集上的概要统计数据,产生一个MinMaxScalerModel。然后就可以用这个模型单独的转换每个特征到特定的范围。 特征E被转换后的值可以
VectorIndexer把数据集中的类型特征索引为向量。它不仅可以自动的判断哪些特征是可以类别化,也能将原有的值转换为类别索引。 通常情况下,它的过程如下: 1 拿到类型为vector的输入列和参数maxCategories 2 根据有区别的值的数量,判断哪些特征可以类别化。拥有的不同值的数量至少要为maxCategories的特征才能判断可以类别化。 3 对每一个可以类别化的特征计算基于0
One-hot encoding将标签索引列映射为二值向量,这个向量至多有一个1值。 这个编码允许要求连续特征的算法(如逻辑回归)使用类别特征。下面是程序调用的例子。 import org.apache.spark.ml.feature.{OneHotEncoder, StringIndexer} val df = spark.createDataFrame(Seq( (0, "a"),
与StringIndexer相对的是,IndexToString将标签索引列映射回原来的字符串标签。一个通用的使用案例是使用 StringIndexer将标签转换为索引,然后通过索引训练模型,最后通过IndexToString将预测的标签索引恢复成字符串标签。 例子 假设我们有下面的DataFrame,它的列名为id和categoryIndex。 id | categoryIndex -
StringIndexer将标签列的字符串编码为标签索引。这些索引是[0,numLabels),通过标签频率排序,所以频率最高的标签的索引为0。 如果输入列是数字,我们把它强转为字符串然后在编码。 例子 假设我们有下面的DataFrame,它的列名是id和category。 id | category ----|---------- 0 | a 1 | b 2 | c 3