1. 线性回归(Linear Regression)
模型原理
线性回归用于建立自变量(特征)与因变量(目标)之间的线性关系。其目标是寻找最佳拟合直线,使得预测值与实际值之间的误差最小化。
模型训练
通过最小二乘法来最小化预测值与真实值之间的误差,得到线性回归方程的参数。
优点
简单易懂,易于实现和解释。
对于线性关系的数据,效果很好。
缺点
对于非线性关系的数据效果较差。
对异常值敏感。
使用场景
适合用于数值预测,如房价、销售额等。
import numpy as np
from sklearn.linear_model import LinearRegression
# 模拟数据
X = np.array([[1], [2], [3], [4], [5]])
y = np.
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
# 加载数据
data = load_iris()
X = data.data
y = data.target
# 创建决策树模型
model = DecisionTreeClassifier()
model.fit(X, y)
# 预测
predictions = model.predict(X)
print(predictions)
array([2, 3, 5, 7, 11])
# 创建线性回归模型
model = LinearRegression()
model.fit(X, y)
# 预测
predictions = model.predict(np.array([[6]]))
print(predictions) # 预测6对应的y值
2. 逻辑回归(Logistic Regression)
模型原理
逻辑回归用于二分类问题,通过Sigmoid函数将线性组合的输入映射到0和1之间,输出为事件发生的概率。
模型训练
使用最大似然估计来优化模型参数,使得预测的概率与实际标签相匹配。
优点
计算效率高,适合大规模数据。
输出概率,易于理解。
缺点
只能处理线性可分的数据。
对于特征之间的多重共线性敏感。
使用场景
适合用于信用评分、疾病预测等二分类问题。
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# 加载数据
data = load_iris()
X = data.data
y = (data.target == 0).astype(int) # 仅考虑类0与其它类
# 创建逻辑回归模型
model = LogisticRegression()
model.fit(X, y)
# 预测
predictions = model.predict(X)
print(predictions)
3. 决策树(Decision Trees)
模型原理
决策树通过树状结构进行决策,从根节点到叶节点的路径表示分类规则。
模型训练
使用信息增益或基尼指数选择最佳特征进行节点分裂,直到满足停止条件。
优点
易于理解和解释。
能处理分类和回归任务。
缺点
易于过拟合,特别是在数据量小的情况下。
对噪声敏感。
使用场景
适合用于客户分类、信用评分等。
4. 支持向量机(Support Vector Machines, SVM)
模型原理
SVM通过寻找最佳超平面来分隔不同类别的数据点,最大化类间间隔。
模型训练
使用优化算法找到支持向量和超平面,通常通过拉格朗日乘子法实现。
优点
对高维数据表现良好。
可以使用核函数处理非线性数据。
缺点
对于大规模数据,训练时间较长。
参数选择和核函数的选择较为复杂。
使用场景
适合用于文本分类、图像分类等。
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
# 加载数据
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# 创建SVM模型
model = SVC(kernel='linear')
model.fit(X_train, y_train)
# 预测
predictions = model.predict(X_test)
print(predictions)
5. k近邻算法(k-NN)
模型原理
k-NN是基于实例的学习方法,通过找到与目标点最近的k个邻居进行分类或回归。
模型训练
没有显式的训练过程,主要通过计算距离来进行预测。
优点
简单易懂,易于实现。
对异常值不敏感。
缺点
计算开销大,尤其在大数据集上。
对特征选择敏感。
使用场景
适合用于推荐系统、图像识别等。
from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
# 加载数据
data = load_iris()
X = data.data
y = data.target
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# 创建k-NN模型
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
# 预测
predictions = model.predict(X_test)
print(predictions)
AI写代码
python
运行
来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。