1.用于分类的估计器:
from sklearn.neighbors # k-近邻算法
from sklearn.naive_bayes # 贝叶斯
from sklearn.linear_model.LogisticRegression # 逻辑回归
from sklearn.tree # 决策树与随机森林
2.用于回归的估计器:
# 线性回归
from sklearn.linear_model.LinearRegression
# 岭回归
from sklearn.linear_model.Ridge
# 聚类
from sklearn.cluster.KMeans
估计器工作流程:
1.实例化一个 estimator
2.estimator.fit(x_train, y_train)计算
x_train: 特征值
y_train: 目标值
调用完毕--生成--模型
3.模型评估:
1)直接比对真实值和预测值
y_predict = estimator.predict(x_test)
2) 算准确率
accuracy = estimator.score(x_test, y_test)
核心思想:你的“邻居”来推算出你的类别
原理:
k=1 容易受异常值的影响
k值过大时,样本不均衡的影响
如何确定是邻居?
距离公式:欧式距离、曼哈顿距离、郎可夫斯基距离
from sklearn.neighbors.KNeighborsClassifier
API
sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, algcrithm='auto')
n_neighbors: int可选(默认=5),k_neighbors查询默认使用的邻居数
algcrithm:{'auto','ball_tree','kd_tree','brute'},
可选用于计算最近邻居的算法:
ball_tree将会使用BallTree,
kd_tree将使用KDTree。
auto将尝试根据传递给fit方法的值来决定最合适的算法。
超参数搜索-网格搜索(Grid Sears)
from sklearn.model_selection import GridSearchCV
GridSearchCV(estimator=, param_grid=, cv=None)
# 对估计器的指定参数值进行详尽搜索
# estimator:估计器对象
# param_grid:估计器参数(dict){"n_neighbors":[1,3,5,7]}
# cv:指定几折交叉验证
# fit():输入训练数据
# score():准确率
# 分析结果:
# 最佳参数:best_params_
# 最佳结果:best_score_
# 最佳估计器:best_estimator_
# 交叉验证结果:cv_results_
# 如:estimator.best_params_
什么是朴素贝叶斯分类方法法?
联合概率、条件概率与相互独立
贝叶斯公式
公式分为三部分:
P©: 每个文档类别的概率(某个文档类别数/总文档数量)
P(W | C):给定类别下特征的概率
from sklearn.naive_bayes import MultinomialNB
sklearn.naive_bayes.MultinomialNB(alpha = 1.0)
朴素贝叶斯分类
alpha:拉普拉斯平滑系数
优点:
发源于古典数学理论,有稳定的分类效率
对缺失数据不太敏感,算法也比较简单,常用于文本分类
分类准确度高,速度快
缺点:
由于使用了样本属性独立性的假设,所以如果特征属性有关联时其效果不好
信息熵的公式以及作用
信息增益的公式作用
应用信息增益实现计算特征的不确定性减少程度
决策树的三种算法实现
认识决策树:
如何高效的进行决策?
特征的先后顺序
分类原理:类似于if-else
from sklearn.tree import DecisionTreeClassifier
DecisionTreeClassifier(criterion='gini', max_depth=None,random_state=None)
决策树分类器
criterion:默认是'gini'系数,也可以选择信息增益的熵'entropy'
max_depth:树的深度大小
random_state:随机数种子
1.保存树的结构到dot文件
from sklearn.tree import export_graphviz
export_graphviz(estimator, out_file='tree.dot', feature_names=['',''])
优点:
简单理解,树木可视化
缺点:
决策树学习者可以创建不能很好地推广数据的过于复杂的树这被
改进:
减枝cart算法(决策树API当中已经实现,随机森林有相关介绍)
随机森林
什么是集成学习方法?
什么是随机森林?
随机
森林:包含多个决策树的分类器
随机森林原理:
训练集:特征值 目标值
随机:
两个随机:
1)训练集随机
bootstrap 随机有放回抽样
2)特征随机
from sklearn.ensemble import RandomForestClassifier
RandomForestClassifier(n_estimators=10,
criterion='gini',
max_depth=None,
bootstrap=True,
random_state=None,
min_samples_split=2)
随机森林
n_estimators:integer,optional (default = 10)森林里的树木数量120,200,300,500,800,1200
criterion:string,可选(default = 'gini')分割特征的测量方法
max_depth:integer或None,可选(默认=无)树的最大深度5,8,15,25,30
max_features="auto",每个决策树的最大特征数量
if "auto",max_features=sqrt(n_features)
if "sqrt",max_features=sqrt(n_features) (same as "auto")
if "log2",max_features=sqrt(n_features)
if None,max_features=n_features
bootstrap: boolean,optional (default = true)是否在构建树时使用放回抽样
min_samples_split:节点划分最少样本数
min_samples_leaf:叶子节点的最小样本数
超参数:n_estimator,max_depth,min_samples_split,min_samples_leaf
具有极好的准确率
能够有效地运行在大数据上,处理具有高维特征的输入样本,而且不需要降维
能够评价各种特征在分类问题上的重要性