0% found this document useful (0 votes)
9 views5 pages

Coding ML

The document provides a comprehensive overview of data manipulation and analysis techniques using Python's pandas and scikit-learn libraries, including setting indices, merging dataframes, encoding categorical variables, and performing regression analysis. It also covers clustering methods like KMeans and DBSCAN, as well as dimensionality reduction using PCA. Additionally, it discusses model evaluation metrics and hyperparameter tuning for decision trees.

Uploaded by

mattiforbusiness
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views5 pages

Coding ML

The document provides a comprehensive overview of data manipulation and analysis techniques using Python's pandas and scikit-learn libraries, including setting indices, merging dataframes, encoding categorical variables, and performing regression analysis. It also covers clustering methods like KMeans and DBSCAN, as well as dimensionality reduction using PCA. Additionally, it discusses model evaluation metrics and hyperparameter tuning for decision trees.

Uploaded by

mattiforbusiness
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Basics

df.set_index(keys="A", inplace=True)
[Link](columns=[“A”,”B”],inplace=True)
[Link](columns={“A”:”a”})
df["A"].nunique() [Link](3,"A")
[Link]().sum() df.drop_duplicates(inplace=True)
[Link]("A")["B"].mean()
quant_df=df.select_dtypes(include=[[Link]])
cat_df=df.select_dtypes(include=”object”)
df_merged=[Link](df1,df2,left_on=”lkey”,right_on=”rkey”) # through columns
with different names
df_merged=[Link](df1,df2,left_index=True,right_index=True) # through
indexes
df_merged=[Link](df1,df2,on=”id”,how=”inner”) # through columns with the
same name; how can be outer, left, right as well
[Link]([df1,df2],axis=1) # horizontally
df.sort_values(by=”A”,inplace=True)
df_pivoted = [Link](index=”id”,columns=”A”,values=”value”)
df[df[“A”]== df[“A”].max] # row with maximum ‘A’
df[“A”].idmax() # index
correlation_matrix=[Link]()
df[“A”].value_counts(normalize=True)
[Link]().sum()
df[“A”] = df[“A”].fillna(df.[“A”].median())
[Link]()

Plots
[Link](data=df,x=”A”,hue=”B”) # categorical
df[“A”].value_counts().plot(kind=”bar”)
[Link](data=df,x=”A”,bins=100,kde=True) # numerical
df[“A”].plot(kind=”hist”,bins=100)
[Link](data=df,x=”A”,y=”B”)
[Link](kind=”scatter”, x=”A”,y=”B”)
[Link]([“A”,”B”])

OneHotEncoder
from [Link] import OneHotEncoder
encoder=OneHotEncoder()
df_sparse=encoder.fit_transform(df)
feature_names=encoder.get_feature_names_out([Link])
df_dense=df_sparse.toarray()
df_encoded=[Link](df_dense,columns=feature_names)
df_encoded=pd.get_dummies(df) # easier

Numericalization
from [Link] import LabelEncoder
le=LabelEncoder()
df_num=[Link]
for col in [Link]:
df_num=le.fit_transform(df[col])

Standardization
from [Link] import StandardScaler
scaler=StandardScaler()
df= scaler.fit_transform(df)

LinearRegression
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from [Link] import mean_squared_error, r2_score
model=LinearRegression()
X=[Link](columns=[”target”])
y=df[“target”]
X_train,X_test,y_train,y _test=train_test_split(X,y,test_size=0.3,shuffle=True,rand
om_state=42) # stratify=y into brackets for classification
[Link]=(X_train,y_train)
y_pred=[Link](X_test)
mse=mean_squared_error(y_test,y_pred)
r2=r2_score(y_test,y_pred)

Libraries
from sklearn.linear_model import LogisticRegression, Ridge, RidgeClassifier
from [Link] import DecisionTreeClassifier, DecisionTreeRegressor
from [Link] import RandomForestClassifier,
RandomForestRegressor
from [Link] import SVC, SVR
from [Link] import KNeighborsClassifier, KNeighborsRegressor
from xgboost import XGBClassifier, XGBRegressor
from [Link] import accuracy_score, precision_score, recall_score,
f1_score, cohen_kappa_score, confusion_matrix, roc_auc_score, roc_curve

Auroc
y_pred_proba=model.predict_proba(X_test)[:,1] # it takes positive values
auc=roc_auc_score(y_test,y_pred_proba)
fpr, tpr, threshold = roc_curve(y_test,y_pred_proba)

Decision Trees Tuning


train_scores=[]
valid_scores=[]
for leaf in list(range(2,20)):
dtr=DecisionTreeRegressor(min_samples_leaf=leaf)
[Link](X_train,y_train)
train_scores.append([Link](X_train,y_train)
valid_scores.append([Link](X_valid,y_valid)
optimal_min_samples_leaf= list(range(2, 20))[[Link](valid_scores)]
Decision Tree Double Tuning
from sklearn.model_selection import GridSearchCV
params={“min_samples_leaf”:list(range(2,20)),”max_depth”:list(range(2,20))}
grid_search_cv=GridSearchCV(DecisionTreeRegressor(),params,cv=3,verbose=1
,n_jobs=-1)
grid_search_cv.fit(X_train, y_train)
best_tree_model=grid_search_cv.best_estimator_
score = best_tree_model.score(X_test,y_test)

KMeans
from [Link] import KMeans
# 1: inertia for different k (Elbow Method)
inertia = []
K = range(1, 10)
for k in K:
kmeans = KMeans(n_clusters=k, init="k-means++", random_state=42)
[Link](df)
[Link](kmeans.inertia_)

# 2: Scree Plot
[Link](K, inertia, 'bx-')
[Link]('k')
[Link]('Inertia')
[Link]('Elbow Method for Optimal k')
[Link]()

# 3: final model
kmeans = KMeans(
n_clusters=3,
init='k-means++',
random_state=42
)
[Link](df)

# 4: clusters to the df and centroids


df['Cluster'] = kmeans.labels_
centroids = kmeans.cluster_centers_

# 6: silhouette score
from [Link] import silhouette_score
score = silhouette_score(df, kmeans.labels_)

DBSCAN
from [Link] import DBSCAN
dbscan = DBSCAN(eps=0.5, min_samples=5, metric='euclidean')
[Link](df)
df[“cluster”] = dbscan.labels_
PCA
from [Link] import PCA
pca = PCA(n_components=0.90) # % of explained variance
X_pca = pca.fit_transform(X_scaled)
pc_number = pca.n_components_
explained_var = pca.explained_variance_ratio_

eigenvalues = pca.explained_variance_
kaiser_components = sum(eigenvalues > 1)

You might also like