gpt4 book ai didi

python-3.x - 为什么我的机器学习模型的准确性很差?

转载 作者:行者123 更新时间:2023-11-30 09:26:43 25 4
gpt4 key购买 nike

我是机器学习新手,正在独立构建我的第一个模型。我有一个评估汽车的数据集,它包含价格、安全性和豪华性的特征,并对好、非常好、可接受和 Not Acceptable 进行分类。我将所有非数字列转换为数字,训练数据并使用测试集进行预测。然而,我的预测很糟糕;我使用 LinearRegression 和 r2_score 输出 0.05,实际上是 0。我尝试了几种不同的模型,但所有模型都给了我可怕的预测和准确性。

我做错了什么?我看过教程,阅读过类似方法的文章,但它们最终的准确率是 0.92,而我得到的是 0.05。如何为数据建立一个好的模型以及如何知道使用哪个模型?

代码:

import numpy as np
import pandas as pd
from sklearn import preprocessing, linear_model
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score

import seaborn as sns
import matplotlib.pyplot as plt

pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)

columns = ['buying', 'maint', 'doors', 'persons', 'lug_boot', 'safety', 'class value']
df = pd.read_csv('car.data.txt', index_col=False, names=columns)

for col in df.columns.values:
try:
if df[col].astype(int):
pass
except ValueError:
enc = preprocessing.LabelEncoder()
enc.fit(df[col])
df[col] = enc.transform(df[col])

#Split the data
class_y = df.pop('class value')
x_train, x_test, y_train, y_test = train_test_split(df, class_y, test_size=0.2, random_state=0)

#Make the model
regression_model = linear_model.LinearRegression()
regression_model = regression_model.fit(x_train, y_train)

#Predict the test data
y_pred = regression_model.predict(x_test)

score = r2_score(y_test, y_pred)

最佳答案

您不应使用线性回归,它用于预测连续值而不是分类值。在你的情况下,你试图预测的是绝对的。从技术上讲,每种情况都是一个类。

我建议尝试逻辑回归或其他类型的分类方法,例如朴素贝叶斯、SVM、决策树分类器等。

关于python-3.x - 为什么我的机器学习模型的准确性很差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55127758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com