Comments (11)
from kmodes.
ok, my full code like this,
from kmodes import kmodes
from kmodes import kprototypes
import pandas as pd
from sklearn import cluster
the first two varibles of dataframe sd1 is categorical, other varibles is continus
sd1=sd[['state','newmode_id','at_price_scaled','day_diff_scaled', 'time_avg_rate_scaled', 'total_dealnum_scaled', 'total_dealprice_scaled', 'total_dealnum_fws_scaled']]
clustermodel=kprototypes.KPrototypes(n_clusters=6, init='Cao', verbose=2)
cluser=clustermodel.fit_predict(sd1,categorical=[0,1])
from kmodes.
from kmodes.
sorry, pls ignore before, use this:
cluser=clustermodel.fit_predict(sd1,categorical=[0,1])
Traceback (most recent call last):
File "", line 1, in
cluser=clustermodel.fit_predict(sd1,categorical=[0,1])
File "build\bdist.win-amd64\egg\kmodes\kmodes.py", line 374, in fit_predict
return self.fit(X, **kwargs).labels_
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 415, in fit
self.verbose)
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 154, in k_prototypes
Xnum, Xcat = _split_num_cat(X, categorical)
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 47, in _split_num_cat
if ii not in categorical]]).astype(np.float64)
File "D:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2059, in getitem
return self._getitem_column(key)
File "D:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2066, in _getitem_column
return self._get_item_cache(key)
File "D:\Anaconda2\lib\site-packages\pandas\core\generic.py", line 1384, in _get_item_cache
res = cache.get(item)
TypeError: unhashable type
from kmodes.
Hi Nico,
The full error like this, can you help me to solve it, I really appreciate your help.
cluser=clustermodel.fit_predict(sd1,categorical=[0,1])
Traceback (most recent call last):
File "", line 1, in
cluser=clustermodel.fit_predict(sd1,categorical=[0,1])
File "build\bdist.win-amd64\egg\kmodes\kmodes.py", line 374, in fit_predict
return self.fit(X, **kwargs).labels_
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 415, in fit
self.verbose)
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 154, in k_prototypes
Xnum, Xcat = _split_num_cat(X, categorical)
File "build\bdist.win-amd64\egg\kmodes\kprototypes.py", line 47, in _split_num_cat
if ii not in categorical]]).astype(np.float64)
File "D:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2059, in getitem
return self._getitem_column(key)
File "D:\Anaconda2\lib\site-packages\pandas\core\frame.py", line 2066, in _getitem_column
return self._get_item_cache(key)
File "D:\Anaconda2\lib\site-packages\pandas\core\generic.py", line 1384, in _get_item_cache
res = cache.get(item)
TypeError: unhashable type
from kmodes.
Try presenting a numpy array to the algorithm, instead of a pandas DataFrame:
cluster=clustermodel.fit_predict(sd1.values,categorical=[0,1])
from kmodes.
Since it seems reasonable to have users present pandas DataFrames as inputs to the algorithm, it's probably a good idea to include a check (e.g., 'pandas' in str(X.__class__)
) and do a X.values
if True.
Alternatively, make sure all operations (such as the one that caused this bug) support DataFrames, but that's hard to implement and check consistently.
from kmodes.
Thanks, Nico. My problem is solved by using a numpy array to the algorithm.
from kmodes.
This should no longer occur: a30da80
from kmodes.
This is not fixed in the latest version. Added the .values to the dataframe and worked like a charm.
The type error is "TypeError: unhashable type: slice"
Snippet from kprototypes:
# Convert pandas objects to numpy arrays.
if 'pandas' in str(X.__class__):
X = X.values
from kmodes.
Fixed for real by: #67
from kmodes.
Related Issues (20)
- k-prototype seems to focus on one continuous variable HOT 1
- Reduce memory usage in array initialization HOT 2
- GPU ( cuda ) support? HOT 1
- Add L1 as a dissimilarity function option for continuous variables HOT 1
- Performance over binary data HOT 1
- parallelization HOT 4
- KPrototypes fit_predict fails with sample_weight HOT 2
- Apologies if this is redundant but I could not find documentation ... how do you extract class membership from an object created by the function KPrototypes HOT 1
- What are the minimum characteristics that a binary matrix must meet to avoid the following error: "Insufficient Number of data since union is 0"? HOT 1
- ValueError: All arrays must be of the same length HOT 3
- Euclidean distance definiton lacks a square root HOT 2
- Support Arm64 macos HOT 1
- Please add conda installation information HOT 1
- Different clusters when K-Prototypes trained on same data in numpy array and pandas dataframe HOT 1
- Li
- Estimation of Gamma in K-Prototypes HOT 1
- [BUG] Badge not rendering in readme HOT 2
- Incorrect dtype conversion of categoricals when dealing with manually assigned centroids HOT 2
- Create equal-sized clusters within kmodes HOT 1
- Value Error when I pass a NumPy array as init parameter HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kmodes.