Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不同维数输入数据的SGD分类器部分拟合学习_Python_Machine Learning_Scikit Learn_Classification - Fatal编程技术网

Python 不同维数输入数据的SGD分类器部分拟合学习

Python 不同维数输入数据的SGD分类器部分拟合学习,python,machine-learning,scikit-learn,classification,Python,Machine Learning,Scikit Learn,Classification,我正在尝试对一个热编码数据执行SGD分类。我对我的培训示例进行了拟合,希望稍后对较少的数据执行部分拟合。 我理解由于拟合数据和部分拟合数据之间的维度更改而引发的错误 我也知道我需要在我的hot\u new\u df上执行数据转换,但我不确定如何进行 在[29]--中,我正在做一个fit() 在[32]--中,我正在做一个partial\u fit() 我刚才给出了一个假设的例子。。。我的实际数据超过了40K行~200列的形状 Jupyter QtConsole 4.3.1 Python 3.6

我正在尝试对一个热编码数据执行SGD分类。我对我的培训示例进行了拟合,希望稍后对较少的数据执行部分拟合。 我理解由于拟合数据和部分拟合数据之间的维度更改而引发的错误

我也知道我需要在我的
hot\u new\u df
上执行数据转换,但我不确定如何进行

在[29]--中,我正在做一个
fit()

在[32]--中,我正在做一个
partial\u fit()

我刚才给出了一个假设的例子。。。我的实际数据超过了40K行~200列的形状

Jupyter QtConsole 4.3.1 Python 3.6.2 |蟒蛇自定义(64位)|(默认值,2017年9月21日,18:29:43) 有关详细信息,请键入“版权”、“信用”或“许可证” IPython 6.1.0——一种增强的交互式Python。键入“?”以获取帮助。 在[27]中:导入熊猫作为pd ...: …:input_df=pd.DataFrame(dict(水果=['Apple','Orange','Pine'], …:颜色=[“红色”、“橙色”、“绿色”], …:is_sweet=[0,0,1], …:国家=[“美国”、“印度”、“亚洲”], …:is_valid=['valid','valid','Invalid'])) …:输入_df 出[27]: 颜色乡村水果是甜的是有效的 0红色美国苹果0有效 1橙色印度橙色0有效 2青松1号无效 在[28]中:hot_df=pd.get_dummies(输入_df,列=['fruit','color','country']) …:热的 出[28]: 是甜是有效的水果苹果水果橘子水果松树颜色绿色\ 0 0有效1 0 0 0 0 1 0有效的0 1 0 0 2 1无效的0 1 1 1 颜色橙色红色国家亚洲国家印度国家美国 0 0 1 0 0 1 1 1 0 0 1 0 2 0 0 1 0 0 在[29]:从sklearn.linear_模型导入SGDClassizer …:从sklearn.model\u选择导入列车\u测试\u拆分 ...: …:X_系列,X_测试,y_系列,y_测试=系列测试分割(热测向下降(['is_valid'],轴=1), …:hot_df['is_valid'], …:测试尺寸=0.1) …:clf=sgdclassizer(loss=“log”,罚金=“l2”) …:clf.fit(X_系列,y_系列) …:clf /Users/praj3/anaconda3/lib/python3.6/site packages/sklearn/linear_model/random_gradient.py:84:FutureWarning:max_iter和tol参数已添加到0.19中。如果两者都未设置,则默认为max_iter=5和tol=None。如果tol不是None,则max_iter默认为max_iter=1000。从0.21开始,默认最大iter为1000,默认tol为1e-3。 “和默认tol将为1e-3。”%类型(自我),未来警告) 出[29]: SGDClassizer(α=0.0001,平均值=False,等级权重=None,ε=0.1, eta0=0.0,拟合截距=真,l1_比率=0.15, 学习速率=最优,损耗=对数,最大iter=5,n\U iter=无, n_作业=1,惩罚=l2',功率=0.5,随机状态=None, shuffle=True,tol=None,verbose=0,warm\u start=False) 在[30]中:new_df=pd.DataFrame(dict(fruit=['Banana']), …:颜色=[“红色”], …:is_sweet=[1], …:国家=[“印度”], …:is_valid=['Invalid'])) …:新的 出[30]: 颜色乡村水果是甜的是有效的 0红色印度香蕉1无效 在[31]中:hot\u new\u df=pd.get\u dummies(new\u df,columns=['fruit'、'color'、'country') …:热的新的 出[31]: 是甜是有效的水果是香蕉的颜色是红色的国家是印度 0 1无效1 在[32]中:clf.部分拟合(热新测向下降(['is\u valid'],axis=1),热新测向['is\u valid'])) --------------------------------------------------------------------------- ValueError回溯(最近一次调用上次) 在() ---->1 clf.部分配合(热新测向下降(['is\u valid'],轴=1),热新测向['is\u valid'])) 部分拟合中的~/anaconda3/lib/python3.6/site-packages/sklearn/linear\u model/randomic\u gradient.py(自我、X、y、类、样本重量) 543学习率=自学习率,最大学习率=1, 544类=类,样本重量=样本重量, -->545 coef_init=None,intercept_init=None) 546 547 def fit(自身、X、y、coef_init=无、截距_init=无、, ~/anaconda3/lib/python3.6/site-packages/sklearn/linear\u model/randomic\u gradient.py in\u partial\u fit(self,X,y,alpha,C,loss,learning\u rate,max\u iter,class,sample\u weight,coef\u init,intercept\u init) 381 elif n_features!=self.coef_.shape[-1]: 382 raise VALUE ERROR(“功能%d的数量与以前的不匹配” -->383“数据%d.”%(n_特征,自系数形状[-1])) 384 385 self.loss\u函数=self.\u get\u loss\u函数(loss) ValueError:功能数4与以前的数据10不匹配。
在[33]:中,您应该使用
sklearn.preprocessing.onehotcoder
。可以找到相关文档

在编码前进行列车测试分割,使用情况如下:

from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder()
encoder.fit(X_train)

X_train = encoder.transform(X_train)
X_test = encoder.transform(X_test)

我希望这能有所帮助!

我建议使用sklearn的工具进行一次热编码(而不是熊猫)。然后你得到了一个编码器类,它可以
转换
其他数据。@sascha,你能建议如何用示例进行转换吗?我可以使用sklearn one热编码,我试过使用OneHotEncod