1.什么叫做数据挖掘?(数据、挖掘、和、数据挖掘的目的)
数据是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事务的未经加工的原始素材。
挖掘是进行深入开发,探求。
数据挖掘一般是从大量数据中通过算法搜索出隐藏其中的信息的过程,从大量的、不完全的、有噪声的、模糊的、随机的应用数据中,提取出潜在且有用的信息的过程,并且这个过程是自动的,通常与计算机有关,通过统计、联机分析处理、情报检索、机器学习等诸多方法实现,这是狭义的定义,还有一种广义的定义,认为数据挖掘就是一个完整的知识发现,包括数据清理、建模、评估等过程。
数据挖掘的目的:因为当前处于数据时代,数据量巨大,但有用信息很少,要想获得有用的信息,需对大量数据进行深层分析,对数据进行分析,尽可能自动化的简化和支持联机分析,达到把握趋势和模式,预测,以及求最优解的目的。
2.什么叫做有监督学习?(对比有监督和无监督)
监督学习:指我们设置所谓的“正确答案”去教会机器如何去学习,其训练数据由类别标记的输入向量x做为参数样本。利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。监督算法通过该样本进行分析利用这个模型对新样本进行预测,映射出新的实例。回归和分类均称为监督学习。
3.描述数据挖掘的策略?(目标函数最小、怎么对待过拟合、等等)
经验风险最小化,使用经验风险最小化策略可以求解最优化问题,比如线性回归;最小二乘法用于求目标函数的最优值。
结构风险最小化,结构风险最小化是为了防止过拟合现象,结构风险最小化等价于正则化,岭回归和Lasso回归使用的就是风险最小化的思想。岭回归和Lasso回归解决线性回归中出现的非满秩矩阵求解出错问题和过拟合问题。
4.解释数据挖掘的各个步骤?(数据导入和预处理、模型建立、模型训练、模型测试、模型调整、数据可视化)(1000字以内)
数据导入和预处理:获取信息,需要对收集到的信息进行数据清洗、转换和集成,检测是否存在异常值,进行特征选择,把输入数据转换为机器学习算法使用的数据,主要包括数据特征的提取和归一化。该步骤是数据挖掘的准备,达到改进数据质量,提高数据挖掘过程的准确率和效率,保证数据挖掘的正确性和有效性,通过对数据格式和内容的调整,使得数据更符合挖掘的需要。
模型建立:选择合适的算法和模型,,判断哪些数据源可用,哪些数据与当前挖掘目标相关,如何保证取样数据的质量,是否在足够范围内有代表性,数据样本取多少合适,如何分类(训练集、验证集、测试集),一个用于模型训练,一个用于模型测试,从数据中提取出有用的信息。常用的模型包括决策树、神经网络、支持向量机等。该步骤是数据挖掘的核心步骤之一。
模型训练:测试样本的特征数据,将训练集进行训练。主要有监督学习和无监督学习。
模型测试:利用训练阶段得到的模型,对测试集进行预测。建立假设、计算抽样分布、选择显著性水平和否定域、计算测试量、判定。
模型调整:比较不同的算法,判断模型好坏,选择更好的算法,调优模型参数,提升准确度。
数据可视化:可视化是数据分析挖掘的最直观表达,是探索和理解大数据最有效的途径之一,将数据转化为视觉图像,能帮助我们更加容易地发现和理解其中隐藏的模式或规律。它能借助于图像化手段,清晰有效的传达与沟通信息。
5.简述逻辑回归的原理?
逻辑回归分析在线性回归的基础上套用了一个逻辑函数,用于预测二值型因变量。虽然它名字里面包含"回归"二字,但它实际上是一种分类方法,而线性回归是一个实值,需要将实值转换为0或1。逻辑回归实际上是利用线性回归模型的预测结果逼近真实标记地对数概率。
它就是一种减小预测范围,将预测值限定为【0,1】间的一种回归模型,此时引入了一个sigmoid函数,这个函数的性质,非常好的满足了函数的定义域x的输入是全体实数,而值域输出y总是【0,1】,以一种概率的形式表示,并且当x=0时,y=0.5,这是决策边界。
6.简述朴素贝叶斯的原理?
它是一个非常简单,但是实用性很强地分类模型,这个模型的基础是贝叶斯决策理论,并假设各个维度上的特征被分类的条件概率之间是相互独立的。对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项别属于哪个类别。基于特征条件独立的假设来学习输入或输出的联合概率分布;基于学习的模型,对给定的输入,利用贝叶斯定理求出后验概率最大的输出。它所需估计的参数很少,对缺失数据不太敏感。
7.简述支持向量机的原理?
支持向量机是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,是根据有限的样本信息在模型的复杂性和学习能力之间寻求最佳折中。给定一组训练样本集,样本数据分散在平面上,找到一条直线将数据集分割开,可以分开的直线有很多,找到其中泛化能力最好,鲁棒性最强的直线,在三维空间中,需要找到一个平面,如果超过三维以上的维数,则需要找到一个超平面。支持向量机数学模型原理,其实就是通过控制函数距离来求得最大几何距离。也就是函数距离为约束条件,几何距离为目标函数。
8.使用sklearn实现一个分类算法:并注释每个阶段
# 数据导入和预处理
# 模型建立
# 模型训练
# 模型测试
# 模型调参
# 数据可视化
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
from sklearn.metrics import mean_squared_error,r2_score
# 数据导入和预处理
diabetes = datasets.load_diabetes()
diabetes_X = datasets.data[:,np.newaxis,2]
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
# 模型建立
regr = linear_model.LinearRegression()
# 模型训练
regr.fit(diabetes_X_train,diabetes_y_train)
# 模型测试
diabetes_y_pred = regr.predict(diabetes_X_test)
# 模型调参
X_train,X_test,y_train,y_test = train_test_split(diabetes_X,diabetes.target,test_size=0.2,random_state=42)
print('Coefficients:\n',regr.coef_)
print('Mean squared error:% .2f' % mean_squared_error(diabetes_y_test,diabetes_y_pred))
print('Variance score:% .2f' % r2_score(diabetes_y_test,diabetes_y_pred))
# 数据可视化
plt.scatter(diabetes_X_test,diabetes_y_test,color="black")
plt.plot(diabetes_X_test,diabetes_y_pred,color="blue",linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()