I am working on a Prediction Model using Accord .Net in Unity 3D for iOS. I have a csv data from Kaggle I manage to run and get prediction value as 0 and 1 in Unity Editor.
Here is the code
using System;
using System.Collections.Generic;
using System.Linq;
using Accord.MachineLearning.VectorMachines;
using Accord.MachineLearning.VectorMachines.Learning;
using Accord.Statistics.Kernels;
using UnityEngine;
using TMPro;
public class MachineStatusPredictor : MonoBehaviour
{
public TextAsset csvFile;
private List<double[]> features = new List<double[]>();
private List<int> machineStatusLabels = new List<int>();
private SupportVectorMachine<Gaussian> machineStatusClassifier;
public TMP_Text statusText;
void Start()
{
LoadAndPreprocessData(csvFile.text);
TrainMachineStatusClassifier();
// Example: Predict and display machine status using sample sensor data
double[] sampleSensorData = new double[] { 2f, 1.2f, 2.3f, 2.1f, 2, 4f }; // Sample sensor data
int predictedStatus = PredictMachineStatus(sampleSensorData);
Debug.Log($"Predicted Machine Status: {predictedStatus}");
statusText.text = predictedStatus.ToString();
}
void LoadAndPreprocessData(string csvText)
{
string[] lines = csvText.Split('\n');
for (int i = 1; i < lines.Length; i++)
{
string[] values = lines[i].Split(',');
if (values.Length >= 6)
{
double[] sensorValues = values.Skip(1).Take(3).Select(v =>
{
double parsedValue;
if (double.TryParse(v, out parsedValue))
{
return parsedValue;
}
else
{
return 0.0;
}
}).ToArray();
features.Add(sensorValues);
int label = values[values.Length - 1] == "NORMAL" ? 0 : 1;
machineStatusLabels.Add(label);
}
}
}
void TrainMachineStatusClassifier()
{
double[][] inputs = features.ToArray();
int[] outputs = machineStatusLabels.ToArray();
var teacher = new SequentialMinimalOptimization<Gaussian>()
{
Complexity = 100
};
machineStatusClassifier = teacher.Learn(inputs, outputs);
}
int PredictMachineStatus(double[] sensorData)
{
bool prediction = machineStatusClassifier.Decide(sensorData);
int predictedStatus = prediction ? 1 : 0;
return predictedStatus;
}
}
But I am not able to build it for iOS. I mean, I am able to build it successfully from Unity but after opening in xcode project its not building. Showing this error
I am using Accord .Net 3.8.0 libsonly as mentioned on their github page.
There are so many DLL versions in this libsonly archive. I tried most of them but no luck.
