[ОБЗОР КЛАССА]

Введение в машинное обучение — один из обязательных курсов для программы RPI Lally Quantitative Finance and Risk Analytics and Business Analytics.

Этот курс довольно технический, большую часть времени мы работаем на python. На первых двух занятиях мы узнаем о различных типах данных и о том, как использовать основные функции в Python. После этого мы знакомимся с различными аналитическими методами и алгоритмами и практикуемся в практическом применении этих методов с помощью Python.

Каждую неделю нам задают домашнее задание. Несмотря на то, что иногда домашние задания сложны, я чувствую, что это хороший показатель того, на правильном ли я пути или нет.

[ДИНАМИКА УЧАЩИХСЯ]

Согласно опросу профессора Маниконды, половина класса имеет опыт программирования/питона, а другая половина практически не имеет опыта.

Я настоятельно рекомендую людям, у которых нет опыта программирования, посетить онлайн-курсы до начала семестра. Профессора и однокурсники очень охотно помогают, однако, если у вас есть какие-то знания об этом заранее, в течение семестра будет меньше стресса.

В целом, я бы сказал, что этот курс может быть сложным для новичков, но у вас все будет хорошо, если вы потратите время на изучение и задаете вопросы. Для опытных студентов первые недели будут отличной возможностью повторить все основы, и после этого вы сможете многому научиться.

[ЧТО МЫ УЗНАЕМ В КЛАССЕ]

В этом месяце мы узнаем разницу между типами данных, циклами for, операторами if, как организовывать данные и манипулировать ими, работать со значениями N/A и строить модели.

В течение этого месяца мы изучали функции, однако наиболее интересной мне показалась работа с фреймами данных. Теперь давайте посмотрим, как мы используем Python для этого. Вы также можете следить за наборами данных, доступными на Kaggle!

Наша миссия в этой практике — сделать модель и предсказать, кто выживет на «Титанике». Мы практикуем, как работать со значениями N/A, преобразовывать номинальные данные в количественные данные, разбивать данные на наборы данных для обучения и тестирования, строить модель и смотреть, насколько точен прогноз.

Сначала вы загружаете данные с помощью pandas.read_csv. После того, как мы прочитаем данные, используйте df.head(5), чтобы просмотреть первые пять строк фрейма данных.

import pandas as pd
url='https://raw.githubusercontent.com/lmanikon/lmanikon.github.io/master/teaching/datasets/titanic.csv'
df = pd.read_csv(url)
df.head(5)

После загрузки данных мы видим, что в некоторых столбцах есть значения NaN, поэтому мы используем функцию df.isnull().sum(), чтобы увидеть, где встречаются значения NaN.

df.isnull().sum()

Как мы видим, большинство значений NaN находятся в столбцах «возраст», «палуба», «посадка», «причал_таун». Мы могли бы удалить все строки со значениями NaN, однако это кадр данных из 891 строки, а 688 из значений «колоды» равны нулю. Поэтому мы решили удалить весь столбец «колода» и удалить строки со значениями NaN.

df.drop(columns='deck')
df = df.dropna(axis = 0, subset = ['age','embarked'])

После удаления нулевых значений мы начинаем переводить некоторые номинальные данные в количественные данные.

# we define a new column name gendervar and input 0 if the gender is male, 1 if the gender is female
df['gendervar'] = df['gender'].map({'male':0, 'female':1})
# define a new column alone_num and input 1 if value in alone column is True, 0 if value in alone column is False
df['alone_num'] = df['alone'].map({True:1,False:0})
#define new column stown and input 1 if embark_town is Southampton, 0 if embark_town is not Southampton
df['stown']=0
df.loc[df['embark_town']=='Southampton','stown']=1

Разделите данные на наборы для обучения и тестирования.

from sklearn.model_selection import train_test_split
# y is the target column
y = df['survived']
# x is the feature columns
x = df.drop(columns=['survived','gender','class','who','adult_male','embarked','embark_town','alive','alone'])
#split the data into 80% training data and 20% testing data
train_X, test_X, train_y, test_y = train_test_split(x, y,train_size=0.8, test_size=0.2)

Как только мы получим набор данных для обучения и тестирования, мы пропустим его через алгоритм линейной регрессии и оценим модель с помощью теста среднеквадратичной ошибки (MSE).

from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
lg = LinearRegression().fit(train_X, train_y)
y_pred = lg.predict(test_X )
mse = round(mean_squared_error(test_y, y_pred),2)
print(mse)

В тесте среднеквадратичной ошибки чем ближе число mse к 0, тем лучше. В этой практике наша MSE равна 0,14, что означает, что эта модель отлично справляется с предсказанием, выживет человек или нет.

[Заключение]

Мне нравится заниматься в этом классе, потому что я делаю успехи и приобретаю навыки, которые помогут мне начать карьеру аналитика. Я должен признать, что иногда это может быть тяжело, но с помощью профессора и одноклассников я чувствую, что каждый может пережить семестр ;)

Автор Lally Student Ambassador Зона Чанг

[Информация о приеме]

Прием РПИ: https://admissions.rpi.edu/

Информационная страница программы:

Бизнес-аналитика (обозначение STEM), MS.

https://lallyschool.rpi.edu/graduate-business-programs/ms-business-analytics

Количественные финансы и аналитика рисков (назначено STEM), MS.

https://lallyschool.rpi.edu/graduate-business-programs/ms-quantitative-finance-and-risk-analytics

Управление цепочками поставок (обозначено STEM), MS

https://lallyschool.rpi.edu/graduate-business-programs/ms-supply-chain-management

Деловое администрирование, МВА

https://lallyschool.rpi.edu/graduate-business-programs/business-administration-mba