机器学习:模型评估报错,ValueError: continuous is not supported

在做一个,美国加利福利亚的房价预测的时候,模型评估部分,报了一个错...

打印:accuracy_score,准确率评估时,报错,不支持连续值,

原因: 房价预测,这是一个回归问题,因此不能用准确率来衡量,

1、分类:连续值,可以用accuracy_score评估,

2、回归:可以用 r2_score来评估....

本次是房价的回归,因此可以用 r2_score,来评估,而不能用准确率评估,因为他是不连续的...

原来报错代码:

from sklearn import datasets
from sklearn.datasets import fetch_california_housing # 加利福利亚---房价数据...
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn import preprocessing
from sklearn import linear_model  # 线性模型:       1.回归、2.分类...
from sklearn import metrics
# 加载数据
california = fetch_california_housing()
# 划分数据集
data = california
x = data.data
y = data.target
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2)

# 数据预处理:            对训练集、进行标准化处理...
scaler = preprocessing.StandardScaler().fit(x)
x_train = scaler.transform(x_train)
x_test = scaler.transform(x_test)
# 创建线性模型:  线性回归
lm = linear_model.LinearRegression()
# 训练投喂数据、拟合数据
lm.fit(x_train, y_train)
# 预测:
pre = lm.predict(x_test)
#print(pre)
### 评估:             预测标签、真实标签,对比评估预测能力
accu= accuracy_score(y_test,pre)  # 准确度是分类问题,这是回归问题,用其他评估机制...
print(accu)

修改后的代码:

from sklearn import datasets
from sklearn.datasets import fetch_california_housing # 加利福利亚---房价数据...
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn import preprocessing
from sklearn import linear_model  # 线性模型:       1.回归、2.分类...
from sklearn import metrics
# 加载数据
california = fetch_california_housing()
# 划分数据集
data = california
x = data.data
y = data.target
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2)

# 数据预处理:            对训练集、进行标准化处理...
scaler = preprocessing.StandardScaler().fit(x)
x_train = scaler.transform(x_train)
x_test = scaler.transform(x_test)
# 创建线性模型:  线性回归
lm = linear_model.LinearRegression()
# 训练投喂数据、拟合数据
lm.fit(x_train, y_train)
# 预测:
pre = lm.predict(x_test)
#print(pre)
### 评估:             预测标签、真实标签,对比评估预测能力
#accu= accuracy_score(y_test,pre)  # 准确度是分类问题,这是回归问题,用其他评估机制...
#print(accu)
r2 = metrics.r2_score(y_test,pre)    ##### 修改处,换一个评估函数....
print(r2)

你可能感兴趣的:(机器学习,人工智能,线性回归)