1. 线性回归(Linear Regression)
核心原理:通过线性模型建立自变量和因变量之间的映射关系,是最基础的监督学习算法。
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
2. 逻辑回归(Logistic Regression)
虽然名字带回归,实则用于二分类问题。它根据输入特征预测概率值,输出介于 0 到 1 之间。
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
3. 决策树(Decision Trees)
通过树状结构进行分类或回归,模拟人类决策过程,易于理解和解释。
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
4. 支持向量机(Support Vector Machine)
寻找最佳超平面来分离不同类别的数据点,在样本量较少时表现优异。
from sklearn.svm import SVC
model = SVC()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
5. 随机森林(Random Forest)
结合多个决策树来进行分类或回归,通过集成学习降低过拟合风险,鲁棒性较强。
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
6. K 近邻(K-Nearest Neighbors)
基于最近邻样本的标签进行预测,简单直观,但计算成本随数据量增加而上升。
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
7. 朴素贝叶斯(Naive Bayes)
基于贝叶斯定理和特征之间条件独立性假设进行分类,特别适合文本分类任务。
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
8. 主成分分析(Principal Component Analysis, PCA)
降维技术,寻找数据中的主要方差分布,常用于减少特征维度并保留关键信息。
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
9. 支持向量回归(Support Vector Regression)
用于连续输出的支持向量机回归,适用于回归问题且对异常值不敏感的场景。
from sklearn.svm import SVR
model = SVR()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
10. 神经网络(Neural Networks)
模拟人脑神经元之间的连接和传输过程,适合处理图像、语音等复杂非线性问题。
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mean_squared_error')
model.fit(X_train, y_train, epochs=10)
predictions = model.predict(X_test)
以上梳理了十种常见的机器学习算法,每种都有其独特的应用场景和优势。在实际工程中,选择哪种算法往往取决于数据特性、业务需求以及对模型可解释性的要求。建议先尝试基础模型作为基准,再逐步迭代优化。

