У меня есть следующая программа. В то время как я бегу, я получил Memory Error
, в частности, в Fpred = F.predict(A)
(смотрите ниже)У Python заканчивается память
import json
data = []
with open('yelp_data.json') as f:
for line in f:
data.append(json.loads(line))
star = []
for i in range(len(data)):
star.append(data[i].values()[10])
attributes = []
for i in range(len(data)):
attributes.append(data[i].values()[12])
def flatten_dict(dd, separator=' ', prefix=''):
return { prefix + separator + k if prefix else k : v
for kk, vv in dd.items()
for k, v in flatten_dict(vv, separator, kk).items()
} if isinstance(dd, dict) else { prefix : dd }
flatten_attr = list(flatten_dict(attributes[i], separator = ' ', prefix = '') for i in range(len(attributes)))
from sklearn.feature_extraction import DictVectorizer
v = DictVectorizer(sparse = False)
X = v.fit_transform(flatten_attr)
from sklearn.feature_extraction.text import TfidfTransformer
Transformer = TfidfTransformer()
A = Transformer.fit_transform(X)
from sklearn.linear_model import LinearRegression
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import KNeighborsRegressor
from sklearn.cross_validation import KFold
F = KNeighborsRegressor(n_neighbors = 27)
Ffit = F.fit(A, star)
Fpred = F.predict(A)
Score = F.score(A, star)
print(Score)
Мой файл JSON выглядит так -
{"business_id": "vcNAWiLM4dR7D2nwwJ7nCA", "full_address": "4840 E Indian School Rd\nSte 101\nPhoenix, AZ 85018", "hours": {"Tuesday": {"close": "17:00", "open": "08:00"}, "Friday": {"close": "17:00", "open": "08:00"}, "Monday": {"close": "17:00", "open": "08:00"}, "Wednesday": {"close": "17:00", "open": "08:00"}, "Thursday": {"close": "17:00", "open": "08:00"}}, "open": true, "categories": ["Doctors", "Health & Medical"], "city": "Phoenix", "review_count": 7, "name": "Eric Goldberg, MD", "neighborhoods": [], "longitude": -111.98375799999999, "state": "AZ", "stars": 3.5, "latitude": 33.499313000000001, "attributes": {"By Appointment Only": true}, "type": "business"}
{"business_id": "JwUE5GmEO-sH1FuwJgKBlQ", "full_address": "6162 US Highway 51\nDe Forest, WI 53532", "hours": {}, "open": true, "categories": ["Restaurants"], "city": "De Forest", "review_count": 26, "name": "Pine Cone Restaurant", "neighborhoods": [], "longitude": -89.335843999999994, "state": "WI", "stars": 4.0, "latitude": 43.238892999999997, "attributes": {"Take-out": true, "Good For": {"dessert": false, "latenight": false, "lunch": true, "dinner": false, "breakfast": false, "brunch": false}, "Caters": false, "Noise Level": "average", "Takes Reservations": false, "Delivery": false, "Ambience": {"romantic": false, "intimate": false, "touristy": false, "hipster": false, "divey": false, "classy": false, "trendy": false, "upscale": false, "casual": false}, "Parking": {"garage": false, "street": false, "validated": false, "lot": true, "valet": false}, "Has TV": true, "Outdoor Seating": false, "Attire": "casual", "Alcohol": "none", "Waiter Service": true, "Accepts Credit Cards": true, "Good for Kids": true, "Good For Groups": true, "Price Range": 1}, "type": "business"}
$ls -l yelp_data.json
показывает размер файла 33524921
Чем хуже Я мог бы сделать это, чтобы извлечь необходимые данные в другой файл и импортировать его в эту программу? Что было бы полезно улучшить эту программу, чтобы она работала более эффективно? Спасибо!! связанный
Это мусор, который трудно читать. вам лучше дать некоторые комментарии и насколько большой ваш 'yelp_data.json', какой формат каждой строки в json-файле. –
Спасибо. Я это делаю. – achimneyswallow
Ваш код выглядит так: python - это не ваш обычный язык, но я не думаю, что это проблема. Вы можете пометить вопрос с помощью sklearn, поскольку, по моему мнению, эта функция может использовать много памяти. Если вы можете использовать генераторы вместо списков, вы не будете есть память. Возможно, вам захочется удалить промежуточные списки, если они вам больше не нужны. –