文件分类算法-----KNN、决策树、支持向量机、K-mean(非文件分类算法)

本文介绍了机器学习中两种主要的分类方法:积极学习和消极学习,并详细解释了包括贝叶斯、决策树、支持向量机等在内的积极学习算法,以及KNN邻近算法这一消极学习方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分类:

1.积极学习:在给定的训练元组之后、接受到测试元组之前就构造好分类模型。

           算法:贝叶斯、基于规则的分类(决策树)、向后传播分类、SVM(支持向量机)、基于关联规则挖掘的分类

2.消极学习:推迟建模,当给定训练元组时,简单的存储训练数据或简单处理,一直等到给定一个测试元组,再建立分类模型。

           算法:邻近算法

KNN(K-Nearest Neighbors Alorithms):邻近算法,计算一个点A与其他所有点之间的距离,取出与该点最近的K个点,然后统计这K个点里面所属分类比例最大的,则点A属于该分类

参考文献:http://wenku.baidu.com/link?url=T0NyamxxQ2IYtqwRc3-anrF89FlygVLrp9PaZR6-Y5jvCGh9nKEYbRLx0KaC0zMPfMtYOSl7cUFKl77jKbsmyfpuxHJ5liosS6Q0jpzuKZm

决策树:一种监管学习,所谓监管学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。

参考文献:http://baike.baidu.com/link?url=exqjgGB1fwMgMQlgo8hjTwYCAK0Liw-FsSCcjU2bRnylTuD_BwBE_bA_545niLMgE3EaYOBmetmF9ZUbxgEYz_

支持向量机(SVM):解决小样本、非线性及高维模式识别。基于统计学,以训练误差作为优化问题的约束条件,以置信范围值最小化作为优化目标,即SVM是基于结构风险最小化准则的学习方法。SVM的解是全局唯一的最优解。其实就是使用超平面将不同类别分开,如果是线性的就直接只用超平面,如果是非线性的就转化为多维来处理,也就是多个线性,最后实现最优分类面(由多维超平面组成)

参考文献:http://wenku.baidu.com/view/aef47518964bcf84b9d57bbf.html?re=view

                    http://www.chinakdd.com/article-W82k0g2822JE712.html

Kmean:很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。


参考文献:http://baike.baidu.com/link?url=9ntDoVsY4xQz-c_7crAQj_vSPCFQF62p1cdsGS_AQ1tTOAlO5qJ6NZqj6bj1388cgETkALcgI_rHK_mfShs5XK

### Scikit-learn 中的算法列表及其使用方法 #### 分类算法 Scikit-learn 提供了多种分类算法,这些算法适用于解决不同类型的分类问题。以下是常见的分类算法及其基本用法: 1. **支持向量机 (Support Vector Machine)** SVM 是一种强大的分类器,能够处理高维数据并提供良好的泛化能力[^3]。 ```python from sklearn import svm clf = svm.SVC(kernel='linear', C=1.0) clf.fit(X_train, y_train) predictions = clf.predict(X_test) ``` 2. **随机森林 (Random Forest)** 随机森林是一种基于决策树集成的方法,具有较高的鲁棒性和准确性[^3]。 ```python from sklearn.ensemble import RandomForestClassifier rf_clf = RandomForestClassifier(n_estimators=100, random_state=42) rf_clf.fit(X_train, y_train) predictions = rf_clf.predict(X_test) ``` 3. **逻辑回归 (Logistic Regression)** 逻辑回归适合于二分类问题,并能给出概率估计[^1]。 ```python from sklearn.linear_model import LogisticRegression lr_clf = LogisticRegression() lr_clf.fit(X_train, y_train) probabilities = lr_clf.predict_proba(X_test) ``` 4. **朴素贝叶斯 (Naive Bayes)** Naive Bayes 基于贝叶斯定理,特别适合文本分类等问题。 ```python from sklearn.naive_bayes import GaussianNB nb_clf = GaussianNB() nb_clf.fit(X_train, y_train) predictions = nb_clf.predict(X_test) ``` 5. **K 近邻 (K Nearest Neighbor)** KNN 是一种简单直观的分类算法,通过计算样本之间的距离来进行预测[^3]。 ```python from sklearn.neighbors import KNeighborsClassifier knn_clf = KNeighborsClassifier(n_neighbors=5) knn_clf.fit(X_train, y_train) predictions = knn_clf.predict(X_test) ``` 6. **梯度提升树 (Gradient Boosting Decision Tree)** GBDT 是一种高效的集成学习方法,常用于复杂的数据集[^3]。 ```python from sklearn.ensemble import GradientBoostingClassifier gbt_clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=42) gbt_clf.fit(X_train, y_train) predictions = gbt_clf.predict(X_test) ``` 7. **AdaBoost** AdaBoost 是另一种经典的集成学习方法,尤其擅长处理弱分类器[^2]。 ```python from sklearn.ensemble import AdaBoostClassifier ada_clf = AdaBoostClassifier(n_estimators=50, learning_rate=1.0, random_state=42) ada_clf.fit(X_train, y_train) predictions = ada_clf.predict(X_test) ``` --- #### 回归算法 除了分类任务外,Scikit-learn 同样提供了丰富的回归算法来拟合连续型目标变量。 1. **线性回归 (Linear Regression)** 线性回归是最基础的回归模型之一,假设输入特征与输出之间存在线性关系[^3]。 ```python from sklearn.linear_model import LinearRegression reg = LinearRegression() reg.fit(X_train, y_train) predictions = reg.predict(X_test) ``` 2. **岭回归 (Ridge Regression)** Ridge 回归通过对权重施加 L2 正则化项来防止过拟合[^3]。 ```python from sklearn.linear_model import Ridge ridge_reg = Ridge(alpha=1.0) ridge_reg.fit(X_train, y_train) predictions = ridge_reg.predict(X_test) ``` 3. **Lasso 回归** Lasso 回归引入 L1 正则化,有助于稀疏解的选择。 ```python from sklearn.linear_model import Lasso lasso_reg = Lasso(alpha=0.1) lasso_reg.fit(X_train, y_train) predictions = lasso_reg.predict(X_test) ``` 4. **弹性网络 (Elastic Net)** ElasticNet 结合了 L1 和 L2 正则化的优点,在某些场景下表现更优。 ```python from sklearn.linear_model import ElasticNet enet_reg = ElasticNet(alpha=0.1, l1_ratio=0.5) enet_reg.fit(X_train, y_train) predictions = enet_reg.predict(X_test) ``` --- #### 聚类算法 聚类算法主要用于无监督学习任务,帮助发现数据中的潜在结构。 1. **K 均值 (K-Means)** KMeans 将数据划分为指定数量的簇,使得同一簇内的点尽可能接近。 ```python from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) labels = kmeans.fit_predict(X) ``` 2. **DBSCAN** DBSCAN 可以识别任意形状的簇,并自动检测噪声点。 ```python from sklearn.cluster import DBSCAN dbscan = DBSCAN(eps=0.5, min_samples=5) labels = dbscan.fit_predict(X) ``` --- #### 降维算法 当面对高维数据时,可以通过降维技术减少维度,从而提高效率和可解释性。 1. **主成分分析 (Principal Component Analysis, PCA)** PCA 是最常用的线性降维方法之一,保留最大方差的方向[^3]。 ```python from sklearn.decomposition import PCA pca = PCA(n_components=2) X_reduced = pca.fit_transform(X) ``` 2. **t-SNE** t-SNE 更适合可视化高维数据,尤其是线性分布的情况[^3]。 ```python from sklearn.manifold import TSNE tsne = TSNE(n_components=2, perplexity=30, random_state=42) X_embedded = tsne.fit_transform(X) ``` --- #### 模型选择与评估工具 为了优化模型性能,Scikit-learn 提供了一系列实用的功能。 1. **交叉验证 (Cross Validation)** 使用 `cross_val_score` 对模型进行多次验证,获得更加稳定的评价结果。 ```python from sklearn.model_selection import cross_val_score scores = cross_val_score(clf, X, y, cv=5) mean_accuracy = scores.mean() ``` 2. **网格搜索 (Grid Search)** GridSearchCV 自动寻找最佳超参数组合[^3]。 ```python from sklearn.model_selection import GridSearchCV param_grid = {'C': [0.1, 1, 10], 'kernel': ['linear', 'rbf']} grid_search = GridSearchCV(svm.SVC(), param_grid, cv=5) grid_search.fit(X_train, y_train) best_params = grid_search.best_params_ ``` 3. **模型评估指标** 计算各种评估指标(如准确率、召回率、F1 分数等),全面衡量模型效果。 ```python from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score acc = accuracy_score(y_test, predictions) prec = precision_score(y_test, predictions) rec = recall_score(y_test, predictions) f1 = f1_score(y_test, predictions) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值