python代码实现读取数据集,然后划分数据集,多用几个机器学习模型(K近邻算法,随机森林,线性回归等)训练数据,对比性能选择最好的模型预测数据
时间: 2024-12-14 11:19:22 浏览: 11
在Python中,我们可以使用一些常用的库如pandas来处理数据集,sklearn来进行数据划分、特征工程和模型训练。这里是一个简单的示例,展示了如何读取数据集,分割数据,以及用K近邻(KNN)、随机森林(Random Forest)和线性回归(Linear Regression)训练模型并评估性能:
```python
# 导入所需库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, accuracy_score
# 1. 读取数据集(假设数据集名为'dataset.csv')
data = pd.read_csv('dataset.csv')
# 2. 数据预处理(例如:处理缺失值、编码分类变量等)
# ...
# 3. 划分数据集(通常采用70%训练,30%测试的比例)
X = data.drop('target_column', axis=1) # 假设目标列是'target_column'
y = data['target_column']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 4. 训练模型
models = {
'KNN': KNeighborsClassifier(),
'Random Forest': RandomForestClassifier(),
'Linear Regression': LinearRegression()
}
for model_name, model in models.items():
# 训练
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
# 评估性能
if model_name == 'Linear Regression':
mse = mean_squared_error(y_test, y_pred)
print(f"{model_name} - Mean Squared Error: {mse:.2f}")
else:
acc = accuracy_score(y_test, y_pred)
print(f"{model_name} - Accuracy: {acc * 100:.2f}%")
# 根据评估结果,选择性能最好的模型(比如误差最小或准确率最高)
阅读全文