python – 熊猫分类变量转换

python – 熊猫分类变量转换,第1张

概述Data.csv:param1,param2,param3,result            1,2,cat1,12            2,3,cat2,13            1,6,cat1,6            1,1,cat2,12 假设我从文件中读取数据并将分类变量转换为虚拟变量,如下所示: import pandas as pdfrom sklearn.cross_va Data.csv:param1,param2,param3,result
           1,2,cat1,12
           2,3,cat2,13
           1,6,6
           1,1,12

假设我从文件中读取数据并将分类变量转换为虚拟变量,如下所示:

import pandas as pdfrom sklearn.cross_valIDation import train_test_splitfrom sklearn.linear_model import linearRegressiondata = pd.read_csv('data.csv')type_dummIEs = pd.get_dummIEs(data.house_type)data = pd.concat([data,type_dummIEs],axis=1)

我收到了数据帧:

1,..1,..

我对该数据集进行了简单的线性回归并接收了系数.如何使用pandas在我的线性模型中使用它来为new_data = np.array([12,19,0)转换新记录(new_data = np.array([12,cat1]))? (这样新数据分类变量将转换为虚拟变量)

解决方法 通常,您需要设置管道以记录正确的类别:代码映射.

class Categoricaltransformer(transformerMixin):    def fit(self,X,y=None,*args,**kwargs):        self.columns_ = X.columns        self.cat_columns_ = X.select_dtypes(include=['category']).columns        self.non_cat_columns_ = X.columns.drop(self.cat_columns_)        self.cat_map_ = {col: X[col].cat.categorIEs                         for col in self.cat_columns_}        self.ordered_ = {col: X[col].cat.ordered                         for col in self.cat_columns_}        self.dummy_columns_ = {col: ["_".join([col,v])                                     for v in self.cat_map_[col]]                               for col in self.cat_columns_}        self.transformed_columns_ = pd.Index(            self.non_cat_columns_.toList() +            List(chain.from_iterable(self.dummy_columns_[k]                                     for k in self.cat_columns_))        )    def transform(self,**kwargs):        return (pd.get_dummIEs(X)                  .reindex(columns=self.transformed_columns_)                  .fillna(0))

更多here.

使用管道sklearn.pipeline.make_pipeline(Categoricaltransformer(),linearRegression()),您的预测方法应该正确地从分类house_type转换为变量.

总结

以上是内存溢出为你收集整理的python – 熊猫分类变量转换全部内容,希望文章能够帮你解决python – 熊猫分类变量转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1196085.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存