总结一些网上看到的面试题
一、多态的实现
多态定义:接口的多种不同的实现方式即为多态。
多态前提(实现方法):
必须要有继承关系;
子类要重写父类的方法;
父类类型的引用指向子类对象(向上转型)。
与 重载 和 方法覆盖/重写 的区别:
重载:一个方法名,参数不同;
方法覆盖/重写:父类与子类有同样的方法名和参数;
多态:父类类型的引用指向子类类型的对象,调用一个子类重写过的方法时,虽然是父类类型的引用,实际调用的却是子类的实现方法。
注意
多态会“覆盖”私有方法。
静态方法是与类关联的,而非与对象关联,所以肯定不具有多态性。
多态的实现原理
待更新
二、属性的度量
不太理解 度量 的意思?
大概了解了一下属性、属性的类型(4种),转自数据挖掘中基本概念–数据类型的属性与度量
类别,只能进行相异性比较,无序
序数,即离散值,一组有序(即有大小关系)的取值集合,可以进一步进行大小先后的比较
区间,即连续值,可以进行进一步的加减操作
比率,具有了更多的意义,可以进行进一步的乘除的操作
三、数据的预处理
我觉得大概有几部分:属性(特征)的选取、缺失值处理、异常值处理、归一化。
缺失值处理:根据缺失的情况,可以选择删除整行数据、删除整列数据(即剔除该特征)、用平均值或基于正态分布的随机值填充、根据标签或聚类填充。
异常值处理:根据情况,可以选择将异常数据删除。
归一化:将数据映射到(0,1)区间上,去量纲化。
方法:
线性变化(最大-最小规范化)((x - xmin)/(xmax - xmin))、
零-均值规范化((x - 均值)/ 标准差 )、
对数模式规范化( 1 / (1 - exp(-x)) )。
只有基础的,待扩展
四、你知道那些分类算法?
逻辑回归、线性判别分析、支持向量机(SVM)、决策树、贝叶斯分类器、聚类。
k-means(k均值聚类)、改进版k-means++
集成学习——begging、随机森林(针对决策树)
用AdaBoost方法集成BP神经网络