机器学习笔记(持续更新)

 目录

iris = load_iris() clf = neighbors.KNeighborsClassifier(n_neighbors=3) X = iris.data y = iris.target knn = clf.fit(X, y)  predict = knn.predict([[4.1, 3.3, 1.4, 0.3]])
复制代码

关键参数:

  1. n_neighbors 设置K个的个数

决策树

优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据

缺点:可能会产生过度匹配问题

适用数据类型:数值型和标称型

实现过程

  1. 特征选择:特征选择是指从训练数据中众多的特征中选择一个特征作为当前节点的分裂标准,如何选择特征有着很多不同量化评估标准标准,从而衍生出不同的决策树算法。

  2. 决策树生成: 根据选择的特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生长。 树结构来说,递归结构是最容易理解的方式。

  3. 剪枝:决策树容易过拟合,一般来需要剪枝,缩小树结构规模、缓解过拟合。剪枝技术有预剪枝和后剪枝两种。

信息增益和熵的概念

信息增益:熵 - 条件熵

条件熵 H(Y|X=长相)= p(X =帅)*H(Y|X=帅)+ p(X =不帅)*H(Y|X=不帅)

决策树 sklearn实现

http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

复制代码
clf = tree.DecisionTreeClassifier() clf = clf.fit(iris.data, iris.target) with open("iris.dot", 'w') as f:     f = tree.export_graphviz(clf, out_file=f)
复制代码

关键参数

  1. 参考:DecisionTreeClassifier 调参

参考链接:

信息增益

条件熵

朴素贝叶斯

优点:对数据较少情况下仍然有效,可以处理多类别问题

缺点:对于输入数据的准备方式较为敏感

实际应用

在实际应用中,我们的现象不可能只有一个,比如,在垃圾邮件分类中,甚至可能有几千个词的特征向量。下面,我将引入一些数学上的记号来统一后面的表达:

ωj表示属于哪个类别,j∈{1,2,3,…,m} xi表示特征向量中的第i个特征,i∈{1,2,3,…,n}

朴素贝叶斯的目标就是分别求得P(ωj|给定现象)j∈{1,2,3,…,m},选出最大的概率。

朴素贝叶斯 sklearn实现

http://sklearn.lzjqsdd.com/modules/naive_bayes.html

复制代码
iris = datasets.load_iris() from sklearn.naive_bayes import GaussianNB nb = GaussianNB() y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信