模板网站会影响网站优化吗广东汕头新闻最新消息

当前位置: 首页 > news >正文

模板网站会影响网站优化吗,广东汕头新闻最新消息,广东省住房建设部网站,网站建设优化服务精英目录 1.朴素贝叶斯-分类 1.1贝叶斯分类理论 1.2条件概率 1.3全概率公式 1.4贝叶斯推断 1.5朴素贝叶斯推断 1.6拉普拉斯平滑系数 1.7API 2.决策树-分类 2.1决策树 2.2基于信息增益的决策树建立 2.2.1信息熵 2.2.2信息增益 2.2.3信息增益决策树建立步骤 2.3基于基…目录 1.朴素贝叶斯-分类 1.1贝叶斯分类理论 1.2条件概率 1.3全概率公式 1.4贝叶斯推断 1.5朴素贝叶斯推断 1.6拉普拉斯平滑系数 1.7API 2.决策树-分类 2.1决策树 2.2基于信息增益的决策树建立 2.2.1信息熵 2.2.2信息增益 2.2.3信息增益决策树建立步骤 2.3基于基尼指数决策树的建立 2.3.1基尼指数 2.4API 1.朴素贝叶斯-分类 1.1贝叶斯分类理论 选择较高概率对应的类别为其样本的类别。 1.2条件概率 条件概率(Conditional probability)就是指在事件B发生的情况下事件A发生的概率用P(A|B)来表示。 由 (|)(∩)/() 得 (∩)(|)() 同理可得 (∩)(|)() 即条件概率的计算公式 (|)(B|A)()/() 1.3全概率公式 由 ()(∩)(∩′) 和 (∩)(|)() 所以,全概率公式: ()(|)()(|′)(′)  1.4贝叶斯推断 对条件概率公式进行变形: P(A)称为先验概率Prior probability即在B事件发生之前我们对A事件概率的一个判断。 P(A|B)称为后验概率Posterior probability即在B事件发生之后我们对A事件概率的重新评估。 P(B|A)/P(B)称为可能性函数Likelyhood这是一个调整因子使得预估概率更接近真实概率。 理解 后验概率  先验概率调整因子 1.5朴素贝叶斯推断 朴素贝叶斯对条件概率分布做了条件独立性的假设。 p(a|X) p(X|a)* p(a)/p(X) p(X|a) p(x1,x2,x3…xn|a) p(x1|a)*p(x2|a)*p(x3|a)…p(xn|a) p(X) p(x1,x2,x3…xn) p(x1)*p(x2)*p(x3)…p(xn) p(a|X) p(x1|a)*p(x2|a)*p(x3|a)…p(xn|a) * p(a) / p(x1)*p(x2)*p(x3)…p(xn) 1.6拉普拉斯平滑系数 某些事件或特征可能从未出现过这会导致其的概率被估计为零。然而在实际应用中即使某个事件或特征没有出现在训练集中也不能完全排除它在未来样本中出现的可能性。拉普拉斯平滑技术可以避免这种“零概率陷阱”。 一般α取值1m的值为总特征数量 通过这种方法即使某个特征在训练集中从未出现过其概率也不会被估计为零而是会被赋予一个很小但非零的值从而避免了模型在面对新数据时可能出现的过拟合或预测错误。 1.7API sklearn.naive_bayes.MultinomialNB() estimator.fit(x_train, y_train) y_predict estimator.predict(x_test) score estimator.score(x_test,y_test) from sklearn.datasets import load_digits from sklearn.model_selection import StratifiedKFold from sklearn.naive_bayes import MultinomialNBdata load_digits() x,y data.data,data.target# 贝叶斯算法预估器 estimator MultinomialNB()fold StratifiedKFold(n_splits5,shuffleTrue,random_state 10) indexs fold.split(x,y)for train_index, test_index in indexs:x_train,x_test x[train_index],x[test_index]y_train,y_test y[train_index],y[test_index]# 模型训练estimator.fit(x_train,y_train)# 模型测试y_predictestimator.predict(x_test)# print(y_predict)# 模型评估score estimator.score(x_test,y_test)print(score) 2.决策树-分类 2.1决策树 决策节点 通过条件判断而进行分支选择的节点。 叶子节点 没有子节点的节点表示最终的决策结果。 决策树的深度 所有节点的最大层次数。 决策树优点 可视化 - 可解释能力-对算力要求低 决策树缺点 容易产生过拟合不能把深度调整得太大了。 2.2基于信息增益的决策树建立 信息增益决策树倾向于选择取值较多的属性在有些情况下这类属性可能不会提供太多有价值的信息算法只能对描述属性为离散型属性的数据集构造决策树。 2.2.1信息熵 信息熵描述的是不确定性。信息熵越大不确定性越大。信息熵的值越小则纯度越高。 假设样本集合D共有N类第k类样本所占比例为则D的信息熵为 2.2.2信息增益 信息增益是一个统计量用来描述一个属性区分数据样本的能力。信息增益越大那么决策树就会越简洁。这里信息增益的程度用信息熵的变化程度来衡量, 信息增益公式 2.2.3信息增益决策树建立步骤 第一步计算各属性的信息熵。 第二步计算属性的信息增益。 第三步划分属性信息增益较高者作为划分节点。 第四步在分支情况下计算剩余属性的信息熵。重复第二三步。 2.3基于基尼指数决策树的建立 2.3.1基尼指数 基尼指数Gini Index是决策树算法中用于评估数据集纯度的一种度量基尼指数衡量的是数据集的不纯度或者说分类的不确定性。在构建决策树时基尼指数被用来决定如何对数据集进行最优划分以减少不纯度。 2.3.2基尼指数的计算 对于一个二分类问题如果一个节点包含的样本属于正类的概率是 (p)则属于负类的概率是 (1-p)。那么这个节点的基尼指数 (Gini(p)) 定义为 2.3.3基尼指数的意义 当一个节点的所有样本都属于同一类别时基尼指数为 0表示纯度最高。 当一个节点的样本均匀分布在所有类别时基尼指数最大表示纯度最低。
2.3.4决策树中的应用 在构建决策树时我们希望每个内部节点的子节点能更纯即基尼指数更小。因此选择分割特征和分割点的目标是使子节点的平均基尼指数最小化。具体来说对于一个特征我们计算其所有可能的分割点对应的子节点的加权平均基尼指数然后选择最小化这个值的分割点。这个过程会在所有特征中重复直到找到最佳的分割特征和分割点。 2.4API class sklearn.tree.DecisionTreeClassifier(criterion) 参数 criterion : 默认为gini          取值为gini时采用 基尼不纯度Gini impurity算法构造决策树 取值为entropy”时采用信息增益 information gain算法构造决策树. max_depth:  int, 默认为None  树的最大深度 function sklearn.tree.export_graphviz(estimator, out_fileiris_tree.dot, feature_namesiris.feature_names) 参数 estimator: 决策树预估器    out_file: 生成的文档    feature_names: 节点特征属性名 功能:     把生成的文档打开复制出内容粘贴到http://webgraphviz.com/中点击generate Graph会生成一个树型的决策树图 from sklearn.datasets import load_iris from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler from sklearn.model_selection import GridSearchCV,train_test_split,StratifiedKFold from sklearn.tree import DecisionTreeClassifier,export_graphviz# 加载数据 dataset load_iris() x,y dataset.data,dataset.target# 数据划分 x_train,x_test,y_train,y_test train_test_split(x,y,train_size0.7,shuffleTrue,random_state4)foldStratifiedKFold# 数据标准化 transfer StandardScaler() s_x_train transfer.fit_transform(x_train) s_x_test transfer.transform(x_test)# 决策树预估器 estimator DecisionTreeClassifier(criterionentropy,max_depth3) estimator.fit(s_x_train,y_train)# 模型训练超参数搜索 param_grid {max_depth: [1,2,3],min_samples_split: [2, 5, 10],min_samples_leaf: [1, 2, 4] } grid_search GridSearchCV(estimator,param_grid param_grid) grid_search.fit(s_x_train,y_train)# 模型评估 score grid_search.bestscore print(score) n grid_search.bestparams print(n)# 可视化决策树 export_graphviz(estimator,out_fileiris_tree.dot,feature_names[萼片长度,萼片宽度,花瓣长度,花瓣宽度])