Добавление собственной библиотеки в Jupyter Notebook

  1. На сервере создаем каталог и помещаем туда файлы *.py
  2. В тетрадке Jupyter нужно импортировать ссылку на каталог:
import sys  
sys.path.insert(0, '/rootfolder/utils')

Далее импортируем имя файла:

import lib # в каталоге должен быть файл с именем lib.py 

Примечание: если Вы обновите содержимое файла lib.py, то результат не будет отображаться, так как нужно выполнить «Restart kernel»

Либо вызвать соответствующие команды из меню

Основы Python

Список — это структура данных. Чтобы создать список, его элементы перечисляют через запятую в квадратных скобках и присваивают переменной. Например, вот список из пяти первых значений столбца installs из таблицы с данными «Книжного грызуна»:

installs = [29486, 33968, 30830, 34361, 33968]

Да! Индексы могут быть отрицательными — это называется обратная индексация. Такая программа покажет на экране значение 36.8, то есть последний элемент списка.

temperature = [36.6, 37.2, 36.5, 36.8]
print(temperature[-1]) 

Обратная индексация

Индексы могут быть отрицательными. Чтобы получить последний элемент списка, в квадратных скобках указывают -1. Индекс предпоследнего элемента — -2, третьего с конца элемента — -3 и так далее. Обратиться к одному и тому же элементу можно как по обычному, так и по отрицательному индексу:

russian_cities = ['Москва', 'Санкт-Петербург', 'Томск', 'Екатеринбург', 'Владивосток', 'Смоленск', 'Барнаул', 'Сочи', 'Красноярск']

print(russian_cities[6])
print(russian_cities[-3])

Что такое срезы

Срезы — почти как индексы. Только они позволяют получить не один, а сразу несколько идущих подряд элементов списка. Чтобы сделать срез, в квадратных скобках через знак : указывают начало и конец желаемого диапазона. Например, data[1:5]some_list[7:9].

Срезы начала и конца списка

Срезы конца списка работают аналогично. Последний элемент среза совпадает с окончанием списка, поэтому достаточно указать индекс первого элемента. Удобнее делать это через отрицательный индекс. Так можно получить последние три элемента prime_numbers:

prime_numbers = [2, 3, 5, 7, 11, 13, 17]
print(prime_numbers[-3:]) 
Скопировать код[11, 13, 17] 

Как формулировать гипотезы?

  • Определите цель. Например, вы хотите, чтобы посетители сайта покупали больше. Вокруг этой точки и следует формировать гипотезы, именно на неё будут влиять результаты исследования;
  • Предполагайте. В свободной форме сделайте предположения о том, что влияет на выбранное для анализа явление. Например: «Число покупок зависит от внешнего вида карточек товаров». Избегайте суждений в духе «это и так понятно». В аналитике нет ничего очевидного — всё нужно сначала доказать;
  • Уточните гипотезу. Здесь два пути: можно постараться сделать гипотезу максимально точной с самого начала либо сразу приступить к проверке. В ходе работы вы обязательно сформируете новые, уточняющие предположения. Например, гипотеза «Число покупок зависит от внешнего вида карточек товаров» через некоторое время может превратиться в такую: «Возможность предварительного просмотра в карточке товара влияет на рост числа покупок».
  • Действуйте. В хорошей гипотезе всегда есть не только цель, но и действие: «Если добавить в карточки товаров возможность предварительного просмотра, это увеличит число покупок». При формулировании гипотез один из этих элементов часто теряют. Например, вы делаете редизайн сайта. Но зачем? Есть действие, но нет цели. Или хотите увеличить продажи, но не знаете как. Цель есть, действия нет.
image

Data Science: Первое знакомство

Чтение csv-таблиц:

import pandas

data = pandas.read_csv('polomki.csv', index_col='Магазин')

print(data)

Работа с колонками:

import pandas

data = pandas.read_csv('polomki.csv', index_col='Магазин')

data['Неделя 14'] = data['Неделя 14'] * 100

print(data)

Вывод тепловой карты:

import pandas
import seaborn

data = pandas.read_csv('polomki.csv', index_col='Магазин')

data['Неделя 14'] = data['Неделя 14'] * 100

seaborn.heatmap(data)

JavaScript для глубокого обучения TensorFlow.js

Данная статья является кратким изложением книги «JavaScript для глубокого обучения: TensorFlow.js»

Простой пример машинного обучения для «линейных» данных:

const trainData = {
    sizeMB: [0.080, 9.000, 0.001, 0.100, 8.000,
        5.000, 0.100, 6.000, 0.050, 0.500,
        0.002, 2.000, 0.005, 10.00, 0.010,
        7.000, 6.000, 5.000, 1.000, 1.000],
    timeSec: [0.135, 0.739, 0.067, 0.126, 0.646,
        0.435, 0.069, 0.497, 0.068, 0.116,
        0.070, 0.289, 0.076, 0.744, 0.083,
        0.560, 0.480, 0.399, 0.153, 0.149]
};

const testData = {
    sizeMB: [5.000, 0.200, 0.001, 9.000, 0.002,
        0.020, 0.008, 4.000, 0.001, 1.000,
        0.005, 0.080, 0.800, 0.200, 0.050,
        7.000, 0.005, 0.002, 8.000, 0.008],
    timeSec: [0.425, 0.098, 0.052, 0.686, 0.066,
        0.078, 0.070, 0.375, 0.058, 0.136,
        0.052, 0.063, 0.183, 0.087, 0.066,
        0.558, 0.066, 0.068, 0.610, 0.057]
};

const trainTensors = {
    sizeMB: tf.tensor2d(trainData.sizeMB, [20, 1]),
    timeSec: tf.tensor2d(trainData.timeSec, [20, 1]),
};

const testTensors = {
    sizeMB: tf.tensor2d(testData.sizeMB, [20, 1]),
    timeSec: tf.tensor2d(testData.timeSec, [20, 1]),
};

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1}));
model.compile({optimizer: 'sgd', loss: 'meanAbsoluteError'});

(async function() {
    await model.fit(trainTensors.sizeMB, trainTensors.timeSec, { epochs: 200 });
    model.evaluate(testTensors.sizeMB, testTensors.timeSec).print();

    model.predict(tf.tensor2d([[7.8]])).print();
})();

Скачать книгу можно с ресурса https://1drv.ms/b/s!AnBjlQFDvsITgqFSIHj1pfyIoIcfGg?e=qdLYsi

Распознавание текста с изображения

В интернете куча приложения, которые можно использовать для распознавания текста с изображения. В данной статье речь пойдет про Tesseract.

Данное приложение можно установить, как на Linux, так и на Windows. Далее будет показан пример работы с данным приложение под Windows.

Скачиваем установочный файл http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-3.05.00dev.exe

Запускаем его. Когда будет предложено выбрать устанавливаемые компоненты оставляем по умолчанию. Ну вот и все теперь можно пользоваться данным приложением. Работать с ним нужно через консоль, запускаем её.

cd /d «C:\Program Files (x86)\Tesseract-OCR»

tesseract.exe «c:\… путь к изображению.png» «e:\text» -l eng -psm 3

где «e:\text» — путь к файлу, где будет «распарсенный» текст,

-l eng — язык распознования (можно указать и rus, но для этого надо загрузить данные)

-psm 3 — параметр по умолчанию

Всю справочную информацию можно получить выполнив команду tesseract.exe —help

Чтобы дополнительно подключить другие языки распознаванию нужно с https://github.com/tesseract-ocr/langdata скачать требуемый файл *.traineddata и перенести его в папку C:\Program Files (x86)\Tesseract-OCR\tessdata

Есть изображение с указанным текстом tesseract «путь к изображению.png» «e:\text» -l eng -psm 3 и в папке e:\ будет файл text.txt в котором будет текст Hello my friend