Мнение, Программирование
Прекратите использовать ячейки среднего кода для вашего технического сообщения
Более четкое представление кода с помощью Github Gists
Детализация проблемы
Для тех, кто читает это и следил за моим постом в прошлом, вы можете назвать меня лицемером. Но, если вы не понимаете, о чем я говорю, вы можете просмотреть любую статью из моей серии «Алгоритмы с нуля»:
Алгоритмы с нуля - к науке о данных
Прочтите статью об алгоритмах с нуля в книге« На пути к науке о данных . Публикация Medium обменивается концепциями, идеями и… в сторонуdatascience.com »
Я читал статью, в которой использовались закодированные примеры с ячейками кода Medium. Я так расстроился! В итоге я скопировал и вставил код в среду своей визуальной студии, и даже этого было недостаточно для сохранения кода - не было никаких отступов, поэтому мне в основном приходилось очищать код самостоятельно.
Если бы мне не было срочно разобраться в этой теме, я бы, вероятно, отказался от этой статьи и стал искать новую. Это был ужасный опыт, мягко говоря.
def plot_svm(): # https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane.html # getting the decision function plt.figure(figsize=(10, 5)) decision_function = svc.decision_function(X) support_vector_indices = np.where((2 * y - 1) * decision_function <= 1)[0] support_vectors = X.iloc[support_vector_indices] # plot observations plt.scatter(X.iloc[:, 0], X.iloc[:, 1], c=y, cmap=plt.cm.Paired) # plot the decision function ax = plt.gca() xlim = ax.get_xlim() ylim = ax.get_ylim() # creating the grid to evaluate the model xx, yy = np.meshgrid(np.linspace(xlim[0], xlim[1], 50), np.linspace(ylim[0], ylim[1], 50)) Z = svc.decision_function(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) # plot decision boundaries and margins plt.contour(xx, yy, Z, colors='k', levels=[-1, 0, 1], alpha=0.5, linestyles=['--', '-', '--']) # plot support vectors plt.scatter(support_vectors.iloc[:, 0], support_vectors.iloc[:, 1], s=100, linewidth=1, facecolors='none', edgecolors='k') plt.title("Linear SVM (Hard Margin Classification)") plt.tight_layout() plt.show()
Не знаю, только ли это я, но мне это очень трудно читать. Есть способ отформатировать код в ячейках кода Medium, чтобы он выглядел более читабельным, как я сделал ниже ...
def gradient_descent(X, y, params, alpha, n_iter): """ Gradient descent to minimize cost function __________________ Input(s) X: Training data y: Labels params: Dictionary contatining random coefficients alpha: Model learning rate __________________ Output(s) params: Dictionary containing optimized coefficients """ W = params["W"] b = params["b"] m = X.shape[0] # number of training instances for _ in range(n_iter): # prediction with random weights y_pred = np.dot(X, W) + b # taking the partial derivative of coefficients dW = (2/m) * np.dot(X.T, (y_pred - y)) db = (2/m) * np.sum(y_pred - y) # updates to coefficients W -= alpha * dW b -= alpha * db params["W"] = W params["b"] = b return params
Если вы заметили, я вручную выделил встроенные модули Python жирным шрифтом, и я сделал все отступы, чтобы они были удобочитаемыми - у меня должно было быть время в тот день, потому что если вы пишете полный технический блог, как это было у меня сделано для этого, сделать это с каждым битом кода, который вы пишете, очень, очень, очень долго.
Детализация решения
Лучшая стратегия - использовать Github Gist. Для ветеранов, присутствующих здесь, вы наверняка знаете, что это далеко от революционного открытия. Я собираюсь использовать первую ячейку кода (с трудным для чтения кодом) и создать Github Gist.
Я не гений в области математики, но уверен, что мы все можем согласиться с тем, что это в 3000 раз яснее, чем ячейка кода Medium, которую мы видели ранее. И, честно говоря, это имеет смысл, почему ...
Medium не оптимизирован для написания кода, он оптимизирован для писателей!
Как создать Gist и поделиться на Medium
Примечание: вам понадобится учетная запись Github!
Шаг 1. Щелкните значок "Плюс" в правом верхнем углу экрана и прокрутите вниз до раздела "Новая сущность".
Шаг 2. Дайте своему файлу имя, скопируйте и вставьте код из вашей IDE (или того, что вы используете). Вы также можете добавить файл, но я никогда не делал этого таким образом (без всякой причины в специфический). Затем выберите, хотите ли вы, чтобы ваш Gist был секретным или общедоступным, и, когда вы решили, создайте суть.
Шаг 3. Теперь ваш Gist создан. Чтобы получить его на Medium, просто скопируйте и вставьте URL-адрес Gist в Medium.
Это все, ребята!
Забрать
- Средние ячейки кода затрудняют чтение вашего кода
- Если вы действительно хотите использовать ячейки кода среднего размера, найдите время, чтобы ваш код выглядел аккуратно.
- Github Gist - гораздо более простой и быстрый вариант.
Будем на связи…