from sklearn.linear_model import LinearRegression
from sklearn.feature_extraction import DictVectorizer
import StringIO
data ='''Type,Name,Price
A,ec1,1.5
B,ec2,2
A,ec2,3
C,ec1,1
B,ec3,1'''
df = pd.read_csv(StringIO.StringIO(data))
mapping = {}
cols = df.drop('Price', axis=1).columns
for col in cols:
mapping[col] = {name: i for i, name in enumerate(df[col].unique())}
def mapping_func(row):
return pd.Series([mapping[col][row[col]] for col in cols])
X = df.apply(mapping_func, axis=1)
y = df['Price']
model = LinearRegression()
model.fit(X, y)
print model.predict([ mapping['Type']['B'], mapping['Name']['ec2']] )
对输入数据使用字典向量器。它将把你的分类特征转换成向量的二元特征。在
请在此处阅读更多信息:http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.DictVectorizer.html#sklearn.feature_extraction.DictVectorizer
如果我以你的数据集为例,它看起来像这样:
现在您的
vector_data
已经准备好用于机器学习模型。在我将字符串值转换为数值以适合线性模型
输出:
^{pr2}$相关问题 更多 >
编程相关推荐