机器学习代码命令大全
更多
以下是一份机器学习常用代码命令大全(Python语言,基于主流库如Scikit-learn、TensorFlow/Keras、PyTorch),涵盖数据预处理、模型训练、评估、保存等全流程:
一、数据预处理
# 数据加载
import pandas as pd
df = pd.read_csv('data.csv') # 从CSV加载
df = pd.read_excel('data.xlsx') # 从Excel加载
# 基础处理
df.drop(['无用列'], axis=1, inplace=True) # 删除列
df.dropna(inplace=True) # 删除缺失值
df.fillna(value, inplace=True) # 填充缺失值
# 特征工程
from sklearn.preprocessing import StandardScaler, LabelEncoder
scaler = StandardScaler()
df['数值特征'] = scaler.fit_transform(df[['数值特征']]) # 标准化
encoder = LabelEncoder()
df['类别特征'] = encoder.fit_transform(df['类别特征']) # 标签编码
# 拆分数据集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
df.drop('目标列', axis=1), df['目标列'],
test_size=0.2, random_state=42
)
二、经典机器学习模型(Scikit-learn)
# 线性回归
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(X_train, y_train)
# 逻辑回归(分类)
from sklearn.linear_model import LogisticRegression
clf = LogisticRegression(max_iter=1000)
clf.fit(X_train, y_train)
# 决策树
from sklearn.tree import DecisionTreeClassifier
dt = DecisionTreeClassifier(max_depth=5)
dt.fit(X_train, y_train)
# 随机森林
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, y_train)
# SVM
from sklearn.svm import SVC
svm = SVC(kernel='rbf', C=10)
svm.fit(X_train, y_train)
# 模型预测
y_pred = rf.predict(X_test)
三、模型评估指标
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.metrics import mean_squared_error, r2_score
# 分类任务
print("准确率:", accuracy_score(y_test, y_pred))
print("精确率:", precision_score(y_test, y_pred, average='macro'))
print("召回率:", recall_score(y_test, y_pred, average='macro'))
print("F1分数:", f1_score(y_test, y_pred, average='macro'))
# 回归任务
print("MSE:", mean_squared_error(y_test, y_pred))
print("R²:", r2_score(y_test, y_pred))
# 交叉验证
from sklearn.model_selection import cross_val_score
scores = cross_val_score(rf, X_train, y_train, cv=5)
print("交叉验证分数:", scores.mean())
四、深度学习(TensorFlow/Keras)
# 全连接网络
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential([
Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
Dense(32, activation='relu'),
Dense(1, activation='sigmoid') # 二分类输出层
])
model.compile(
optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy']
)
# 训练模型
history = model.fit(
X_train, y_train,
epochs=50,
batch_size=32,
validation_split=0.2
)
# 模型预测
y_prob = model.predict(X_test)
y_pred = (y_prob > 0.5).astype(int)
五、深度学习(PyTorch)
import torch
import torch.nn as nn
# 定义网络
class Net(nn.Module):
def __init__(self, input_size):
super().__init__()
self.fc1 = nn.Linear(input_size, 64)
self.fc2 = nn.Linear(64, 10)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
# 初始化模型和优化器
model = Net(X_train.shape[1])
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()
# 训练循环
for epoch in range(10):
inputs = torch.tensor(X_train.values, dtype=torch.float32)
labels = torch.tensor(y_train.values, dtype=torch.long)
optimizer.zero_grad()
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
六、模型保存与加载
# Scikit-learn
import joblib
joblib.dump(rf, 'model.joblib') # 保存
rf_loaded = joblib.load('model.joblib') # 加载
# TensorFlow
model.save('tf_model.keras') # 保存
loaded_model = tf.keras.models.load_model('tf_model.keras') # 加载
# PyTorch
torch.save(model.state_dict(), 'pytorch_model.pt') # 保存
model.load_state_dict(torch.load('pytorch_model.pt')) # 加载
七、常用工具
# 混淆矩阵可视化
from sklearn.metrics import plot_confusion_matrix
plot_confusion_matrix(rf, X_test, y_test)
# 特征重要性(随机森林)
importances = rf.feature_importances_
# PCA降维
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_train)
以上涵盖了机器学习80%的常用场景,可作为快速参考手册。根据具体任务选择工具库和模型即可! ?
mysql数据库命令大全
MySQL是一种关系型数据库管理系统,它拥有丰富的命令来管理和操作数据库。以下是一份详尽、详实、细致的MySQL数据库命令大全,希望对您有所帮助
2023-11-16 16:39:46
结合动态行为和机器学习的恶意代码检测方法
目前恶意代码出现频繁且抗识别性加强,现有基于签名的恶意代码检测方法无法识别未知与隐藏的恶意代码。提出一种结合动态行为和
资料下载
佚名
2021-03-23 16:24:19
CAD快捷键命令大全:PL、DI和LI命令的使用技巧
经常使用浩辰CAD制图软件进行CAD图纸绘制的朋友都知道,我们在绘制直线的时候可以使用快捷命令:PL,同时在进行测量的时候可以使用快捷命令DI。接下来详细给大家介绍一下CAD快捷键
2019-10-30 16:12:40
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机