算法代码

数据预处理-算法加工-预测-校验

knn 

就是算距离,距离近的就是

     #构建kNN分类器
    neigh = kNN(n_neighbors = 3, algorithm = 'auto')
    #拟合模型, trainingMat为训练矩阵,hwLabels为对应的标签
    neigh.fit(trainingMat, hwLabels)
    #获得预测结果,vectorUnderTest 向量
        classifierResult = neigh.predict(vectorUnderTest)    

决策树

算信息熵增益最大的,信息熵代表混乱程度

lenses_pd = pd.DataFrame(lenses_dict)  # 生成pandas.DataFrame
# print(lenses_pd) #打印pandas.DataFrame
le = LabelEncoder() # 创建LabelEncoder()对象,用于序列化
for col in lenses_pd.columns: # 序列化
lenses_pd[col] = le.fit_transform(lenses_pd[col])

clf = tree.DecisionTreeClassifier(max_depth=4) # 创建DecisionTreeClassifier()类
clf = clf.fit(lenses_pd.values.tolist(), lenses_target) # 使用数据,构建决策树

dot_data = StringIO()
tree.export_graphviz(clf, out_file=dot_data, # 绘制决策树
feature_names=lenses_pd.keys(),
class_names=clf.classes_,
filled=True, rounded=True,
special_characters=True)
# graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
# graph.write_pdf("tree.pdf") # 保存绘制好的决策树,以PDF的形式存储。

print(clf.predict([[1, 1, 1, 0]])) # 预测

 naive 贝叶斯

算概率

P(侮辱类|stupid,garbage)=P(stupid|侮辱类)xP(garbage|侮辱类)xP(侮辱类)/P(stupid,garbage)

P(非侮辱类|stupid,garbage)=P(stupid|非侮辱类)xP(garbage|非侮辱类)xP(非侮辱类)/P(stupid,garbage)

每一个句子都可以用向量表示:表示为大小为词典大小,如果出现,在相应的位置上标志为1

先算出侮辱类p01,非侮辱类p00 ,

p01=侮辱类向量(相加)/侮辱类词数

p01=非侮辱类向量(相加)/非侮辱类词数

然后算  测试的向量*p01xP(侮辱类),  测试的向量*p00xP(非侮辱类) ,比较两个值的大小,如果哪个大就是哪个类的

def trainNB0(trainMatrix,trainCategory):
    numTrainDocs = len(trainMatrix)                            #计算训练的文档数目
    numWords = len(trainMatrix[0])                            #计算每篇文档的词条数
    pAbusive = sum(trainCategory)/float(numTrainDocs)        #文档属于侮辱类的概率
    p0Num = np.ones(numWords); p1Num = np.ones(numWords)    #创建numpy.zeros数组, 这个初始化为1 是为了不=0,等下相乘的时候肯定会=0,所以不能为0
    p0Denom = 2.0; p1Denom = 2.0                            #分母初始化为0.0 
    for i in range(numTrainDocs):
        if trainCategory[i] == 1:                            #统计属于侮辱类的条件概率所需的数据,即P(w0|1),P(w1|1),P(w2|1)···
            p1Num += trainMatrix[i]
            p1Denom += sum(trainMatrix[i])                  ## 该词条的总的词数目   这压样求得每个词条出现的概率 P(w1),P(w2), P(w3)...
        else:                                                #统计属于非侮辱类的条件概率所需的数据,即P(w0|0),P(w1|0),P(w2|0)···
            p0Num += trainMatrix[i]
            p0Denom += sum(trainMatrix[i])
    p1Vect = np.log(p1Num / p1Denom)  # 取对数,防止下溢出
    p0Vect = np.log(p0Num / p0Denom)
    return p0Vect,p1Vect,pAbusive    

 

转载于:https://www.cnblogs.com/dzhou/p/10551172.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常用算法程序集(C语言描述)(第三版) 清晰PDF版,配完整源代码。 第1章 多项式的计算 1.1 一维多项式值 1.2 一维多项式多组值 1.3 二维多项式值 1.4 复系数多项式值 1.5 多项式相乘 1.6 复系数多项式相乘 1.7 多项式相除 1.8 复系数多项式相除 第2章 复数运算 2.1 复数乘法 2.2 负数除法 2.3 复数乘幂 2.4 复数的n次方根 2.5 复数指数 2.6 复数对数 2.7 复数正弦 2.8 复数余弦 第3章 随机数的产生 3.1 产生0到1之间均匀分布的一个随机数 3.2 产生0到1之间均匀分布的随机数序列 3.3 产生任意区间内均匀分布的一个随机整数 3.4 产生任意区间内均匀分布的随机整数序列 3.5 产生任意均值与方差的正态分布的一个随机数 3.6 产生任意均值与方差的正态分布的随机数序列 第4章 矩阵运算 4.1 实矩阵相乘 4.2 复矩阵相乘 4.3 一般实矩阵逆 4.4 一般复矩阵逆 4.5 对称正定矩阵的逆 4.6 托伯利兹矩阵逆的特兰持方法 4.7 一般行列式的值 4.8 矩阵的值 4.9 对称正定矩阵的乔里斯基分解与列式值 4.10 矩阵的三角分解 4.11 一般实矩阵的QR分解 4.12 一般实矩阵的奇异值分解 4.13 广义逆的奇异值分解法 第5章 矩阵特征值与特征向量的计算 5.1 约化对称矩阵为对称三对角阵的豪斯荷尔德变换法 5.2 对称三对角阵的全部特征值与特征向量 5.3 约化一般实矩阵为赫申伯格矩阵的初等相似变换法 5.4 赫身伯格矩阵全部特征的QR方法 5.5 实对称矩阵特征值与特征向量的雅可比法 5.6 实对称矩阵特征值与特征向量的雅可比过关法 第6章 线性代数方程组的解 6.1 解实系数方程组的全选主元高斯消去法 6.2 解实系数方程组的全选主元高斯-约当消去法 6.3 解复系数方程组的全选主元高斯消去法 6.4 解复系数方程组的全选主元高斯-约当消去法 6.5 解三对角线方程组的追赶法 6.6 解一般带型方程组 6.7 解对称方程组的分解法 6.8 解对称正定方程组的平方根法 6.9 解大型系数方程组 6.10 解托伯利兹方程组的列文逊方法 6.11 高斯-塞德尔失代法 6.12 解对称正定方程组的共岿梯度法 6.13 解线性最小二乘文体的豪斯伯尔德变换法 6.14 解线性最小二乘问题的广义逆法 6.15 解病态方程组 第7章 非线性方程与方程组的解 7.1 非线性方程一个实根的对分法 7.2 非线性方程一个实根的牛顿法 7.3 非线性方程一个实根的埃特金矢代法 7.4 非线性方程一个实根的连分法 7.5 实系数代数方程全部的QR方法 7.6 实系数方程全部的牛顿下山法 7.7 复系数方程的全部根牛顿下山法 7.8 非线性方程组一组实根的梯度法 7.9 非线性方程组一组实根的拟牛顿法 7.10 非线性方程组最小二乘解的广义逆法 7.11 非线性方程一个实根的蒙特卡洛法 7.12 实函数或复函数方程一个复根的蒙特卡洛法 7.13 非线性方程组一组实根的蒙特卡洛法 第8章 插值与逼近 8.1 一元全区间插值 8.2 一元三点插值 8.3 连分式插值 8.4 埃尔米特插值 8.5 特金逐步插值 8.6 光滑插值 8.7 第一种边界条件的三次样条函数插值 8.8 第二种边界条件的三次样条函数插值 8.9 第三种边界条件的三次样条函数插值 8.10 二元三点插值 8.11 二元全区间插值 8.12 最小二乘曲线拟合 8.13 切比雪夫曲线拟合 8.14 最佳一致逼近的里米兹方法 8.15 矩形域的最小二乘曲线拟合 第9章 数值积分 9.1 变补长梯形积法 9.2 变步长辛卜生积法 9.3 自适应梯形积法 9.4 龙贝格积法 9.5 计算一维积分的连分式法 9.6 高振荡函数积法 9.7 勒让德-高斯积法 9.8 拉盖尔-高斯积法 9.9 埃尔米特-高斯积法 9.10 切比雪夫积法 9.11 计算一维积分的蒙特卡洛法 9.12 变步长辛卜生二重积分方法 9.13 计算多重积分的高斯方法 9.14 计算二重积分的连分方式 9.15 计算多重积分的蒙特卡洛法 第10章 常微分方程组的解 10.1 全区间积分的定步长欧拉方法 10.2 积分一步的变步长欧拉方法 10.3 全区间积分维梯方法 10.4 全区间积分的定步长龙格-库塔方法 10.5 积分一步的变步长龙格-库塔方法 10.6 积分一步的变步长基尔方法 10.7 全区间积分的变步长默森方法 10.8 积分一步的连分方式 10.9 全区间积分的双边法 10.10 全区间积分的阿当姆斯预报校正法 10.11 全区间积分的哈明方法 10.12 积分一步的特雷纳方法 10.13 积分刚性方程组的吉尔方法 10.14 二阶微分方程边值问题的数值解法 第11章 数据处理 11.1 随机样本分析 11.2 一元线性回归分析 11.3 多元线性回归分析 11.4 逐步回归分析 11.5 半对数数据相关 11.6 对数数据相关 第12章 极值问题的解 12.1 一维极值连分式法 12.1 n维维极值连分式法 12.3 不等式约束线性规划问 12.4 n维极值的单行条优法 12.5 约束条件下n维极值的复形调优法 第13章 数学变换与滤波 13.1 傅立叶级数逼近 13.2 快速傅立叶变换 13.3 快速袄什变换 13.4 五点三次平滑 13.5 离散随机线性系统的卡尔曼滤波 13.6 α-β-γ滤波 第14章 特殊函数的计算 14.1 伽马函数 14.2 不完全伽马函数 14.3 误差函数 14.4 第一类整数阶贝塞尔函数 14.5 第二类整数阶贝塞尔函数 14.6 变形第一类整数阶贝塞尔函数 14.7 变形第二类整数阶贝塞尔函数 14.8 不完全贝塞尔函数 14.9 正态分布函数 14.10 t-分布函数 14.11 χ-分布函数 14.12 F-分布函数 14.13 正弦积分 14.14 余弦积分 14.15 指数积分 14.16 第一类椭圆积分 14.17 第二类椭圆积分 第15章 排序 15.1 冒泡排序 15.2 快速排序 15.3 希尔排序 15.4 堆排序 15.5 结构排序 15.6 磁盘文件排序 15.7 捉扑分类 第16章 查找 16.1 结构体数组的顺序查找 16.2 磁盘随机文本文件对分查找 16.3 有序数组的对分查找 16.4 按关键字成员有序的结构体数组的对分查找 16.5 按关键字有序的磁盘随机文本文件的对分查找 16.6 磁盘随机文本文件的字符串匹配
目录 目录 1 Graph 图论 3 | DAG 的深度优先搜索标记 3 | 无向图找桥 3 | 无向图连通度(割) 3 | 最大团问题 DP + DFS 3 | 欧拉路径 O(E) 3 | DIJKSTRA 数组实现 O(N^2) 3 | DIJKSTRA O(E * LOG E) 4 | BELLMANFORD 单源最短路 O(VE) 4 | SPFA(SHORTEST PATH FASTER ALGORITHM) 4 | 第 K 短路(DIJKSTRA) 5 | 第 K 短路(A*) 5 | PRIM MST 6 | 次小生成树 O(V^2) 6 | 最小生成森林问题(K 颗树)O(MLOGM). 6 | 有向图最小树形图 6 | MINIMAL STEINER TREE 6 | TARJAN 强连通分量 7 | 弦图判断 7 | 弦图的 PERFECT ELIMINATION 点排列 7 | 稳定婚姻问题 O(N^2) 7 | 拓扑排序 8 | 无向图连通分支(DFS/BFS 邻接阵) 8 | 有向图强连通分支(DFS/BFS 邻接阵)O(N^2) 8 | 有向图最小点基(邻接阵)O(N^2) 9 | FLOYD 最小环 9 | 2-SAT 问题 9 Network 网络流 11 | 二分图匹配(匈牙利算法 DFS 实现) 11 | 二分图匹配(匈牙利算法 BFS 实现) 11 | 二分图匹配(HOPCROFT-CARP 的算法) 11 | 二分图最佳匹配(KUHN MUNKRAS 算法 O(M*M*N)) 11 | 无向图最小割 O(N^3) 12 | 有上下界的最小(最大)流 12 | DINIC 最大流 O(V^2 * E) 12 | HLPP 最大流 O(V^3) 13 | 最小费用流 O(V * E * F) 13 | 最小费用流 O(V^2 * F) 14 | 最佳边割集 15 | 最佳点割集 15 | 最小边割集 15 | 最小点割集(点连通度) 16 | 最小路径覆盖 O(N^3) 16 | 最小点集覆盖 16 Structure 数据结构 17 | 某天是星期几 17 | 左偏树 合并复杂度 O(LOG N) 17 | 树状数组 17 | 二维树状数组 17 | TRIE 树(K 叉) 17 | TRIE 树(左儿子又兄弟) 18 | 后缀数组 O(N * LOG N) 18 | 后缀数组 O(N) 18 | RMQ 离线算法 O(N*LOGN)+O(1) 19 | RMQ(RANGE MINIMUM/MAXIMUM QUERY)-ST 算法 (O(NLOGN + Q)) 19 | RMQ 离线算法 O(N*LOGN)+O(1)解 LCA 19 | LCA 离线算法 O(E)+O(1) 20 | 带权值的并查集 20 | 快速排序 20 | 2 台机器工作调度 20 | 比较高效的大数 20 | 普通的大数运算 21 | 最长公共递增子序列 O(N^2) 22 | 0-1 分数规划 22 | 最长有序子序列(递增/递减/非递增/非递减) 22 | 最长公共子序列 23 | 最少找硬币问题(贪心策略-深搜实现) 23 | 棋盘分割 23 | 汉诺塔 23 | STL 中的 PRIORITY_QUEUE 24 | 堆栈 24 | 区间最大频率 24 | 取第 K 个元素 25 | 归并排序逆序数 25 | 逆序数推排列数 25 | 二分查找 25 | 二分查找(大于等于 V 的第一个值) 25 | 所有数位相加 25 Number 数论 26 1 |递推欧拉函数 PHI(I) 26 |单独欧拉函数 PHI(X) 26 | GCD 最大公约数 26 | 快速 GCD 26 | 扩展 GCD 26 | 模线性方程 A * X = B (% N) 26 | 模线性方程组 26 | 筛素数 [1..N] 26 | 高效小范围素数 [1..N] 26 | 随机素数测试(伪素数原理) 26 | 组合数学相关 26 | POLYA 计数 27 | 组合数 C(N, R) 27 | 最大 1 矩阵 27 | 约瑟夫环问题(数学方法) 27 | 约瑟夫环问题(数组模拟) 27 | 取石子游戏 1 27 | 集合划分问题 27 | 大数平方根(字符串数组表示) 28 | 大数取模的二进制方法 28 | 线性方程组 A[][]X[]=B[] 28 | 追赶法解周期性方程 28 | 阶乘最后非零位,复杂度 O(NLOGN) 29 递归方法解排列组合问题 30 | 类循环排列 30 | 全排列 30 | 不重复排列 30 | 全组合 31 | 不重复组合 31 | 应用 31 模式串匹配问题总结 32 | 字符串 HASH 32 | KMP 匹配算法 O(M+N) 32 | KARP-RABIN 字符串匹配 32 | 基于 KARP-RABIN 的字符块匹配 32 | 函数名: STRSTR 32 | BM 算法的改进的算法 SUNDAY ALGORITHM 32 | 最短公共祖先(两个长字符串) 33 | 最短公共祖先(多个短字符串) 33 Geometry 计算几何 34 | GRAHAM 凸包 O(N * LOGN) 34 | 判断线段相交 34 | 多边形重心 34 | 三角形几个重要的点 34 | 平面最近点对 O(N * LOGN) 34 | LIUCTIC 的计算几何库 35 | 平面上两点之间的距离 35 | (P1-P0)*(P2-P0)的叉积 35 | 确定两条线段是否相交 35 | 判断点 P 是否在线段 L 上 35 | 判断两个点是否相等 35 | 线段相交判断函数 35 | 判断点 Q 是否在多边形内 35 | 计算多边形的面积 35 | 解二次方程 AX^2+BX+C=0 36 | 计算直线的一般式 AX+BY+C=0 36 | 点到直线距离 36 | 直线与圆的交点,已知直线与圆相交 36 | 点是否在射线的正向 36 | 射线与圆的第一个交点 36 | 点 P1 关于直线 LN 的对称点 P2 36 | 两直线夹角(弧度) 36 ACM/ICPC 竞赛之 STL 37 ACM/ICPC 竞赛之 STL 简介 37 ACM/ICPC 竞赛之 STL--PAIR 37 ACM/ICPC 竞赛之 STL--VECTOR 37 ACM/ICPC 竞赛之 STL--ITERATOR 简介 38 ACM/ICPC 竞赛之 STL--STRING 38 ACM/ICPC 竞赛之 STL--STACK/QUEUE 38 ACM/ICPC 竞赛之 STL--MAP 40 ACM/ICPC 竞赛之 STL--ALGORITHM 40 STL IN ACM 41 头文件 42 线段树 43 矩形并的面积(线段树+离散化+扫描线) 43 矩形并的周长(线段树+离散化+扫描线) 44
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值