Machine Learning – 13 – Univariate (Explanatory Data Analysis)

நமது தரவுகள் எவ்வாறு அமைந்துள்ளன என விரிவாக ஆராய்ந்து பார்ப்பதே Explanatory Data Analysis ஆகும். ஒரே ஒரு column-ல் உள்ள தரவுகளை மட்டும் எடுத்து ஆராய்வது univariate எனவும், இரண்டு column-ல் உள்ளவை எவ்விதத்தில் ஒன்றோடொன்று தொடர்பினை ஏற்படுத்துகின்றன என ஆராய்வது bivariate எனவும், பல்வேறு columns இணைந்து எவ்வாறு ஒரு target column-ன் மீது தாக்கத்தை ஏற்படுத்துகிறது எனப் பார்ப்பது multi-variate analysis எனவும் அழைக்கப்படும்.

histogram, Density plot மற்றும் box plot ஆகியவை univariate analysis-க்கு பெரிதும் உதவுகின்ற வரைபட வகைகள் ஆகும். Histogram என்பது ஒரு variable-ல் உள்ளவற்றை, பல்வேறு bins-ஆகப் பிரித்து, ஒவ்வொரு bin-லும் எவ்வாறு தரவுகள் அமைந்துள்ளன என்பதைக் காட்டுகிறது. கீழ்க்கண்ட உதாரணத்தில், ‘GrLivArea’ எனும் column-ல் பல்வேறு வீட்டினுடைய sqft அளவுகள் கொடுக்கப்பட்டுள்ளன. அவை 500, 1000, 1500 … 3000 எனும் பல்வேறு bins-ஆகப் பிரிக்கப்பட்டு, ஒவ்வொரு bin-லும் எத்தனை வீடுகள் அமைந்துள்ளன என்பது வரைபடமாகக் காட்டப்பட்டுள்ளது. matplotlib மற்றும் seaborn ஆகியவை இத்தகைய வரைபடங்களை வழங்குகின்றன. Histogram என்பது matplotlib வழங்குகின்ற வரைபடமெனில், Densityplot என்பது seaborn வழங்குகின்ற வரைபடம் ஆகும்.

Boxplot என்பதும் ஒரே ஒரு variable-ஐ analysis செய்வதற்கு உதவும் ஒரு வரைபட வகை ஆகும். இதில் ஒரு பெட்டி போன்ற படம் ஒன்று காணப்படும். இதன் நடுவில் உள்ள கோடு தான் median ஆகும். இந்தப் பெட்டிக்கு மேலும், கீழும் உள்ள கோடு, எந்த அளவுக்கு தரவுகள் பரவியுள்ளது என்பதைக் காட்டும். அந்தக் கோட்டின் எல்லையையும் தாண்டி ஆங்காங்கு காணப்படும் ஒரு சில சிறிய புள்ளிகளே outliers ஆகும்.


import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv("14_input_data.csv")
df = df.fillna(0)
df = df[:100]
y = [i for i in range(0,10)]
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111)
ax.set(title="Total Living Sq.Ft",
ylabel='No of Houses', xlabel='Living Sq.Ft')
ax.hist(df['GrLivArea'])
plt.savefig('Histogram.jpg')
sns.distplot(df['GrLivArea'], hist = False, kde = True,
kde_kws = {'shade': True, 'linewidth': 3})
plt.savefig('DensityPlot.jpg')
fig = plt.figure(figsize=(8,6))
ax = fig.add_subplot(111)
ax.set(title="Total Living Sq.Ft",
ylabel='No of Houses', xlabel='Living Sq.Ft')
ax.boxplot(df['GrLivArea'])
plt.savefig('BoxPlot.jpg')

view raw

univariate.py

hosted with ❤ by GitHub

 

 

%d bloggers like this: