Hello,我是kk~
最近,很多刚刚接触机器学习的同学,以及想要转到机器学习领域的朋友,问了一些问题,不过大多都是关于薪资方面的。
恰好刚刚看到一个帖子,刚刚毕业拿到了几个不错的offer~
如果学校和专业差不多,大概就在年包30~50w之间。
不过对于转方向的同学来说,还是要慎重,大环境的问题,导致很多时候不如坚持当前技术方向。
不过,总归是持续不断的学习 + 努力,一定会有一个好的结果。
今天给出大家十大最常用机器学习算法的基本总结!
以下每个算法提供简要的原理,公式和示例代码,大家收藏起来,查缺补漏~
1. 线性回归 (Linear Regression):
原理: 通过拟合线性关系来建立输入特征和输出标签之间的关系。
公式:
代码示例:
from sklearn.linear_model import LinearRegressionmodel = LinearRegression()model.fit(X, y)
2. 逻辑回归 (Logistic Regression):
原理: 用于二分类问题,通过sigmoid函数将输入映射到0到1之间的概率。
公式:
代码示例:
from sklearn.linear_model import LogisticRegressionmodel = LogisticRegression()model.fit(X, y)
3. 决策树 (Decision Trees):
原理: 通过树形结构进行决策,每个节点代表一个特征,每个叶子节点代表一个类别。
公式: 无特定公式,基于信息熵或基尼不纯度进行分裂。
代码示例:
from sklearn.tree import DecisionTreeClassifiermodel = DecisionTreeClassifier()model.fit(X, y)
4. 支持向量机 (Support Vector Machines, SVM):
原理: 通过找到最优超平面来最大化不同类别之间的间隔。
公式:
代码示例:
from sklearn.svm import SVCmodel = SVC()model.fit(X, y)
5. K近邻算法 (K-Nearest Neighbors, KNN):
原理: 通过测量样本之间的距离,将测试样本分类为距离最近的K个训练样本中最常见的类别。
公式: 无特定公式,基于距离度量。
代码示例:
from sklearn.neighbors import KNeighborsClassifiermodel = KNeighborsClassifier()model.fit(X, y)
6. 朴素贝叶斯 (Naive Bayes):
原理: 基于贝叶斯定理,假设特征之间相互独立。
公式: $ P(Y|X) = \fracP(XY) \cdot P(Y){P(X)} $
代码示例:
from sklearn.naive_bayes import GaussianNBmodel = GaussianNB()model.fit(X, y)
7. K均值聚类 (K-Means Clustering):
原理: 将数据分为K个簇,每个簇的中心代表簇的质心。
公式: 无特定公式,基于距离度量。
代码示例:
from sklearn.cluster import KMeansmodel = KMeans(n_clusters=3)model.fit(X)
8. 随机森林 (Random Forest):
原理: 通过多个决策树的投票来提高模型性能,降低过拟合风险。
公式: 无特定公式,基于决策树的集成。
代码示例:
from sklearn.ensemble import RandomForestClassifiermodel = RandomForestClassifier()model.fit(X, y)
9. 神经网络 (Neural Networks):
原理: 通过模拟人脑的神经网络结构,通过学习权重来进行预测。
公式: 包括前向传播和反向传播的复杂数学表达式。
代码示例:
from tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Densemodel = Sequential()model.add(Dense(units=64, activation='relu', input_dim=input_dim))
10. 梯度提升机 (Gradient Boosting Machines):
原理: 通过迭代训练弱模型,每次迭代调整使得前一轮的错误最小化。
公式: 无特定公式,基于决策树的集成。
代码示例:
from sklearn.ensemble import GradientBoostingClassifiermodel = GradientBoostingClassifier()model.fit(X, y)
实际应用中可能需要更深入的理解和调优。此外,具体的公式和代码可能因算法的变体和实现库而有所不同。
都到这里了,点赞~