如何在机器学习python中提高这个回归问题的准确度?

2024-05-03 09:58:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我是机器学习的初学者,作为学习的一部分,我从UCI选择学生表现数据集。我想根据给出的特征预测学生的最终结果

我首先尝试使用两个主要且高度相关的特征G1和G2,它们是两次考试的分数。我使用了线性回归算法,得到了0.4或更低的精度

然后我在dataframe中的所有对象特性上尝试了特性工程,但精度仍然相同

如何提高分数的准确性

My code as a Python notebook

from matplotlib import pyplot as plt
import seaborn as sns
import numpy as np
from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression
from sklearn.linear_model import ElasticNet
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.svm import SVR

from sklearn.metrics import mean_squared_error, mean_absolute_error, median_absolute_error,accuracy_score

df = pd.read_csv('student-mat.csv',sep=';')
df2 = pd.read_csv('student-por.csv',sep=';')

df = [df,df2]
df = pd.concat(df)
df = pd.get_dummies(df)

X = df.drop('G3',axis=1)
y = df['G3']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state=42)

model = LinearRegression()
model.fit(X_train,y_train)

y_pred = model.predict(X_test)
y_pred = [int(round(i)) for i in y_pred]

accuracy_score(y_test,y_pred)

Tags: csvfromtestimportdfmodelastrain
1条回答
网友
1楼 · 发布于 2024-05-03 09:58:39

在连续变量上计算的精度不是很有用。您可以改为使用均方误差,这与连续输出相关

至于改进模型,您可以尝试使用不同的工具来确定最相关的特性。我建议使用statsmodelsAPI(https://www.statsmodels.org/stable/regression.html)进行更深入的分析

相关问题 更多 >