python 机器学习 sklearn 常用算法模型

目录

一、线性回归模型(Linear Regression)

二、支持向量机模型(Support Vector Machine)

三、决策树模型(Decision Tree)

四、随机森林模型(Random Forest)

五、K近邻模型(K-Nearest Neighbors)

六、朴素贝叶斯模型(Naive Bayes)

七、K均值聚类模型(K-Means Clustering)

八、PCA降维模型(Principal Component Analysis)

九、神经网络模型(Neural Network)

十、AdaBoost模型(Adaptive Boosting)

十一、Bagging模型(Bootstrap Aggregating)


scikit-learn (sklearn) 是一个常用的Python机器学习库,提供了许多常用的模型和工具,帮助用户完成数据预处理、特征提取、模型训练、模型评估等机器学习任务。

下面列出了sklearn中常用的模型。

一、线性回归模型(Linear Regression)
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import joblib
 
# 从CSV文件中读取数据
data = pd.read_csv('data.csv')
 
# 假设特征矩阵 X 的列是 'feature1' 和 'feature2',目标向量 y 的列是 'target'
X = data[['feature1', 'feature2']]
y = data['target']
 
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# 创建线性回归模型
model = LinearRegression()
 
# 在训练集上训练模型
model.fit(X_train, y_train)
 
# 保存模型
joblib.dump(model, 'linear_regression_model.pkl')
 
# 加载模型
loaded_model = joblib.load('linear_regression_model.pkl')
 
# 保存模型和加载模型的另一种方法
# 保存模型
# with open('model/model.pkl', 'wb') as f:
#     pickle.dump(model, f)
 
# 加载模型
# with open('model/model.pkl', 'rb') as f:
#     model = pickle.load(f)
 
# 在训练集和测试集上进行预测
train_predictions = loaded_model.predict(X_train)
test_predictions = loaded_model.predict(X_test)
 
# 评估模型
train_mse = mean_squared_error(y_train, train_predictions)
test_mse = mean_squared_error(y_test, test_predictions)
r2 = r2_score(y_test, test_predictions)
 
# 打印评估结果
print("训练集均方误差:", train_mse)
print("测试集均方误差:", test_mse)
print("R2 分数:", r2)
二、支持向量机模型(Support Vector Machine)
from sklearn import svm
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
 
# 1. 数据准备
# 假设你有一个特征矩阵 X 和对应的目标变量 y
# X 的形状为 (样本数, 特征数),y 的形状为 (样本数,)
# 你需要将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# 2. 模型训练
# 创建一个 SVM 分类器对象
clf = svm.SVC(kernel='linear')  # 这里使用线性核函数,你也可以选择其他核函数
# 使用训练集进行模型训练
clf.fit(X_train, y_train)
 
# 3. 模型评估
# 使用测试集进行预测
y_pred = clf.predict(X_test)
 
# 计算分类准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
 
# 计算精确度、召回率和 F1 值
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
print("Precision:", precision)
print("Recall:", recall)
print("F1 Score:", f1)
三、决策树模型(Decision Tree)
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
 
# 加载数据集
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.2, random_state=42)
 
# 创建决策树分类器
clf = DecisionTreeClassifier()
 
# 训练决策树模型
clf.fit(X_train, y_train)
 
# 在训练集上进行预测
train_predictions = clf.predict(X_train)
 
# 在测试集上进行预测
test_predictions = clf.predict(X_test)
 
# 计算训练集和测试集的准确率
train_accuracy = accuracy_score(y_train, train_predictions)
test_accuracy = accuracy_score(y_test, test_predictions)
 
print("训练集准确率:", train_accuracy)
print("测试集准确率:", test_accuracy)
四、随机森林模型(Random Forest)
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
 
# 加载数据集
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.2, random_state=42)
 
# 创建随机森林分类器
clf = RandomForestClassifier(n_estimators=100, random_state=42)
 
# 训练随机森林模型
clf.fit(X_train, y_train)
 
# 在训练集上进行预测
train_predictions = clf.predict(X_train)
 
# 在测试集上进行预测
test_predictions = clf.predict(X_test)
 
# 计算训练集和测试集的准确率
train_accuracy = accuracy_score(y_train, train_predictions)
test_accuracy = accuracy_score(y_test, test_predictions)
 
print("训练集准确率:", train_accuracy)
print("测试集准确率:", test_accuracy)
五、K近邻模型(K-Nearest Neighbors)
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
 
# 加载数据集
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.2, random_state=42)
 
# 创建K近邻分类器
clf = KNeighborsClassifier(n_neighbors=3)
 
# 训练K近邻模型
clf.fit(X_train, y_train)
 
# 在训练集上进行预测
train_predictions = clf.predict(X_train)
 
# 在测试集上进行预测
test_predictions = clf.predict(X_test)
 
# 计算训练集和测试集的准确率
train_accuracy = accuracy_score(y_train, train_predictions)
test_accuracy = accuracy_score(y_test, test_predictions)
 
print("训练集准确率:", train_accuracy)
print("测试集准确率:", test_accuracy)
六、朴素贝叶斯模型(Naive Bayes)
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
 
# 加载数据集
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.2, random_state=42)
 
# 创建朴素贝叶斯分类器
clf = GaussianNB()
 
# 训练朴素贝叶斯模型
clf.fit(X_train, y_train)
 
# 在训练集上进行预测
train_predictions = clf.predict(X_train)
 
# 在测试集上进行预测
test_predictions = clf.predict(X_test)
 
# 计算训练集和测试集的准确率
train_accuracy = accuracy_score(y_train, train_predictions)
test_accuracy = accuracy_score(y_test, test_predictions)
 
print("训练集准确率:", train_accuracy)
print("测试集准确率:", test_accuracy)
七、K均值聚类模型(K-Means Clustering)
K均值聚类模型(K-Means Clustering)是一种无监督学习算法,用于将数据集划分为K个不同的簇。该算法通过迭代地将数据点分配到最近的簇中,并更新簇的中心,直到达到收敛。

下面是一个使用Python中的scikit-learn库来执行K均值聚类的简单示例代码

# 导入必要的库
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
 
# 生成模拟数据
X, y = make_blobs(n_samples=100, centers=3, random_state=42)
 
# 创建K均值聚类模型
kmeans = KMeans(n_clusters=3, random_state=42)
 
# 拟合模型
kmeans.fit(X)
 
# 预测簇标签
labels = kmeans.predict(X)
 
# 获取簇中心
centers = kmeans.cluster_centers_
 
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.scatter(centers[:, 0], centers[:, 1], marker='x', color='red')
plt.show()
八、PCA降维模型(Principal Component Analysis)
PCA(Principal Component Analysis)是一种常用的降维技术,用于将高维数据映射到低维空间。它通过找到数据中的主成分(Principal Components),将数据在这些主成分上进行投影,从而实现降维的目的。

下面是一个使用Python中的scikit-learn库来执行PCA降维的简单示例代码:

# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
 
# 加载数据集
data = load_iris()
X = data.data
y = data.target
 
# 创建PCA对象,指定降维后的维度
pca = PCA(n_components=2)
 
# 执行PCA降维
X_pca = pca.fit_transform(X)
 
# 可视化降维后的数据
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y)
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()
九、神经网络模型(Neural Network)

神经网络模型(Neural Network)是一种机器学习模型,受到人类神经系统的启发而设计。它由多个神经元(或称为节点)组成的层级结构构成,每个神经元都与前一层的神经元相连,并通过学习来调整连接权重,以实现对输入数据的复杂模式识别和预测。

以下是一个使用Python中的TensorFlow库来构建和训练一个简单神经网络模型的示例代码:

# 导入必要的库
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam
 
# 构建神经网络模型
model = Sequential()
model.add(Dense(64, activation='relu', input_shape=(input_dim,)))
model.add(Dense(64, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
 
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer=Adam(), metrics=['accuracy'])
 
# 训练模型
model.fit(X_train, y_train, batch_size=32, epochs=10, validation_data=(X_val, y_val))
 
# 在测试集上评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Test Loss: {loss}')
print(f'Test Accuracy: {accuracy}')
十、AdaBoost模型(Adaptive Boosting)

AdaBoost(Adaptive Boosting)是一种集成学习方法,用于提高分类算法的准确性。它通过训练一系列弱分类器(比如决策树)并将它们组合成一个强分类器,从而实现更好的分类性能。

下面是一个使用Python中的scikit-learn库来构建和训练AdaBoost模型的简单示例代码:

# 导入必要的库
from sklearn.ensemble import AdaBoostClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
 
# 创建一个示例数据集
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
 
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# 创建AdaBoost分类器
adaboost = AdaBoostClassifier(n_estimators=100, random_state=42)
 
# 训练AdaBoost模型
adaboost.fit(X_train, y_train)
 
# 在测试集上进行预测
y_pred = adaboost.predict(X_test)
 
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Test Accuracy: {accuracy}')
十一、Bagging模型(Bootstrap Aggregating)

Bagging(Bootstrap Aggregating)是一种集成学习方法,用于提高分类和回归算法的准确性。它通过对原始数据集进行有放回的随机抽样(bootstrap采样),然后使用这些抽样数据集训练多个独立的基分类器(比如决策树),最后通过投票或平均的方式将它们组合成一个强分类器或回归器。

下面是一个使用Python中的scikit-learn库来构建和训练Bagging模型的简单示例代码:

# 导入必要的库
from sklearn.ensemble import BaggingClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
 
# 创建一个示例数据集
X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
 
# 将数据集拆分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# 创建Bagging分类器
bagging = BaggingClassifier(n_estimators=100, random_state=42)
 
# 训练Bagging模型
bagging.fit(X_train, y_train)
 
# 在测试集上进行预测
y_pred = bagging.predict(X_test)
 
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f'Test Accuracy: {accuracy}')


这些模型都有其独特的优点和适用范围,用户可以根据自己的具体问题和数据特征,选择合适的模型进行训练和预测。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sklearn库是Python常用机器学习库之一,其中包含了许多常用机器学习算法。以下是一些常见的算法及其调用方法: 1. 线性回归(Linear Regression): ```python from sklearn.linear_model import LinearRegression # 构建模型 model = LinearRegression() # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) ``` 2. 逻辑回归(Logistic Regression): ```python from sklearn.linear_model import LogisticRegression # 构建模型 model = LogisticRegression() # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) ``` 3. 决策树(Decision Tree): ```python from sklearn.tree import DecisionTreeClassifier # 构建模型 model = DecisionTreeClassifier() # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) ``` 4. 随机森林(Random Forest): ```python from sklearn.ensemble import RandomForestClassifier # 构建模型 model = RandomForestClassifier() # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) ``` 5. 支持向量机(Support Vector Machine): ```python from sklearn.svm import SVC # 构建模型 model = SVC() # 训练模型 model.fit(X_train, y_train) # 预测 y_pred = model.predict(X_test) ``` 6. K均值聚类(K-Means Clustering): ```python from sklearn.cluster import KMeans # 构建模型 model = KMeans(n_clusters=3) # 训练模型 model.fit(X_train) # 预测 y_pred = model.predict(X_test) ``` 以上是一些常见的算法调用方法,当然sklearn还有很多其他的算法可供选择。在使用时需要根据具体问题选择合适的算法,并对其进行合适的参数调整和模型评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值