Python 为scikit线性回归模型生成numpy数组

Python 为scikit线性回归模型生成numpy数组,python,numpy,machine-learning,scipy,scikit-learn,Python,Numpy,Machine Learning,Scipy,Scikit Learn,我有一个包含多个变量的大型数据集:商品、位置、质量(1-10分制),以及一系列日期,如果当天商品未售出,则包含“否”,如果当天售出,则包含价格 我想创建一个线性回归模型,以便能够预测给定位置和质量的价格。我通读了scikit学习教程,但我真的很困惑我的输入应该是什么。有人能帮我吗?您需要将数据转换为模型可以使用的数字表示形式。唯一有问题的特性是位置(分类变量),但我们可以用每个位置的一列以及0和1(所谓的OneHotEncoding)来表示它。让您开始学习的示例: 预处理 现在X将如下所示: ╔

我有一个包含多个变量的大型数据集:商品、位置、质量(1-10分制),以及一系列日期,如果当天商品未售出,则包含“否”,如果当天售出,则包含价格


我想创建一个线性回归模型,以便能够预测给定位置和质量的价格。我通读了scikit学习教程,但我真的很困惑我的输入应该是什么。有人能帮我吗?

您需要将数据转换为模型可以使用的数字表示形式。唯一有问题的特性是位置(分类变量),但我们可以用每个位置的一列以及0和1(所谓的OneHotEncoding)来表示它。让您开始学习的示例:

预处理 现在
X
将如下所示:

╔═════════════════╦═════════════════╦═════════╗
║ location=store1 ║ location=store2 ║ quality ║
╠═════════════════╬═════════════════╬═════════╣
║               1 ║               0 ║       8 ║
║               1 ║               0 ║       9 ║
║               0 ║               1 ║       2 ║
║               0 ║               1 ║       3 ║
╚═════════════════╩═════════════════╩═════════╝
模型训练 现在可以将此矩阵馈送到模型:

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X, y)
预测 新数据还需要使用相同的
dictvectorier
转换成数字形式。请注意,现在我们使用
.transform
而不是
.fit\u transform

>>> test_data = [{'location': 'store 2', 'quality': 3}]
>>> X_test = vec.transform(test_data)
>>> model.predict(X_test)
array([ 10.28])

顺便说一句,我将这个问题作为一个分类问题来处理(已售出/未售出),然后我将使用回归来确定已售出商品的价格。

位置是如何表示的?作为1-10“位置质量”图?作为lat/long值?位置由邮政编码表示模型训练中的“y”是什么,我如何将“价格”与特定位置/质量关联?
y=价格
,关联是通过索引进行的,即数据列表中的第一项对应于价格列表中的第一项,
data[2]>prices[2]
,依此类推。顺便说一句,如果位置是一个邮政编码,我会将其转换为字符串,以便dictvectorier将其作为一个分类变量而不是一个数字变量来处理。
>>> test_data = [{'location': 'store 2', 'quality': 3}]
>>> X_test = vec.transform(test_data)
>>> model.predict(X_test)
array([ 10.28])