Skip to content
This repository has been archived by the owner on Jun 29, 2024. It is now read-only.

Advanced Level #68

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Harsha Vardhan Chalapati/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
TASK-1:Image Converter
Write a program that accepts images in multiple formats (JPEG, PNG, BMP, GIF) and converts them into a desired format using Python Imaging Library (PIL).
Task-2:Data Analysis with Pandas
Load the "Iris" dataset from Seaborn and analyze it using Pandas. Perform exploratory data analysis, cleaning, aggregation, visualizations, and correlation calculations.
TASK-3:Linear Regression with Scikit-learn
Apply linear regression to predict house prices from the Boston housing dataset using scikit-learn. Compare train and test scores and plot residuals.
Task-4:Image Compression
Develop a Python tool for compressing images while maintaining quality.Explore compression techniques like RLE and DCT.Allow users to adjust compression quality, support various image formats, and provide output options.
Optionally, include a user interface. Ensure code modularity, performance optimization, and test with diverse images, along with comprehensive documentation
36 changes: 36 additions & 0 deletions Harsha Vardhan Chalapati/Task-1
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from PIL import Image
import os

def convert_image(input_path, output_path, output_format):
try:
# Open the image
with Image.open(input_path) as img:
# Convert and save the image to the desired format
img.save(output_path, format=output_format)
print(f"Image converted successfully to {output_format} format.")
except Exception as e:
print(f"An error occurred: {e}")

def main():
input_path = input("Enter the path to the input image: ")
output_format = input("Enter the desired output format (e.g., JPEG, PNG, BMP, GIF): ").upper()

# Validate output format
if output_format not in ['JPEG', 'PNG', 'BMP', 'GIF']:
print("Invalid output format. Please choose from JPEG, PNG, BMP, or GIF.")
return

# Extract the file name and extension
file_name, file_extension = os.path.splitext(input_path)

# If the input file already has an extension, remove it
file_name_without_ext = file_name.split('.')[0]

# Set the output path
output_path = f"{file_name_without_ext}_converted.{output_format.lower()}"

# Convert the image
convert_image(input_path, output_path, output_format)

if _name_ == "_main_":
main()
43 changes: 43 additions & 0 deletions Harsha Vardhan Chalapati/Task-2
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# Load the Iris dataset from Seaborn
iris = sns.load_dataset("iris")
numeric_iris = iris.drop(columns='species')

# Display the first few rows of the dataset
print("First few rows of the dataset:")
print(iris.head())

# Summary statistics
print("\nSummary statistics:")
print(iris.describe())

# Checking for missing values
print("\nMissing values:")
print(iris.isnull().sum())

# Visualizations
# Pairplot
sns.pairplot(iris, hue="species")
plt.title("Pairplot of Iris Dataset")
plt.show()

# Boxplot
plt.figure(figsize=(10, 6))
sns.boxplot(data=iris, orient="h")
plt.title("Boxplot of Iris Dataset")
plt.show()

# Histograms
plt.figure(figsize=(10, 6))
iris.hist()
plt.suptitle("Histograms of Iris Dataset")
plt.show()

# Correlation heatmap
plt.figure(figsize=(8, 6))
sns.heatmap(numeric_iris.corr(), annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap of Iris Dataset")
plt.show()
43 changes: 43 additions & 0 deletions Harsha Vardhan Chalapati/Task-3
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

# Load the Iris dataset from Seaborn
iris = sns.load_dataset("iris")
numeric_iris = iris.drop(columns='species')

# Display the first few rows of the dataset
print("First few rows of the dataset:")
print(iris.head())

# Summary statistics
print("\nSummary statistics:")
print(iris.describe())

# Checking for missing values
print("\nMissing values:")
print(iris.isnull().sum())

# Visualizations
# Pairplot
sns.pairplot(iris, hue="species")
plt.title("Pairplot of Iris Dataset")
plt.show()

# Boxplot
plt.figure(figsize=(10, 6))
sns.boxplot(data=iris, orient="h")
plt.title("Boxplot of Iris Dataset")
plt.show()

# Histograms
plt.figure(figsize=(10, 6))
iris.hist()
plt.suptitle("Histograms of Iris Dataset")
plt.show()

# Correlation heatmap
plt.figure(figsize=(8, 6))
sns.heatmap(numeric_iris.corr(), annot=True, cmap="coolwarm")
plt.title("Correlation Heatmap of Iris Dataset")
plt.show()
45 changes: 45 additions & 0 deletions Harsha Vardhan Chalapati/Task-4
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
import pandas as pd
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]

# Load the Boston housing dataset

X = data
y = target

# Split the data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Initialize the linear regression model
model = LinearRegression()

# Fit the model on the training data
model.fit(X_train, y_train)

# Predict on the training and testing data
y_train_pred = model.predict(X_train)
y_test_pred = model.predict(X_test)

# Calculate the scores
train_score = model.score(X_train, y_train)
test_score = model.score(X_test, y_test)

print("Training score:", train_score)
print("Testing score:", test_score)

# Plot residuals
plt.scatter(y_train_pred, y_train_pred - y_train, c='blue', marker='o', label='Training data')
plt.scatter(y_test_pred, y_test_pred - y_test, c='lightgreen', marker='s', label='Testing data')
plt.xlabel('Predicted values')
plt.ylabel('Residuals')
plt.legend(loc='upper left')
plt.hlines(y=0, xmin=0, xmax=50, lw=2, color='red')
plt.title('Residual plot')
plt.show()