机器学习day02

分类算法

1. sklearn转换器和预估器

转换器

	特征工程的步骤:
 1、实例化 (实例化的是一个转换器类(Transformer))
 2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)
 
 我们把特征工程的接口称之为转换器,其中转换器调用有这么几种形式
	fit_transform
	fit()               计算每一列的平均值、标准差
	transform()   (x-mean)/std的最终计算(标准化)

估计器
在这里插入图片描述

估计器(estimator)
1.实例化一个estimator
2.estimator.fit(x_train,y_train)(训练集的特征值和目标值)
			调用完毕,模型生成
3.模型评估:
			(1)直接比对真实值和预测值
						y_predict = estimator.predict(x_test)
						y_test == y_predict
				(2)计算准确率
						accuracy = estimator.score(x_test,y_test)

2. k-近邻算法(KNN)

核心思想:根据你的“邻居”来推断出你的类别

定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

距离公式:欧式距离、曼哈顿距离、明可夫斯基距离

k值取小,容易收到异常值的影响
k值取大,受到样本不均衡的影响

K-近邻算法API
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,algorithm=‘auto’)

  • n_neighbors:int,可选(默认= 5),k_neighbors查询默认使用的邻居数
  • algorithm:{‘auto’,‘ball_tree’,‘kd_tree’,‘brute’},可选用于计算最近邻居的算法:‘ball_tree’将会使用 BallTree,‘kd_tree’将使用 KDTree。‘auto’将尝试根据传递给fit方法的值来决定最合适的算法。 (不同实现方式影响效率)

案例1:鸢尾花种类预测
(1)获取数据
(2)数据集划分
(3)特征工程:标准化
(4)KNN预估器流程
(5)模型评估

K-近邻总结

优点:
	简单,易于理解,易于实现,无需训练
缺点:
	懒惰算法,对测试样本分类时的计算量大,内存开销大
	必须指定K值,K值选择不当则分类精度不能保证
使用场景:
	小数据场景,几千~几万样本,具体场景具体业务去测试

3. 模型选择和调优

3.1什么是交叉验证(cross validation)

交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成5份,其中一份作为验证集。然后经过5次(组)的测试,每次都更换不同的验证集。即得到5组模型的结果,取平均值作为最终结果。又称5折交叉验证。

交叉验证目的:为了让被评估的模型更加准确可信

在这里插入图片描述
3.2超参数搜索-网格搜索(Grid Search)

通常情况下,有很多参数是需要手动指定的(如k-近邻算法中的K值),这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型。

sklearn.model_selection.GridSearchCV(estimator, param_grid=None,cv=None)

案例2:鸢尾花种类预测,添加网格搜索和交叉验证
案列3:Facebook签到位置预测
(1)获取数据
(2)数据处理
a.缩小数据范围
2.0<x<2.5,1.0<y<1.5
b.time->年月日时分秒
c.过滤到签到次数少的地点
目标:特征值x,目标值y
(3)特征工程:标准化
(4)KNN算法预估流程
(5)模型选择与调优
(5)模型评估

4. 朴素贝叶斯算法
朴素:假设特征和特征之间是相互独立的
朴素贝叶斯算法:朴素+贝叶斯

应用场景:文本分类(单词作为特征)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
		朴素贝叶斯分类
		alpha:拉普拉斯平滑系数

案例:20类新闻分类
(1)获取数据 —sklearn数据集,不需要数据处理
(2)数据集划分
(3)特征工程:文本特征抽取
(4)朴素贝叶斯预估器流程–模型
(5)模型评估

总结:
优点:
	朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。
	对缺失数据不太敏感,算法也比较简单,常用于文本分类。
	分类准确度高,速度快
缺点:
	由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好

5. 决策树

高效的进行决策:特征的先后顺序

信息论:

  • 信息:消除不确定性的东西
  • 信息的衡量:信息熵
    在这里插入图片描述
  • 信息增益

在这里插入图片描述

sklearn.tree.DecisionTreeClassifier(criterion=’gini’, max_depth=None,random_state=None)

案例:用决策树对鸢尾花进行分类

	决策树可视化:sklearn.tree.export_graphviz() 该函数能够导出DOT格式
  • 决策树总结

     优点:
     		可视化,可解释能力强
     缺点:
     		容易产生过拟合
     改进:
     		减枝cart算法(决策树API当中已经实现,随机森林参数调优有相关介绍)
     		随机森林
    

案例:泰坦尼克号乘客生存预测

 1)获取数据
 2)数据处理:缺失值处理、特征值转换成字典类型
 3)准备好特征值、目标值
 4)划分数据集
 5)特征工程:字典特征抽取
 6)决策树预估器流程
 7)模型评估

6. 随机森林

两个随机:

训练集随机:bootstrap  随机有放回的抽样
特征值随机


sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’, max_depth=None, bootstrap=True, random_state=None, min_samples_split=2)

总结:

在当前所有算法中,具有极好的准确率
能够有效地运行在大数据集上,处理具有高维特征的输入样本,而且不需要降维
能够评估各个特征在分类问题上的重要性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值