Files
wehub-resource-sync 468fc26eb0
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:07:30 +08:00

139 lines
4.3 KiB
Python

"""
Hello AI World - Your First AI Program
=======================================
This is a simple pattern recognition example that demonstrates core AI concepts:
- Learning from data
- Making predictions
- Understanding patterns
What this program does:
- Learns a simple mathematical pattern (y = 2x)
- Uses that pattern to make predictions
- No complex libraries needed - just pure Python!
Perfect for understanding AI basics before diving into neural networks.
"""
import random
class SimpleAILearner:
"""
A very simple AI that learns linear relationships.
This demonstrates the fundamental concept of AI: learning from data.
"""
def __init__(self):
# The "weight" is what our AI learns
# It starts with a random guess
self.weight = random.uniform(0, 5)
self.learning_rate = 0.01 # How fast our AI learns
def predict(self, x):
"""
Make a prediction based on what we've learned.
Args:
x: Input value
Returns:
Predicted output
"""
return self.weight * x
def train(self, training_data, epochs=100):
"""
Train the AI to learn the pattern in the data.
Args:
training_data: List of (input, output) pairs
epochs: Number of times to go through all the data
"""
print("🎓 Training started...")
print(f"Initial guess for weight: {self.weight:.2f}")
for epoch in range(epochs):
total_error = 0
# Learn from each example
for x, y_actual in training_data:
# Make a prediction
y_predicted = self.predict(x)
# Calculate error (how wrong we were)
error = y_actual - y_predicted
total_error += abs(error)
# Update our weight to reduce error (this is learning!)
self.weight += self.learning_rate * error * x
# Print progress every 20 epochs
if (epoch + 1) % 20 == 0:
avg_error = total_error / len(training_data)
print(f"Epoch {epoch + 1}/{epochs} - Average error: {avg_error:.4f} - Weight: {self.weight:.2f}")
print(f"✅ Training complete! Final weight: {self.weight:.2f}")
def main():
"""
Main function - Let's teach our AI!
"""
print("=" * 60)
print("Welcome to Hello AI World!")
print("=" * 60)
print()
print("Today, we'll teach an AI to learn a simple pattern:")
print("Given x, predict y where y = 2x")
print()
# Step 1: Create training data
# The pattern we want the AI to learn: y = 2 * x
print("📊 Creating training data...")
training_data = [
(1, 2), # When x=1, y should be 2
(2, 4), # When x=2, y should be 4
(3, 6), # When x=3, y should be 6
(4, 8), # When x=4, y should be 8
(5, 10), # When x=5, y should be 10
]
print(f"Training examples: {training_data}")
print()
# Step 2: Create and train our AI
ai = SimpleAILearner()
ai.train(training_data, epochs=100)
print()
# Step 3: Test our AI with new data
print("🧪 Testing our AI with new inputs...")
print("-" * 60)
test_inputs = [6, 7, 10, 15]
for x in test_inputs:
prediction = ai.predict(x)
actual = 2 * x # The true answer
print(f"Input: {x:2d} | Prediction: {prediction:6.2f} | Actual: {actual:6.2f} | Difference: {abs(prediction - actual):.2f}")
print("-" * 60)
print()
# Explanation
print("💡 What just happened?")
print("1. We gave the AI examples of the pattern (y = 2x)")
print("2. The AI learned by adjusting its 'weight' to minimize errors")
print("3. After training, it can predict outputs for new inputs!")
print()
print("🎉 Congratulations! You just trained your first AI!")
print()
print("🚀 Next steps:")
print(" - Try changing the training data to learn different patterns")
print(" - Experiment with the learning_rate (line 29)")
print(" - Modify epochs to see how training time affects accuracy")
print()
if __name__ == "__main__":
# This runs when you execute the script
main()